BR112020014544A2 - método e aparelho para processamento de sinal de vídeo baseado em predição de vetor de movimento baseado em histórico - Google Patents
método e aparelho para processamento de sinal de vídeo baseado em predição de vetor de movimento baseado em histórico Download PDFInfo
- Publication number
- BR112020014544A2 BR112020014544A2 BR112020014544-0A BR112020014544A BR112020014544A2 BR 112020014544 A2 BR112020014544 A2 BR 112020014544A2 BR 112020014544 A BR112020014544 A BR 112020014544A BR 112020014544 A2 BR112020014544 A2 BR 112020014544A2
- Authority
- BR
- Brazil
- Prior art keywords
- candidate
- list
- candidates
- combination
- history
- Prior art date
Links
- 230000033001 locomotion Effects 0.000 title claims abstract description 434
- 239000013598 vector Substances 0.000 title claims abstract description 212
- 238000000034 method Methods 0.000 title claims abstract description 202
- 238000012545 processing Methods 0.000 title claims abstract description 72
- 239000000203 mixture Substances 0.000 claims description 97
- 230000002123 temporal effect Effects 0.000 claims description 44
- 238000003672 processing method Methods 0.000 abstract description 3
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 description 219
- 108091006146 Channels Proteins 0.000 description 103
- 238000013138 pruning Methods 0.000 description 81
- 230000008569 process Effects 0.000 description 66
- 238000003860 storage Methods 0.000 description 48
- 238000010586 diagram Methods 0.000 description 45
- 238000004891 communication Methods 0.000 description 41
- 238000011161 development Methods 0.000 description 25
- 230000018109 developmental process Effects 0.000 description 25
- 230000006870 function Effects 0.000 description 19
- 238000001914 filtration Methods 0.000 description 16
- 230000005236 sound signal Effects 0.000 description 16
- 238000007906 compression Methods 0.000 description 14
- 230000006835 compression Effects 0.000 description 14
- 230000000694 effects Effects 0.000 description 14
- 230000007774 longterm Effects 0.000 description 14
- 238000009795 derivation Methods 0.000 description 11
- 230000003044 adaptive effect Effects 0.000 description 10
- 241000023320 Luma <angiosperm> Species 0.000 description 9
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 9
- 230000011664 signaling Effects 0.000 description 9
- 238000010295 mobile communication Methods 0.000 description 8
- 230000002457 bidirectional effect Effects 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 6
- 238000009826 distribution Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 6
- 238000012935 Averaging Methods 0.000 description 5
- 230000002146 bilateral effect Effects 0.000 description 5
- 208000018633 pure hair and nail ectodermal dysplasia Diseases 0.000 description 5
- 238000012795 verification Methods 0.000 description 5
- 230000001419 dependent effect Effects 0.000 description 4
- 238000003780 insertion Methods 0.000 description 4
- 230000037431 insertion Effects 0.000 description 4
- 238000013139 quantization Methods 0.000 description 4
- 238000000638 solvent extraction Methods 0.000 description 4
- 241001025261 Neoraja caerulea Species 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000013144 data compression Methods 0.000 description 3
- 239000004973 liquid crystal related substance Substances 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 238000012508 change request Methods 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 239000002131 composite material Substances 0.000 description 2
- 239000013256 coordination polymer Substances 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 239000010408 film Substances 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 230000005055 memory storage Effects 0.000 description 2
- 238000002156 mixing Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 238000010187 selection method Methods 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 206010016326 Feeling cold Diseases 0.000 description 1
- 206010016334 Feeling hot Diseases 0.000 description 1
- 101000591286 Homo sapiens Myocardin-related transcription factor A Proteins 0.000 description 1
- 102100034099 Myocardin-related transcription factor A Human genes 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 239000000969 carrier Substances 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 229910003460 diamond Inorganic materials 0.000 description 1
- 239000010432 diamond Substances 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 230000005684 electric field Effects 0.000 description 1
- 238000005206 flow analysis Methods 0.000 description 1
- 238000007429 general method Methods 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 230000006266 hibernation Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000010348 incorporation Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000012432 intermediate storage Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000012528 membrane Substances 0.000 description 1
- 230000006386 memory function Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003387 muscular Effects 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000010355 oscillation Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000003909 pattern recognition Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000035807 sensation Effects 0.000 description 1
- 239000010454 slate Substances 0.000 description 1
- 239000004984 smart glass Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000000638 stimulation Effects 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 239000010409 thin film Substances 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 230000016776 visual perception Effects 0.000 description 1
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/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/56—Motion estimation with initialisation of the vector search, e.g. estimating a good candidate to initiate a search
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
- H04N19/43—Hardware specially adapted for motion estimation or compensation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/103—Selection of coding mode or of prediction mode
- H04N19/105—Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/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/132—Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
-
- 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/136—Incoming video signal characteristics or properties
- H04N19/137—Motion inside a coding unit, e.g. average field, frame or block difference
- H04N19/139—Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
-
- 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/176—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 block, e.g. a macroblock
-
- 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/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
- H04N19/423—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
- H04N19/517—Processing of motion vectors by encoding
- H04N19/52—Processing of motion vectors by encoding by predictive encoding
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
MÉTODO E APARELHO PARA PROCESSAMENTO
DE SINAL DE VÍDEO BASEADO EM PREDIÇÃO DE VETOR DE MOVIMENTO BASEADO EM
HISTÓRICO. De acordo com a presente invenção, é revelado um método de
processamento de sinais de vídeo e um dispositivo para o mesmo.
Especificamente, um método de processamento de sinais de vídeo com base
na predição inter pode compreender as etapas de: compilar uma lista de
candidatos de combinação com base nos blocos espacialmente e
temporalmente adjacentes a um bloco atual; adicionar, à lista de
candidatos de combinação, um candidato de combinação baseado em
histórico que é baseado em um histórico do bloco atual; obter um índice
de combinação indicando, da lista de candidatos de combinação, um
candidato de combinação a ser usado na predição inter para o bloco
atual; gerar uma amostra de predição para o bloco atual com base na
informação de movimento do candidato de combinação indicado pelo índice
de combinação; e atualizar a lista de candidatos de combinação baseados
em histórico com base na informação de movimento, em que o candidato de
combinação baseado em histórico é adicionado à lista de candidatos de
combinação se a informação de movimento do candidato de combinação
baseado em histórico não for a mesma que a de um candidato de combinação
predeterminado dentre os candidatos de combinação incluídos na lista de
candidatos de combinação.
Description
[001] Este pedido é o depósito da Fase Nacional sob 35 U.S.C. 371 do Pedi- do Internacional Nº PCT/KR2019/017607, depositado em 12 de dezembro de 2019, que reivindica o benefício do Pedido Provisório dos EUA Nº 62/778,835, depositado em 12 de dezembro de 2018, cujo conteúdo é todo incorporado por referência aqui na sua totalidade.
[002] Uma modalidade da revelação está relacionada a um método e aparelho para processar um sinal de vídeo baseado em predição inter, e, mais especificamente, a um método e aparelho para realizar predição inter usando uma predição de vetor de movimento baseado em histórico.
[003] A codificação com compressão diz respeito a uma série de técnicas de processamento de sinais para transmitir informações digitalizadas através de uma linha de comunicação ou a técnicas para armazenar informações em uma forma adequada para um meio de armazenamento. O meio, incluindo uma figura, uma imagem, áudio, etc. pode ser um alvo para a codificação com compressão, e particularmente, uma técnica para realizar a codificação com compressão em uma imagem é chamada de compressão de imagem de vídeo.
[004] Os conteúdos de vídeos de próxima geração deverão apresentar características de alta resolução espacial, alta taxa de quadros e alta dimensionalidade de representação da cena. De modo a processar tais conteúdos, um aumento drástico do armazenamento em memória, da taxa de acesso à memória e da capacidade de processamento seria inevitável.
[005] Consequentemente, é necessário elaborar uma ferramenta de codificação para processar de maneira eficiente os conteúdos de vídeo de próxima geração.
[006] Um objetivo da modalidade da revelação é propor restrições sobre a verificação de redundância para melhorar a eficiência de predição, quando se adiciona um candidato HMVP a uma lista de candidatos de combinação (ou lista de candidatos AMVP).
[007] Outro objetivo da modalidade da revelação é propor um método para definir um tamanho de uma tabela HMVP de modo a aplicar de maneira eficiente um candidato HVMV à lista de candidatos de combinação (ou lista de candidatos AMVP).
[008] Os objetivos técnicos a serem alcançados em uma modalidade da revelação não se limitam aos objetivos técnicos supracitados, e outros objetivos técnicos não descritos acima podem ser evidentemente compreendidos por um indivíduo com conhecimento geral na técnica à qual pertence a revelação tomando como base a descrição seguinte.
[009] Em um aspecto de uma modalidade da revelação, um método para processar um sinal de vídeo baseado em predição de vetor de movimento baseado em histórico pode compreender: configurar uma lista de candidatos de combinação baseado em um bloco vizinho espacial e em um bloco vizinho temporal para um bloco atual; adicionar um candidato de combinação baseado em histórico do bloco atual à lista de candidatos de combinação; obter um índice de combinação indicando um candidato de combinação usado para uma predição inter do bloco atual dentro da lista de candidatos de combinação; gerar uma amostra de predição do bloco atual baseado na informação de movimento do candidato de combinação indicado pelo índice de combinação; e atualizar uma lista de candidatos de combinação baseado em histórico com base na informação de movimento, em que o candidato de combinação baseado em histórico é adicionado à lista de candidatos de combinação quando ele possui informação de movimento diferente com um candidato de combinação predefinido dos candidatos de combinação incluídos na lista de candidatos de combinação.
[010] Em uma modalidade, um tamanho da lista de candidatos de combinação baseado em histórico pode ser determinado com base em um número máximo de candidatos de combinação dentro da lista de candidatos de combinação.
[011] Em uma modalidade, um tamanho da lista de candidatos de combinação baseado em histórico pode ser determinado como um valor sendo 1 subtraído de um número máximo de candidatos de combinação dentro da lista de candidatos de combinação.
[012] Em uma modalidade, um tamanho da lista de candidatos de combinação baseado em histórico pode ser definido como 5.
[013] Em uma modalidade, o candidato de combinação baseado em histórico pode ser adicionado à lista de candidatos de combinação quando o candidato de combinação baseado em histórico inclui informação de movimento diferente da informação de movimento de um número específico de candidatos de combinação predefinidos dentre os candidatos de combinação incluídos na lista de candidatos de combinação.
[014] Em uma modalidade, o candidato de combinação baseado em histórico pode ser adicionado à lista de candidatos de combinação quando o candidato de combinação baseado em histórico inclui informação de movimento diferente da informação de movimento de candidatos de combinação espacial específicos incluídos na lista de candidatos de combinação.
[015] Em uma modalidade, o candidato de combinação baseado em histórico pode ser derivado de um número predeterminado de candidatos dentro da lista de candidatos de combinação baseado em histórico.
[016] Em outro aspecto de uma modalidade, um aparelho para processar um sinal de vídeo com base na predição inter pode compreender: uma memória configurada para armazenar os sinais de vídeo; e um processador combinado com a memória, em que o processador é configurado para: configurar uma lista de candidatos de combinação baseado em um bloco vizinho espacial e em um bloco vizinho temporal para um bloco atual; adicionar um candidato de combinação baseado em histórico do bloco atual à lista de candidatos de combinação; obter um índice de combinação indicando um candidato de combinação usado para uma predição inter do bloco atual dentro da lista de candidatos de combinação; gerar uma amostra de predição do bloco atual baseado na informação de movimento do candidato de combinação indicado pelo índice de combinação; e atualizar uma lista de candidatos de combinação baseado em histórico com base na informação de movimento, em que o candidato de combinação baseado em histórico é adicionado à lista de candidatos de combinação quando ele possui informação de movimento diferente com um candidato de combinação predefinido dos candidatos de combinação incluídos na lista de candidatos de combinação.
[Efeitos Técnicos]
[017] De acordo com uma modalidade da revelação, a complexidade de acordo com a verificação de redundância pode ser aperfeiçoada e o desempenho de compressão pode ser aperfeiçoado ao limitar a verificação de redundância para adição a uma lista de candidatos de combinação (ou lista de candidatos AMVP).
[018] De acordo com uma modalidade da revelação, a carga de memória associada ao armazenamento de uma tabela HMVP pode ser reduzida ao definir o tamanho da tabela HMVP.
[019] Os efeitos passíveis de serem alcançados na revelação não se limitam aos efeitos supracitados, e outros efeitos técnicos não descritos acima podem ser evidentemente compreendidos por um indivíduo com conhecimento geral na técnica à qual pertence a revelação tomando como base a descrição seguinte.
[020] Os desenhos acompanhantes, que são incluídos como parte da descrição detalhada a fim de auxiliar o entendimento da revelação, proporcionam modalidades da revelação e descrevem as características técnicas da revelação juntamente com a descrição detalhada.
[021] A FIG. 1 ilustra um exemplo de um sistema de codificação de vídeo de acordo com uma modalidade da revelação.
[022] A FIG. 2 é uma modalidade à qual a revelação é aplicada e é um diagrama de blocos esquemático de um aparelho de codificação para codificar um sinal de vídeo / imagem.
[023] A FIG. 3 é uma modalidade à qual a revelação é aplicada e é um diagrama de blocos esquemático de um aparelho de decodificação para decodificar um sinal de vídeo / imagem.
[024] A FIG. 4 mostra um exemplo de um diagrama estrutural de um sistema de transmissão em fluxo contínuo (streaming) de conteúdo de acordo com uma modalidade da revelação.
[025] A FIG. 5 mostra um exemplo de um diagrama de blocos de um aparelho para processar um sinal de vídeo de acordo com uma modalidade da revelação.
[026] A FIG. 6 é um exemplo de uma estrutura de divisão de bloco de acordo com uma modalidade da revelação, as FIGS. 6a a 6d ilustram, respectivamente, os exemplos de estruturas de divisão de bloco de acordo com uma árvore quaternária (QT), uma árvore binária (BT), uma árvore ternária (TT) e uma árvore assimétrica (AT).
[027] As FIGS. 7 e 8 são, respectivamente, um procedimento de codificação de vídeo / imagem baseado em predição inter e um preditor inter dentro de um aparelho de codificação de acordo com uma modalidade da revelação.
[028] As FIGS. 9 e 10 são, respectivamente, um procedimento de decodificação de vídeo / imagem baseado em predição inter e um preditor inter dentro de um aparelho de decodificação de acordo com uma modalidade da revelação.
[029] A FIG. 11 ilustra um exemplo de construção de candidatos de combinação espacial para um bloco atual.
[030] A FIG. 12 é um fluxograma ilustrando um método de configuração de uma lista de candidatos de combinação de acordo com uma modalidade à qual a revelação é aplicada.
[031] A FIG. 13 é um fluxograma ilustrando um método de configuração de uma lista de candidatos de predição (lista de candidatos MVP) de acordo com uma modalidade à qual a revelação é aplicada.
[032] A FIG. 14 ilustra um exemplo de modelos de movimento de acordo com uma modalidade da revelação.
[033] A FIG. 15 ilustra um exemplo de um vetor de movimento de ponto de controle para uma predição de movimento afim de acordo com uma modalidade da revelação.
[034] A FIG. 16 ilustra um exemplo de um vetor de movimento para cada sub- bloco de um bloco ao qual foi aplicada uma predição de movimento afim de acordo com uma modalidade da revelação.
[035] A FIG. 17 ilustra um exemplo de blocos vizinhos usados para uma predição de movimento afim em um modo de combinação afim de acordo com uma modalidade da revelação.
[036] A FIG. 18 ilustra um exemplo de um bloco no qual uma predição de movimento afim é realizada usando blocos vizinhos aos quais foi aplicada uma predição de movimento afim de acordo com uma modalidade da revelação.
[037] A FIG. 19 é um diagrama para descrever um método para gerar uma lista de candidatos de combinação usando um bloco de codificação afim vizinho de acordo com uma modalidade da revelação
[038] As FIGS. 20 e 21 são diagramas para descrever um método para construir uma lista de candidatos de combinação afins usando um bloco vizinho codificado por uma predição afim de acordo com uma modalidade da revelação.
[039] A FIG. 22 ilustra um exemplo de blocos vizinhos usados para uma predição de movimento afim em um modo inter afim de acordo com uma modalidade da revelação.
[040] A FIG. 23 ilustra um exemplo de blocos vizinhos usados para uma predição de movimento afim em um modo inter afim de acordo com uma modalidade da revelação.
[041] As FIGS. 24 e 25 são diagramas ilustrando um método para derivar um candidato de vetor de movimento usando informação de movimento de um bloco vizinho em um modo inter afim de acordo com uma modalidade da revelação.
[042] A FIG. 26 ilustra um exemplo de um campo de vetor de movimento afim de uma unidade de sub-bloco de acordo com uma modalidade da revelação.
[043] A FIG. 27 é um fluxograma para descrever um método para armazenar uma HMVP de acordo com uma modalidade da revelação.
[044] A FIG. 28 é um diagrama para descrever uma tabela HMVP operando em um modo FIFO não-restrito de acordo com uma modalidade da revelação.
[045] A FIG. 29 é um diagrama para descrever uma tabela HMVP operando em um modo FIFO não-restrito de acordo com uma modalidade da revelação.
[046] A FIG. 30 é um diagrama ilustrando uma LUT HMVP e uma LUT HMVP de longo prazo de acordo com uma modalidade da revelação.
[047] A FIG. 31 é um diagrama ilustrando um exemplo de um método para atualizar uma LUT HMVP de acordo com uma modalidade da revelação.
[048] A FIG. 32 é um diagrama ilustrando um método para limitar o número de candidatos HMVP, ou seja, um alvo de uma verificação de poda, de acordo com uma modalidade da revelação.
[049] A FIG. 33 é um fluxograma ilustrando um exemplo de um método para atualizar uma verificação de poda de acordo com uma modalidade da revelação.
[050] A FIG. 34 é um diagrama para descrever um método para derivar um candidato H-STMVP usando vetores de movimento que se referem a diferentes imagens de referência de acordo com uma modalidade da revelação.
[051] A FIG. 35 é um diagrama ilustrando uma localização de um bloco para derivar um candidato HMVP afim herdado de acordo com uma modalidade da revelação.
[052] A FIG. 36 é um diagrama ilustrando uma lista de combinação afim ou lista de AMVP afim de acordo com uma modalidade da revelação.
[053] A FIG. 37 é um fluxograma ilustrando um método para processar um sinal de vídeo baseado em uma predição de vetor de movimento baseado em histórico de acordo com uma modalidade à qual a revelação é aplicada.
[054] A FIG. 38 é um diagrama ilustrando esquematicamente um exemplo de um sistema de serviço incluindo um dispositivo digital.
[055] A FIG. 39 é um diagrama de blocos ilustrando um dispositivo digital de acordo com uma modalidade.
[056] A FIG. 40 é um diagrama de blocos de configuração ilustrando outra modalidade de um dispositivo digital.
[057] A FIG. 41 é um diagrama de blocos ilustrando um dispositivo digital de acordo com outra modalidade.
[058] A FIG 42 é um diagrama de blocos ilustrando uma configuração detalhada da unidade de controle das FIGS. 39 a 41.
[059] A FIG. 43 é um diagrama ilustrando um exemplo no qual uma tela de um dispositivo digital exibe uma imagem principal e uma subimagem simultaneamente, de acordo com uma modalidade.
[060] Daqui em diante, as modalidades preferidas da revelação serão descritas por referência aos desenhos anexos. A descrição que será descrita abaixo com os desenhos acompanhantes serve para descrever as modalidades exemplificativas da presente revelação, e não pretende descrever a única modalidade na qual a revelação pode ser implementada. A descrição abaixo inclui detalhes específicos de modo a propiciar o entendimento perfeito da presente revelação. Entretanto, os versados na técnica entenderão que a revelação pode ser |incorporada sem os detalhes específicos. Em alguns casos, de modo a evitar que o conceito técnico da revelação fique pouco claro, estruturas ou dispositivos que são de conhecimento público podem ser omitidos, ou podem ser representados como um diagrama de blocos focando-se nas funções centrais das estruturas ou dispositivos.
[061] Em alguns casos, de modo a evitar que o conceito técnico da revelação fique pouco claro, estruturas ou dispositivos que são de conhecimento público podem ser omitidos, ou podem ser representados como um diagrama de blocos focando-se nas funções centrais das estruturas ou dispositivos.
[062] Adicionalmente, embora termos gerais amplamente utilizados sejam escolhidos como os termos na revelação tanto quanto possível, um termo que é escolhido arbitrariamente pelo requerente é usado em um caso específico. Uma vez que o significado do termo será claramente descrito na parte correspondente da descrição em tal caso, entende-se que a revelação não será interpretada simplesmente somente pelos termos usados na descrição da revelação, mas o significado dos termos deverá ser compreendido.
[063] Terminologias específicas usadas na descrição abaixo podem ser empregadas para ajudar no entendimento da revelação. Adicionalmente, a terminologia específica pode ser modificada em outras formas dentro do escopo do conceito técnico da revelação. Por exemplo, um sinal, dados, uma amostra, uma imagem, uma fatia, um bloco de mosaico (tile), um quadro, um bloco, etc. podem ser substituídos apropriadamente e interpretados em cada processo de codificação.
[064] Daqui em diante, neste relatório descritivo, uma “unidade de processamento” designará uma unidade na qual um processo de processamento de codificação / decodificação, tal como predição, uma transformada e/ou quantização, é realizado. Uma unidade de processamento pode ser interpretada como tendo um significado incluindo uma unidade para um componente de luma e uma unidade para um componente de croma. Por exemplo, uma unidade de processamento pode corresponder a uma unidade de árvore de codificação (CTU), uma unidade de codificação (CU), uma unidade de predição (PU) ou uma unidade de transformada (TU).
[065] Adicionalmente, uma unidade de processamento pode ser interpretada como sendo uma unidade para um componente de luma ou uma unidade para um componente de croma. Por exemplo, a unidade de processamento pode corresponder a um bloco de árvore de codificação (CTB), um bloco de codificação (CB), um bloco de predição (PB) ou um bloco de transformada (TB) para um componente de luma. Como alternativa, uma unidade de processamento pode corresponder a um bloco de árvore de codificação (CTB), um bloco de codificação (CB), um bloco de predição (PB) ou um bloco de transformada (TB) para um componente de croma. Adicionalmente, a revelação não se limita a isto, e uma unidade de processamento pode ser interpretada como um significado incluindo uma unidade para um componente de luma e uma unidade para um componente de croma.
[066] Adicionalmente, uma unidade de processamento não está essencialmente limitada a um bloco quadrado e pode ser interpretada em uma forma poligonal possuindo três vértices ou mais.
[067] Adicionalmente, doravante, neste relatório descritivo, um pixel, um elemento de imagem, um coeficiente (um coeficiente de transformada ou um coeficiente de transformada após uma transformação de primeira ordem) etc. são geralmente chamados de amostra. Adicionalmente, usar uma amostra pode significar usar um valor de pixel, um valor de elemento de imagem, um coeficiente de transformada, entre outros.
[068] A FIG. 1 ilustra um exemplo de um sistema de codificação de vídeo de acordo com uma modalidade da revelação.
[069] O sistema de codificação de vídeo pode incluir um dispositivo de origem 10 e um dispositivo receptor 20. O dispositivo de origem 10 pode transmitir informação ou dados de vídeo/imagem codificados ao dispositivo receptor 20 em um arquivo ou formato de transmissão em fluxo contínuo através de um meio de armazenamento ou de uma rede.
[070] O dispositivo de origem 10 pode incluir uma fonte de vídeo 11, um aparelho de codificação 12 e um transmissor 13. O dispositivo receptor 20 pode incluir um receptor 21, um aparelho de decodificação 22 e um renderizador 23. O dispositivo de origem pode ser chamado de aparelho de codificação de vídeo/imagem e o dispositivo receptor pode ser chamado de aparelho de decodificação de vídeo/imagem. O transmissor 13 pode ser incluído no aparelho de codificação 12. O receptor 21 pode ser incluído no aparelho de decodificação 22. O renderizador pode incluir um meio de exibição e o meio de exibição pode ser configurado como um dispositivo separado ou como um componente externo.
[071] A fonte de vídeo pode obter dados de vídeo/imagem através de um processo de captura, síntese ou geração de vídeo/imagem. A fonte de vídeo pode incluir um dispositivo de captura de vídeo/imagem e/ou um dispositivo de geração de vídeo/imagem. O dispositivo de captura de vídeo/imagem pode incluir, por exemplo, uma ou mais câmeras, um arquivo de vídeo/imagem incluindo vídeo/imagens capturadas anteriormente, entre outros. O dispositivo de geração de vídeo/imagem pode incluir, por exemplo, um computador, um tablet e um smartphone, e pode gerar eletronicamente dados de vídeo/imagem. Por exemplo, dados de vídeo/imagem virtual podem ser gerados através de um computador ou similar, e, neste caso, um processo de captura de vídeo/imagem pode ser substituído por um processo de geração de dados relacionados.
[072] O aparelho de codificação 12 pode codificar um vídeo/imagem de entrada. O aparelho de codificação 12 pode realizar uma série de procedimentos, tal como predição, transformada, e quantização para eficiência de compressão e codificação. Os dados codificados (informações de vídeo/imagem codificadas) podem ser emitidos em uma forma de fluxo de bits.
[073] O transmissor 13 pode transmitir o vídeo/informações de vídeo codificadas ou dados emitidos na forma de um fluxo de bits ao receptor do dispositivo receptor através de um meio de armazenamento digital ou uma rede em um arquivo ou formato de transmissão em fluxo contínuo. O meio de armazenamento digital pode incluir diversos meios de armazenamento, tal como barramento serial universal USB, meio digital seguro SD, disco compacto CD, disco de vídeo digital DVD, blu-ray, unidade de disco rígido HDD e unidade de estado sólido SSD. O transmissor 13 pode incluir um elemento para gerar um arquivo de mídia através de um formato de arquivo predeterminado, e pode incluir um elemento para transmissão através de uma rede de difusão/comunicação. O receptor 21 pode extrair o fluxo de bits e transmiti-lo ao aparelho de decodificação 22.
[074] O aparelho de decodificação 22 pode decodificar dados de vídeo/imagem realizando uma série de procedimentos, tal como desquantização, transformada inversa, e predição correspondendo às operações do aparelho de codificação 12.
[075] O renderizador 23 pode renderizar o vídeo/imagem decodificado(a). O vídeo/imagem renderizado(a) pode ser exibido(a) através do meio de exibição.
[076] A FIG. 2 é uma modalidade à qual a revelação é aplicada e é um diagrama de blocos esquemático de um aparelho de codificação para codificar um sinal de vídeo / imagem.
[077] Referindo-se à FIG. 2, um aparelho de codificação 100 pode ser configurado para incluir um divisor de imagem 110, um subtrator 115, um transformador 120, um quantizador 130, um desquantizador 140, um transformador inverso 150, um somador 155, um filtro 160, uma memória 170, um preditor inter 180, um preditor intra 185 e um codificador por entropia 190. O preditor inter 180 e o preditor intra 185 podem ser geralmente chamados de preditor. Em outras palavras, o preditor pode incluir o preditor inter 180 e o preditor intra 185. O transformador 120, o quantizador 130, o desquantizador 140 e o transformador inverso 150 podem ser incluídos em um processador residual. O processador residual pode adicionalmente incluir o subtrator 115. Em uma modalidade, o divisor de imagem 110, o subtrator 115, o transformador 120, o quantizador 130, o desquantizador 140, o transformador inverso 150, o somador 155, o filtro 160, o preditor inter 180, o preditor intra 185 e o codificador por entropia 190 podem ser configurados como um componente de hardware (por exemplo, um codificador ou um processador).
Adicionalmente, a memória 170 pode ser configurada com um componente de hardware (por exemplo, uma memória ou um meio de armazenamento digital), em uma modalidade, e pode incluir um armazenamento temporário de imagens decodificadas (DPB).
[078] O divisor de imagem 110 pode dividir uma imagem de entrada (ou imagem ou quadro), informada ao aparelho de codificação 100, em uma ou mais unidades de processamento.
Por exemplo, a unidade de processamento pode ser chamada de unidade de codificação (CU). Neste caso, a unidade de codificação pode ser dividida recursivamente a partir de uma unidade de árvore de codificação
(CTU) ou da maior unidade de codificação (LCU) com base em uma estrutura de árvore quaternária-binária (QTBT). Por exemplo, uma unidade de codificação pode ser dividida em uma pluralidade de unidades de codificação de profundidade maior com base em uma estrutura de árvore quaternária e/ou em uma estrutura de árvore binária.
Neste caso, por exemplo, a estrutura de árvore quaternária pode ser aplicada primeiro e a estrutura de árvore binária pode ser aplicada depois.
Como alternativa, a estrutura de árvore binária pode ser aplicada primeiro.
Um procedimento de codificação de acordo com a revelação pode ser realizado com base na unidade de codificação final que não é mais dividida.
Neste caso, a maior unidade de codificação pode ser usada diretamente como a unidade de codificação final com base na eficiência de codificação de acordo com uma característica de imagem, ou uma unidade de codificação pode ser dividida recursivamente em unidades de codificação de profundidade maior, se necessário.
Por conseguinte,
uma unidade de codificação possuindo um tamanho ideal pode ser usada como a unidade de codificação final.
Neste caso, o procedimento de codificação pode incluir um procedimento, tal como uma predição, transformada ou reconstrução, a ser descrito posteriormente.
Para outro exemplo, a unidade de processamento pode adicionalmente incluir uma unidade de predição (PU), ou uma unidade de transformada (TU). Neste caso, cada uma dentre a unidade de predição e a unidade de transformada pode ser dividida ou particionada a partir de cada unidade de codificação final.
A unidade de predição pode ser uma unidade para predição de amostra, e a unidade de transformada pode ser uma unidade a partir da qual um coeficiente de transformada é derivado e/ou uma unidade na qual um sinal residual é derivado a partir de um coeficiente de transformada.
[079] Uma unidade pode ser usada de maneira intercambiável com um bloco ou uma área de acordo com as circunstâncias. Em um caso comum, um bloco MxN pode indicar um conjunto de amostras configuradas com M colunas e N linhas ou um conjunto de coeficientes de transformada. Em geral, uma amostra pode indicar um pixel ou um valor de um pixel, e pode indicar somente um pixel / valor de pixel de um componente de luma ou somente um pixel / valor de final de um componente de croma. Em uma amostra, uma figura (ou imagem) pode ser usada como um termo correspondendo a um pixel ou “pel” (elemento de imagem).
[080] O aparelho de codificação 100 pode gerar um sinal residual (bloco residual ou arranjo de amostras residual) subtraindo-se um sinal de predição (bloco predito ou arranjo de amostras de predição), emitido pelo preditor inter 180 ou pelo preditor intra 185, a partir de um sinal de imagem de entrada (bloco original ou arranjo de amostras original). O sinal residual gerado é transmitido ao transformador
120. Neste caso, como ilustrado, uma unidade na qual o sinal de predição (bloco de predição ou arranjo de amostras de predição) é subtraído do sinal de imagem de entrada (bloco original ou arranjo de amostras original) dentro do aparelho de codificação 100 pode ser chamada de subtrator 115. O preditor 110 pode realizar predição em um bloco de processamento alvo (daqui em diante chamado de bloco atual), e pode gerar um bloco predito incluindo amostras de predição para o bloco atual. O preditor pode determinar se uma predição intra é aplicada ou predição inter é aplicada em um bloco atual ou em uma unidade de CU. O preditor pode gerar vários segmentos de informação em uma predição, tal como informação de modo de predição, conforme será descrito posteriormente na descrição de cada modo de predição, e pode transmitir a informação ao codificador por entropia 190. A informação sobre a predição pode ser codificada no codificador por entropia 190 e pode ser emitida em uma forma de fluxo de bits.
[081] O preditor intra 185 pode predizer um bloco atual com referência às amostras dentro de uma imagem atual. As amostras referenciadas podem estar localizadas vizinhas ao bloco atual ou podem ser espaçadas do bloco atual, dependendo de um modo de predição. Em uma predição intra, os modos de predição podem incluir uma pluralidade de modos não-angulares e uma pluralidade de modos angulares. O modo não-angular pode incluir um modo DC e um modo planar, por exemplo. O modo angular pode incluir 33 modos de predição angular ou 65 modos de predição angular, por exemplo, dependendo de um grau fino de uma direção de predição. Neste caso, modos de predição angular que são maiores ou menores do que os 33 modos de predição angular ou 65 modos de predição angular podem ser usados dependendo de uma configuração, por exemplo. O preditor intra 185 pode determinar um modo de predição aplicado a um bloco atual usando o modo de predição aplicado a um bloco vizinho.
[082] O preditor inter 180 pode derivar um bloco predito para um bloco atual baseado em um bloco de referência (arranjo de amostras de referência) especificado por um vetor de movimento em uma imagem de referência. Neste caso, de modo a reduzir a quantidade de informação de movimento transmitida em um modo de predição inter, a informação de movimento pode ser prevista como um bloco, um sub-bloco ou uma unidade de amostra baseado na correlação da informação de movimento entre um bloco vizinho e o bloco atual. A informação de movimento pode incluir um vetor de movimento e um índice de imagem de referência. A informação de movimento pode adicionalmente incluir informação de direção de predição inter (predição L0, predição L1, Bi-predição). No caso da predição inter, um bloco vizinho pode incluir um bloco vizinho espacial dentro de uma imagem atual e um bloco vizinho temporal dentro de uma imagem de referência. Uma imagem de referência incluindo um bloco de referência e uma imagem de referência incluindo um bloco vizinho temporal pode ser o mesmo ou diferente. O bloco vizinho temporal pode ser designado por um nome chamado de bloco de referência co-localizado ou de CU co- localizada (colCU). Uma imagem de referência incluindo um bloco vizinho temporal pode ser designada por imagem co-localizada (colPic). Por exemplo, o preditor inter 180 pode construir uma lista de candidatos de informação de movimento baseado nos blocos vizinhos, e pode gerar informações indicando qual candidato é usado para derivar um vetor de movimento e/ou índice de imagem de referência de um bloco atual. Uma predição inter pode ser realizada com base em vários modos de predição. Por exemplo, no caso de um modo de salto e um modo de combinação, o preditor inter 180 pode usar informação de movimento de um bloco vizinho como informação de movimento de um bloco atual. No caso do modo de salto, diferente do modo de combinação, um sinal residual pode não ser transmitido. No caso de um modo de predição de informação de movimento (MVP), um vetor de movimento de um bloco vizinho pode ser usado como um preditor de vetor movimento. Um vetor de movimento de um bloco atual pode ser indicado sinalizando uma diferença de vetor de movimento.
[083] Um sinal de predição gerado através do preditor inter 180 ou do preditor intra 185 pode ser usado para gerar um sinal reconstruído ou um sinal residual.
[084] O transformador 120 pode gerar coeficientes de transformada aplicando um esquema de transformada a um sinal residual. Por exemplo, o esquema de transformada pode incluir pelo menos uma dentre uma transformada discreta de cosseno (DCT), uma transformada discreta de seno (DST), uma transformada de Karhunen–Loève (KLT), uma transformada baseada em grafos (GBT), ou uma transformada condicionalmente não-linear (CNT). Neste caso, a GBT refere-se a uma transformada obtida a partir de um grafo se a informação de relação entre os pixels for representada como o grafo. A CNT refere-se a uma transformada obtida com base em um sinal de predição gerado usando todos os pixels reconstruídos anteriormente. Adicionalmente, um processo de transformada pode ser aplicado aos blocos de pixel possuindo o mesmo tamanho de uma forma quadrada ou pode ser aplicado a blocos possuindo tamanhos variáveis que não uma forma quadrada.
[085] O quantizador 130 pode quantizar coeficientes de transformada e transmiti-los ao codificador por entropia 190. O codificador por entropia 190 pode codificar um sinal quantizado (informação sobre os coeficientes de transformada quantizados) e emiti-lo em uma forma de fluxo de bits. A informação sobre os coeficientes de transformada quantizados pode ser chamada de informação residual.
O quantizador 130 pode reordenar os coeficientes de transformada quantizados de uma forma de bloco na forma de vetor unidimensional baseado em uma sequência de varredura de coeficiente, e pode gerar informação sobre os coeficientes de transformada quantizados com base nos coeficientes de transformada quantizados da forma de vetor unidimensional. O codificador por entropia 190 pode realizar vários métodos de codificação, tal como Golomb exponencial, codificação de comprimento variável adaptativa ao contexto (CAVLC), e codificação aritmética binária adaptativa ao contexto (CABAC). O codificador por entropia 190 pode codificar informação (por exemplo, valores de elementos de sintaxe) necessária para reconstrução de vídeo / imagem além dos coeficientes de transformada quantizados juntos ou separadamente. A informação codificada (por exemplo, informação de vídeo/imagem codificada) pode ser transmitida ou armazenada em uma unidade de camada de abstração de rede (NAL) na forma de um fluxo de bits. O fluxo de bits pode ser transmitido através de uma rede ou pode ser armazenado em um meio de armazenamento digital. Neste caso, a rede pode incluir uma rede de difusão e/ou uma rede de comunicação. O meio de armazenamento digital pode incluir vários meios de armazenamento, tal como um USB, um SD, um CD, um DVD, Blueray, um HDD e um SSD. Um transmissor (não ilustrado) que transmite um sinal emitido pelo codificador de entropia 190 e/ou um armazenamento (não ilustrado) para armazenar o sinal pode ser configurado como um elemento interno/externo do aparelho de codificação 100, ou o transmissor pode ser um elemento do codificador por entropia
190.
[086] Os coeficientes de transformada quantizados emitidos pelo quantizador 130 podem ser usados para gerar um sinal de predição. Por exemplo, um sinal residual pode ser reconstruído aplicando-se desquantização e uma transformada inversa aos coeficientes de transformada quantizados através do desquantizador 140 e do transformador inverso 150 dentro de um loop. O adicionador 155 pode adicionar o sinal residual reconstruído a um sinal de predição emitido pelo preditor inter 180 ou pelo preditor intra 185, de modo que um sinal reconstruído (imagem reconstruída, bloco reconstruído ou arranjo de amostras reconstruído) possa ser gerado. Um bloco predito pode ser usado como um bloco reconstruído se não houver residual para um bloco alvo de processamento, como no caso em que um modo de salto foi aplicado. O adicionador 155 pode ser chamado de reconstrutor ou gerador de bloco de reconstrução. O sinal reconstruído gerado pode ser usado para a predição intra de um próximo bloco alvo de processamento dentro de uma imagem atual, e pode ser usado para a predição inter de uma próxima imagem através de filtragem, como será descrito posteriormente.
[087] O filtro 160 pode melhorar a qualidade subjetiva / objetiva da imagem aplicando filtragem a um sinal reconstruído. Por exemplo, o filtro 160 pode gerar uma imagem reconstruída modificada aplicando diversos métodos de filtragem à imagem reconstruída. A imagem reconstruída modificada pode ser armazenada no DPB 170. Os diversos métodos de filtragem podem incluir filtro de remoção do efeito de bloco, uma compensação de amostra adaptativa, um filtro em laço adaptativo, e um filtro bilateral, por exemplo. O filtro 160 pode gerar vários segmentos de informação para filtragem, como será descrito posteriormente na descrição de cada método de filtragem, e transmiti-los ao codificador por entropia 190. A informação de filtragem pode ser codificada pelo codificador por entropia 190 e emitida em uma forma de fluxo de bits.
[088] A imagem reconstruída modificada transmitida ao DPB 170 pode ser usada como uma imagem de referência no preditor inter 180. O aparelho de codificação pode evitar um emparelhamento de predição errôneo no aparelho de codificação 100 e em um aparelho de decodificação e melhorar a eficiência de codificação se a predição inter for aplicada.
[089] O DPB 170 pode armazenar uma imagem reconstruída modificada de modo a usar a imagem reconstruída modificada como uma imagem de referência no preditor inter 180.
[090] A FIG. 3 é uma modalidade à qual a revelação é aplicada e é um diagrama de blocos esquemático de um aparelho de decodificação para decodificar um sinal de vídeo / imagem.
[091] Referindo-se à FIG. 3, o aparelho de decodificação 200 pode ser configurado para incluir um decodificador por entropia 210, um desquantizador 220, um transformador inverso 230, um adicionador 235, um filtro 240, uma memória 250, um preditor inter 260 e um preditor intra 265. O preditor inter 260 e o preditor intra 265 podem ser coletivamente chamados de preditor. Ou seja, o preditor pode incluir o preditor inter 180 e o preditor intra 185. O desquantizador 220 e o transformador inverso 230 podem ser coletivamente chamados de processador residual. Ou seja, o processador residual pode incluir o desquantizador 220 e o transformador inverso
230. O decodificador por entropia 210, o desquantizador 220, o transformador inverso 230, o adicionador 235, o filtro 240, o preditor inter 260 e o preditor intra 265 podem ser configurados como um componente de hardware (por exemplo, o decodificador ou o processador) de acordo com uma modalidade. Adicionalmente, a memória 170 pode ser configurada com um componente de hardware (por exemplo, uma memória ou um meio de armazenamento digital), em uma modalidade, e pode incluir um armazenamento temporário de imagens decodificadas (DPB).
[092] Quando um fluxo de bits incluindo informação de vídeo/imagem é recebido, o aparelho de decodificação 200 pode reconstruir uma imagem de acordo com um processo de processamento de informação de vídeo/imagem no aparelho de codificação da FIG. 2. Por exemplo, o aparelho de decodificação 200 pode realizar decodificação usando uma unidade de processamento aplicada no aparelho de codificação. Por conseguinte, uma unidade de processamento para decodificação pode ser uma unidade de codificação, por exemplo. A unidade de codificação pode ser dividida a partir de uma unidade de árvore de codificação ou da maior unidade de codificação, dependendo de uma estrutura de árvore quaternária e/ou uma estrutura de árvore binária. Adicionalmente, um sinal de imagem reconstruído decodificado e emitido através do aparelho de decodificação 200 pode ser reproduzido através de um dispositivo de reprodução.
[093] O aparelho de decodificação 200 pode receber um sinal, emitido pelo aparelho de codificação da FIG. 1, em uma forma de fluxo de bits. O sinal recebido pode ser decodificado através do decodificador por entropia 210. Por exemplo, o decodificador por entropia 210 pode derivar informação (por exemplo, informação de vídeo/imagem) para reconstrução de imagem (ou reconstrução de figura) por meio da análise do fluxo de bits. Por exemplo, o decodificador por entropia 210 pode decodificar informação dentro do fluxo de bits com base em um método de codificação, tal como codificação de Golomb exponencial, CAVLC, CABAC, e pode emitir um valor de um elemento de sintaxe necessário para reconstrução de vídeo ou valores quantizados de coeficientes de transformada com respeito a um residual.
Mais especificamente, no método de decodificação por entropia CABAC, um compartimento (“bin”) correspondendo a cada elemento de sintaxe pode ser recebido a partir de um fluxo de bits, um modelo de contexto pode ser determinado usando informação de elemento de sintaxe alvo de decodificação e informação de decodificação de um vizinho e bloco alvo de decodificação ou informação de um símbolo/compartimento decodificado em uma etapa anterior, uma probabilidade de que um compartimento ocorra pode ser predita com base no modelo de contexto determinado, e um símbolo correspondendo a um valor de cada elemento de sintaxe pode ser gerado realizando-se decodificação aritmética no compartimento. Neste caso, no método de decodificação por entropia CABAC, após um modelo de contexto ser determinado, o modelo de contexto pode ser atualizado usando informação de um símbolo/compartimento decodificado para o modelo de contexto de um próximo símbolo/compartimento. A informação sobre uma predição dentre as informações decodificadas no decodificador por entropia 2110 pode ser fornecida ao preditor (preditor inter 260 e preditor intra 265). A informação de parâmetro relacionada a um valor residual no qual a decodificação por entropia foi realizada no decodificador por entropia 210, ou seja, os coeficientes de transformada quantizados, pode ser informada ao desquantizador 220. Adicionalmente, a informação sobre filtragem dentre as informações decodificadas no decodificador por entropia 210 pode ser fornecida ao filtro 240. Enquanto isto, um receptor (não ilustrado) que recebe um sinal emitido pelo aparelho de codificação pode ser adicionalmente configurado como um elemento interno / externo do aparelho de decodificação 200 ou o receptor pode ser um elemento do decodificador por entropia
210.
[094] O desquantizador 220 pode desquantizar coeficientes de transformada quantizados e emitir coeficientes de transformada. O desquantizador 220 pode reordenar os coeficientes de transformada quantizados em uma forma de bloco bidimensional. Neste caso, a reordenação pode ser realizada com base em uma sequência de varredura de coeficientes realizada no aparelho de codificação. O desquantizador 220 pode realizar a desquantização nos coeficientes de transformada quantizados usando um parâmetro de quantização (por exemplo, informação de tamanho de passo de quantização) e pode obter coeficientes de transformada.
[095] O transformador inverso 230 pode emitir um sinal residual (bloco residual ou arranjo de amostras residual) por meio da aplicação de transformada inversa aos coeficientes de transformada.
[096] O preditor pode realizar uma predição em um bloco atual, e pode gerar um bloco predito incluindo amostras de predição para o bloco atual. O preditor pode determinar se uma predição intra é aplicada ou uma predição inter é aplicada ao bloco atual com base na informação sobre uma predição, que é emitida pelo decodificador por entropia 210, e pode determinar um modo de predição intra/inter detalhado.
[097] O preditor intra 265 pode predizer um bloco atual com referência às amostras dentro de uma imagem atual. As amostras referenciadas podem estar localizadas avizinhando-se a um bloco atual ou podem ser espaçadas de um bloco atual, dependendo de um modo de predição. Em uma predição intra, os modos de predição podem incluir uma pluralidade de modos não-angulares e uma pluralidade de modos angulares. O preditor intra 265 pode determinar um modo de predição aplicado a um bloco atual usando um modo de predição aplicado a um bloco vizinho.
[098] O preditor inter 260 pode derivar um bloco predito para um bloco atual baseado em um bloco de referência (arranjo de amostras de referência) especificado por um vetor de movimento em uma imagem de referência. Neste caso, de modo a reduzir a quantidade de informação de movimento transmitida em um modo de predição inter, a informação de movimento pode ser prevista como um bloco, um sub-bloco ou uma unidade de amostra baseado na correlação da informação de movimento entre um bloco vizinho e o bloco atual. A informação de movimento pode incluir um vetor de movimento e um índice de imagem de referência. A informação de movimento pode adicionalmente incluir informação de direção de predição inter (predição L0, predição L1, Bi-predição). No caso da predição inter, um bloco vizinho pode incluir um bloco vizinho espacial dentro de uma imagem atual e um bloco vizinho temporal dentro de uma imagem de referência. Por exemplo, o preditor inter 260 pode configurar uma lista de candidatos de informação de movimento com base nos blocos vizinhos, e pode derivar um vetor de movimento e/ou um índice de imagem de referência de um bloco atual com base na informação de seleção de candidato recebida. Uma predição inter pode ser realizada com base em vários modos de predição. A informação sobre a predição pode incluir informação indicando um modo de predição inter para um bloco atual.
[099] O adicionador 235 pode gerar um sinal reconstruído (imagem reconstruída, bloco reconstruído ou arranjo de amostras reconstruído) por meio da adição de um sinal residual obtido a um sinal de predição (bloco predito ou arranjo de amostras de predição) emitido pelo preditor inter 260 ou pelo preditor intra 265.
Um bloco predito pode ser usado como um bloco reconstruído se não houver resíduo para um bloco alvo de processamento, como no caso em que um modo de salto foi aplicado.
[0100] O adicionador 235 pode ser chamado de reconstrutor ou gerador de bloco de reconstrução. O sinal reconstruído gerado pode ser usado para a predição intra de um próximo bloco alvo de processamento dentro de uma imagem atual, e pode ser usado para a predição inter de uma próxima imagem através de filtragem, como será descrito posteriormente.
[0101] O filtro 240 pode melhorar a qualidade subjetiva / objetiva da imagem aplicando filtragem a um sinal reconstruído. Por exemplo, o filtro 240 pode gerar uma imagem reconstruída modificada por meio da aplicação de diversos métodos de filtragem a uma imagem reconstruída, e pode transmitir a imagem reconstruída modificada ao DPB 250. Os diversos métodos de filtragem podem incluir filtro de remoção do efeito de bloco, um compensação de amostra adaptativa SAO, um filtro em laço adaptativo ALF, e um filtro bilateral, por exemplo.
[0102] Uma imagem reconstruída transmitida (modificada) no DPB 250 pode ser usada como uma imagem de referência no preditor inter 260.
[0103] Na revelação, as modalidades descritas no filtro 160, no preditor inter 180 e no preditor intra 185 do aparelho de codificação 100 podem ser aplicadas ao filtro 240, ao preditor inter 260 e ao preditor intra 265 do aparelho de decodificação 200, respectivamente, de maneira idêntica ou em correspondência.
[0104] A FIG. 4 mostra um exemplo de um diagrama estrutural de um sistema de transmissão em fluxo contínuo (streaming) de conteúdo de acordo com uma modalidade da revelação.
[0105] O sistema de transmissão em fluxo contínuo de conteúdo ao qual a revelação é aplicada pode, em grande parte, incluir um servidor de codificação 410, um servidor de transmissão em fluxo contínuo 420, um servidor da Rede (web) 430, um armazenamento de mídia 440, um dispositivo do usuário 450 e um dispositivo de entrada multimídia 460.
[0106] O servidor de codificação 410 pode comprimir o conteúdo informado pelos dispositivos de entrada multimídia, tal como um smartphone, câmera, câmera portátil de vídeo, etc. em dados digitais para gerar um fluxo de bits e transmiti-lo ao servidor de transmissão em fluxo contínuo 420. Como outro exemplo, quando os dispositivos de entrada de multimídia 460, tal como o smartphone, câmera e câmera portátil de vídeo, gerarem diretamente um fluxo de bits, o servidor de codificação 410 pode ser omitido.
[0107] O fluxo de bits pode ser gerado por um método de codificação ou por um método de geração de fluxo de bits ao qual a revelação é aplicada, e o servidor de transmissão em fluxo contínuo 420 pode armazenar temporariamente o fluxo de bits no processo de transmitir ou receber o fluxo de bits.
[0108] O servidor de transmissão em fluxo contínuo 420 transmite dados multimídia ao dispositivo do usuário 450 com base em uma solicitação do usuário através do servidor da Rede 430, e o servidor da Rede 430 serve de intermediário para informar o usuário a respeito de qual serviço está presente. Quando um usuário solicita um serviço desejado através do servidor da Rede 430, o servidor da Rede 430 o distribui ao servidor de transmissão em fluxo contínuo 420, e o servidor de transmissão em fluxo contínuo 420 transmite dados multimídia ao usuário. Neste momento, o sistema de transmissão em fluxo contínuo de conteúdo pode incluir um servidor de controle separado, caso este em que o servidor de controle serve para controlar comandos / respostas entre os dispositivos no sistema de transmissão em fluxo contínuo de conteúdo.
[0109] O servidor de transmissão em fluxo contínuo 420 pode receber conteúdo a partir do armazenamento em mídia 440 e/ou do servidor de codificação
410. Por exemplo, o servidor de transmissão em fluxo contínuo 420 pode receber conteúdo em tempo real a partir do servidor de codificação 410. Neste caso, de modo a proporcionar um serviço de transmissão em fluxo contínuo ininterrupto, o servidor de transmissão em fluxo contínuo 420 pode armazenar o fluxo de bits por um tempo predeterminado.
[0110] Por exemplo, o dispositivo do usuário 450 pode incluir um telefone celular, um smartphone, um computador laptop, um terminal para difusão digital, um assistente digital pessoal PDA, um reprodutor multimídia portátil PMP, um terminal de navegação, um PC slate, um PC tablet, um ultrabook, um dispositivo vestível (por exemplo, um relógio inteligente (“smart watch”), um óculos inteligente (“smart glass”), óculos de realidade virtual HMD, uma TV digital, um computador de mesa, e uma assinatura digital.
[0111] Cada servidor no sistema de transmissão em fluxo contínuo de conteúdo pode operar como um servidor distribuído, e, neste caso, os dados recebidos a partir de cada servidor podem ser processados de forma distribuída.
[0112] A FIG. 5 mostra um exemplo de um diagrama de blocos de um aparelho para processar um sinal de vídeo de acordo com uma modalidade da revelação. O aparelho de processamento de sinal de vídeo pode corresponder ao aparelho de codificação 100 da FIG. 2 ou ao aparelho de decodificação 200 da FIG.
3.
[0113] O aparelho de processamento de sinal de vídeo 500 de acordo com a modalidade da revelação pode incluir uma memória 520 para armazenar um sinal de vídeo, e um processador 510 para processar o sinal de vídeo ao mesmo tempo em que é combinado com a memória 520.
[0114] O processador 510 de acordo com uma modalidade da revelação pode ser configurado com pelo menos um circuito de processamento para processar o sinal de vídeo, e pode processar o sinal de vídeo executando instruções para codificar ou decodificar o sinal de vídeo. Ou seja, o processador 510 pode codificar o sinal de vídeo original ou decodificar o sinal de vídeo codificado por meio da execução dos métodos de codificação ou decodificação descritos abaixo.
[0115] A FIG. 6 é um exemplo de uma estrutura de divisão de bloco de acordo com uma modalidade da revelação, as FIGS. 6a a 6d ilustram, respectivamente, os exemplos de estruturas de divisão de bloco de acordo com uma árvore quaternária (QT), uma árvore binária (BT), uma árvore ternária (TT) e uma árvore assimétrica (AT).
[0116] Na codificação de vídeo, um bloco pode ser dividido com base em uma árvore quaternária (QT). Além disso, um sub-bloco dividido pela QT pode ser adicionalmente dividido recursivamente usando a QT. Um bloco-folha que não é mais dividido por QT pode ser dividido por pelo menos uma dentre a BT, TT ou AT.
A BT pode ter dois tipos de divisão: BT horizontal (2NxN, 2NxN) e BT vertical (Nx2N, Nx2N). A TT pode ter dois tipos de divisão: TT horizontal (2Nx1/2N, 2NxN, 2Nx1/2N) e TT vertical (1/2Nx2N, Nx2N, 1/2Nx2N). A AT pode ter quatro tipos de divisão: AT horizontal-cima (2Nx1/2N, 2Nx3/2N), AT horizontal-baixo (2Nx3/2N, 2Nx1/2N), AT vertical-esquerda (1/2Nx2N, 3/2Nx2N), e AT vertical-direita (3/2Nx2N, 1/2Nx2N).
Cada BT, TT ou AT pode ser adicionalmente dividida recursivamente usando a BT, TT ou AT.
[0117] A FIG. 6A mostra um exemplo do particionamento em QT. O bloco A pode ser dividido em quatro sub-blocos A0, A1, A2 e A3 pela QT. O sub-bloco A1 pode ser dividido em quatro sub-blocos B0, B1, B2 e B3 novamente pela QT.
[0118] A FIG. 6B mostra um exemplo do particionamento em BT. O bloco B3, que não é mais dividido pela QT, pode ser dividido em BTs verticais (C0, C1) ou BTs horizontais (D0, D1). Como o bloco C0, cada sub-bloco pode ser adicionalmente dividido recursivamente em uma forma de BT horizontal (E0, E1) ou BT vertical (F0, F1).
[0119] A FIG. 6C mostra um exemplo do particionamento em TT. O bloco B3, que não é mais dividido pela QT, pode ser dividido em TT vertical (C0, C1, C2) ou TT horizontal (D0, D1, D2). Como o bloco C1, cada sub-bloco pode ser adicionalmente dividido recursivamente em uma forma de TT horizontal (E0, E1, E2) ou TT vertical (F0, F1, F2).
[0120] A FIG. 6D mostra um exemplo do particionamento em AT. O bloco B3, que não é mais dividido pela QT, pode ser dividido em AT vertical (C0, C1) ou AT horizontal (D0, D1). Como o bloco C1, cada sub-bloco pode ser adicionalmente dividido recursivamente em uma forma de AT horizontal (E0, E1) ou TT vertical (F0, F1).
[0121] Entretanto, os particionamentos em BT, TT e AT podem ser combinados. Por exemplo, um sub-bloco dividido por BT pode ser dividido por TT ou AT. Além disso, o sub-bloco dividido por TT pode ser dividido por BT ou AT. O sub- bloco dividido por AT pode ser dividido por BT ou TT. Por exemplo, após a divisão por BT horizontal, cada sub-bloco pode ser dividido em BT vertical, ou após a divisão por BT vertical, cada sub-bloco pode ser dividido em BT horizontal. Os dois tipos de métodos de divisão possuem ordem de divisão diferente, mas as formas de divisão finais são as mesmas.
[0122] Adicionalmente, quando um bloco é dividido, a ordem na qual os blocos são buscados pode ser definida de forma variada. Em geral, a operação de busca é realizada da esquerda para a direita e de cima para baixo. Buscar um bloco pode significar uma ordem de determinar se deverá adicionalmente dividir cada sub- bloco dividido, ou uma ordem de codificação dos respectivos sub-blocos quando o bloco não é mais dividido, ou uma ordem de busca quando os sub-blocos se referem à informação de outros blocos vizinhos.
[0123] As FIGS. 7 e 8 são, respectivamente, um procedimento de codificação de vídeo / imagem baseado em predição inter e um preditor inter dentro de um aparelho de codificação de acordo com uma modalidade da revelação.
[0124] O aparelho de codificação 100 realiza a predição inter em um bloco atual (S710). O aparelho de codificação 100 pode derivar um modo de predição inter e informação de movimento de um bloco atual, e pode gerar as amostras de predição do bloco atual. Neste caso, a determinação do modo de predição inter, a derivação de informação de movimento e o procedimento de geração de amostra de predição podem ser realizados ao mesmo tempo, e qualquer procedimento pode ser realizado antes de outro procedimento. Por exemplo, o preditor inter 180 do aparelho de codificação 100 pode incluir uma unidade de determinação de modo de predição 181, uma unidade de derivação de informação de movimento 182 e uma unidade de derivação de amostra de predição 183. A unidade de determinação de modo de predição 181 pode determinar um modo de predição para um bloco atual. A unidade de derivação de informação de movimento 182 pode derivar informação de movimento do bloco atual. A unidade de derivação de amostra de predição 183 pode derivar amostras de predição do bloco atual. Por exemplo, o preditor inter 180 do aparelho de codificação 100 pode pesquisar uma dada área (área de busca) de imagens de referência em busca de um bloco similar a um bloco atual através de estimação de movimento, e pode derivar um bloco de referência possuindo uma diferença mínima ou uma diferença de uma dada referência ou menos com respeito ao bloco atual. O preditor inter 180 pode derivar um índice de imagem de referência indicando uma imagem de referência na qual um bloco de referência está localizado com base no bloco de referência, e pode derivar um vetor de movimento com base em uma diferença de localização entre o bloco de referência e o bloco atual. O aparelho de codificação 100 pode determinar um modo aplicado ao bloco atual dentre os vários modos de predição. O aparelho de codificação pode comparar os custos de RD para os vários modos de predição, e pode determinar um modo de predição ideal para o bloco atual.
[0125] Por exemplo, se um modo de salto ou modo de combinação for aplicado ao bloco atual, o aparelho de codificação 100 pode configurar uma lista de candidatos de combinação a ser descrita posteriormente, e pode derivar um bloco de referência possuindo uma diferença mínima ou uma diferença de uma dada referência ou menor com respeito ao bloco atual dentre os blocos de referência indicados pelos candidatos de combinação incluídos em uma lista de candidatos de combinação. Neste caso, um candidato de combinação associado ao bloco de referência derivado pode ser selecionado. A informação de índice de combinação indicando o candidato de combinação selecionado pode ser gerada e sinalizada ao aparelho de decodificação 200. A informação de movimento do bloco atual pode ser derivada usando informação de movimento do candidato de combinação selecionado.
[0126] Para outro exemplo, se um modo (A)MVP for aplicado ao bloco atual, o aparelho de codificação pode configurar uma lista de candidatos (A)MVP a ser descrita posteriormente, e pode usar um vetor de movimento de um candidato de preditor de vetor de movimento (mvp), selecionado dentre os candidatos mvp incluídos na lista de candidatos (A)MVP, como o mvp do bloco atual. Neste caso, por exemplo, um vetor de movimento indicando o bloco de referência derivado pela estimação de movimento pode ser usado como o vetor de movimento do bloco atual.
Um candidato mvp incluindo um vetor de movimento possuindo a menor diferença com respeito ao vetor de movimento do bloco atual, dentre os candidatos mvp, pode se tornar o candidato mvp selecionado. Uma diferença de vetor de movimento (MVD), isto é, uma diferença obtida subtraindo-se o mvp do vetor de movimento do bloco atual, pode ser derivada. Neste caso, a informação sobre o MVD pode ser sinalizada ao aparelho de decodificação 200. Adicionalmente, se um modo (A)MVP for aplicado, um valor do índice de imagem de referência pode ser configurado como informação de índice de imagem de referência e pode ser sinalizado separadamente ao aparelho de decodificação.
[0127] O aparelho de codificação 100 pode derivar amostras residuais com base nas amostras de predição (S720). O aparelho de codificação 100 pode derivar as amostras residuais através de uma comparação entre as amostras originais do bloco atual e as amostras de predição.
[0128] O aparelho de codificação 100 codifica informação de imagem incluindo informação de predição e informação residual (S730). O aparelho de codificação pode emitir a informação de imagem codificada em uma forma de fluxo de bits. A informação de predição pode incluir informação a respeito da informação de modo de predição (por exemplo, sinalizador de salto, sinalizador de combinação ou índice de modo) e informação de movimento como a informação relacionada ao procedimento de predição. A informação relacionada à informação de movimento pode incluir informação de seleção de candidato (por exemplo, índice de combinação, sinalizador mvp ou índice mvp), ou seja, informação para derivar um vetor de movimento. Adicionalmente, a informação relacionada à informação de movimento pode incluir informação sobre a MVD e/ou a informação de índice de imagem de referência. Adicionalmente, a informação relacionada à informação de movimento pode incluir informação indicando se a predição L0, a predição L1 ou a bi-predição é aplicada. A informação residual é a informação sobre as amostras residuais. A informação residual pode incluir informação sobre os coeficientes de transformada quantizados para as amostras residuais.
[0129] O fluxo de bits de saída pode ser armazenado em um meio de armazenamento (digital) e transmitido ao aparelho de decodificação ou pode ser transmitido ao aparelho de decodificação através de uma rede.
[0130] Enquanto isso, como descrito acima, o aparelho de codificação pode gerar uma imagem reconstruída (incluindo amostras reconstruídas e bloco reconstruído) com base nas amostras de referência e nas amostras residuais. Isto serve para derivar, no aparelho de codificação 100, os mesmos resultados de predição que os realizados no aparelho de decodificação 200. Por conseguinte, a eficiência de codificação pode ser aprimorada. Consequentemente, o aparelho de codificação 100 pode armazenar a imagem reconstruída (ou amostras reconstruídas e bloco reconstruído) na memória, e pode usar a imagem reconstruída como uma imagem de referência para predição inter. Como descrito acima, um procedimento de filtragem em laço pode ser adicionalmente aplicado à imagem reconstruída.
[0131] As FIGS. 9 e 10 são, respectivamente, um procedimento de decodificação de vídeo / imagem baseado em predição e um preditor inter dentro de um aparelho de decodificação de acordo com uma modalidade da revelação.
[0132] O aparelho de decodificação 200 pode realizar uma operação correspondendo a uma operação realizada no aparelho de codificação 100. O aparelho de decodificação 200 pode realizar a predição em um bloco atual baseado na informação de predição recebida, e pode derivar amostras de predição.
[0133] Especificamente, o aparelho de decodificação 200 pode determinar um modo de predição para o bloco atual com base na informação de predição recebida
(S910). O aparelho de decodificação 200 pode determinar qual modo de predição inter é aplicado ao bloco atual com base na informação de modo de predição dentro da informação de predição.
[0134] Por exemplo, o aparelho de decodificação 200 pode determinar se o modo de combinação ou o modo (A)MVP é aplicado ao bloco atual com base no sinalizador de combinação. Como alternativa, o aparelho de decodificação 200 pode selecionar um dentre vários candidatos de modo de predição inter com base no índice de modo. Os candidatos de modo de predição inter podem incluir um modo de salto, um modo de combinação e/ou um modo (A)MVP ou podem incluir vários modos de predição inter a serem descritos posteriormente.
[0135] O aparelho de decodificação 200 deriva informação de movimento do bloco atual com base no modo de predição inter determinado (S920). Por exemplo, se um modo de salto ou modo de combinação for aplicado ao bloco atual, o aparelho de decodificação 200 pode configurar uma lista de candidatos de combinação, a ser descrita posteriormente, e selecionar um dos candidatos de combinação incluídos na lista de candidatos de combinação. A seleção do candidato de combinação pode ser realizada com base no índice de combinação. A informação de movimento do bloco atual pode ser derivada a partir da informação de movimento do candidato de combinação selecionado. A informação de movimento do candidato de combinação selecionado pode ser usada como a informação de movimento do bloco atual.
[0136] Para outro exemplo, se um modo (A)MVP for aplicado ao bloco atual, o aparelho de decodificação 200 pode configurar uma lista de candidatos (A)MVP a ser descrita posteriormente, e pode usar um vetor de movimento de um candidato de preditor de vetor de movimento (mvp), selecionado dentre os candidatos mvp incluídos na lista de candidatos (A)MVP, como o mvp do bloco atual. A seleção pode ser realizada com base na informação de seleção (sinalizador mvp ou índice mvp).
Neste caso, o aparelho de decodificação 200 pode derivar a MVD do bloco atual com base na informação sobre a MVD. O aparelho de decodificação pode derivar o vetor de movimento do bloco atual com base no mvp do bloco atual e na MVD.
Adicionalmente, o aparelho de decodificação pode derivar o índice de imagem de referência do bloco atual com base na informação de índice de imagem de referência. Uma imagem indicada pelo índice de imagem de referência dentro de um lista de imagens de referência com respeito ao bloco atual pode ser derivada como uma imagem de referência referenciada para a predição inter do bloco atual.
[0137] Entretanto, como será descrito posteriormente, a informação de movimento do bloco atual pode ser derivada sem uma configuração de lista de candidatos. Neste caso, a informação de movimento do bloco atual pode ser derivada de acordo com um procedimento revelado em um modo de predição, a ser descrito posteriormente. Neste caso, uma configuração de lista de candidatos, tal como a descrita acima, pode ser omitida.
[0138] O aparelho de decodificação 200 pode gerar amostras de predição para o bloco atual com base na informação de movimento do bloco atual (S930).
Neste caso, o aparelho de decodificação 200 pode derivar uma imagem de referência com base no índice de imagem de referência do bloco atual, e pode derivar as amostras de predição do bloco atual indicado na imagem de referência pelo vetor de movimento do bloco atual. Neste caso, como será descrito posteriormente, um procedimento de filtragem de amostra de predição pode ser adicionalmente realizado em algumas ou todas as amostras de predição do bloco atual de acordo com as circunstâncias.
[0139] Por exemplo, o preditor inter 260 do aparelho de decodificação 200 pode incluir uma unidade de determinação de modo de predição 261, uma unidade de derivação de informação de movimento 262 e uma unidade de derivação de amostra de predição 263. O aparelho de decodificação 200 pode determinar um modo de predição do bloco atual com base na informação de modo de predição recebida a partir da unidade de determinação de modo de predição 261, pode derivar informação de movimento (vetor de movimento e/ou o índice de imagem de referência) do bloco atual com base na informação relacionada à informação de movimento recebida a partir da unidade de derivação de informação de movimento
262. A unidade de derivação de amostra de predição 263 pode derivar as amostras de predição do bloco atual.
[0140] O aparelho de decodificação 200 gera amostras residuais para o bloco atual com base na informação residual recebida (S940). O aparelho de decodificação 200 pode gerar amostras reconstruídas para o bloco atual com base nas amostras de predição e nas amostras residuais e pode gerar uma imagem reconstruída com base nas amostras reconstruídas (S950). Em seguida, como descrito acima, um procedimento de filtragem em laço pode ser adicionalmente aplicado à imagem reconstruída.
[0141] Como descrito acima, o procedimento de predição inter pode incluir uma etapa de determinação de modo de predição inter, uma etapa de derivação de informação de movimento de acordo com um modo de predição determinado, e uma etapa de execução de predição (geração de amostra de predição) baseada na informação de movimento derivada.
Determinação do modo de predição inter
[0142] Vários modos de predição inter podem ser usados para a predição de um bloco atual dentro de uma imagem. Por exemplo, vários modos, tal como um modo de combinação, um modo de salto, um modo MVP, e um modo afim, podem ser utilizados. Um modo de refinamento de vetor de movimento lateral do decodificador (DMVR), um modo de resolução de vetor de movimento adaptativa (AMVR), etc. podem ser adicionalmente utilizados como modos adicionais. O modo afim pode ser chamado de modo de predição de movimento afim. O modo MVP pode ser chamado de modo de predição de vetor de movimento avançado (AMVP).
[0143] A informação de modo de predição indicando um modo de predição inter de um bloco atual pode ser sinalizada a partir de um aparelho de codificação para um aparelho de decodificação. A informação de modo de predição pode ser incluída em um fluxo de bits e recebida pelo aparelho de decodificação. A informação de modo de predição pode incluir informação de índice indicando um de múltiplos modos candidatos. Como alternativa, um modo de predição inter pode ser indicado através da sinalização hierárquica da informação de sinalizador. Neste caso, a informação de modo de predição pode incluir um ou mais sinalizadores. Por exemplo, um sinalizador pode ser adicionalmente sinalizado de modo a indicar se um modo de salto é aplicado pela sinalização de um sinalizador de salto, para indicar se um modo de combinação é aplicado pela sinalização de um sinalizador de combinação se um modo de salto não for aplicado, e para indicar que um modo MVP é aplicado se um modo de combinação não é for aplicado ou para uma identificação adicional. O modo afim pode ser sinalizado como um modo independente ou pode ser sinalizado como um modo dependente de um modo de combinação ou modo MVP. Por exemplo, o modo afim pode ser configurado como um dentre uma lista de candidatos de combinação ou lista de candidatos MVP, como será descrito posteriormente.
Derivação da informação de movimento de acordo com o modo de predição inter
[0144] O aparelho de codificação 100 ou o aparelho de decodificação 200 pode realizar a predição inter usando informação de movimento de um bloco atual.
O aparelho de codificação 100 pode derivar informação de movimento ideal para um bloco atual de acordo com um procedimento de estimação de movimento. Por exemplo, o aparelho de codificação 100 pode buscar um bloco de referência possuindo uma correlação similar usando o bloco original dentro da imagem original para um bloco atual em uma unidade de pixel de fração dentro de um intervalo de busca determinado dentro de uma imagem de referência. Consequentemente, o aparelho de codificação pode derivar informação de movimento. A similaridade de um bloco pode ser derivada com base em uma diferença entre os valores de amostra baseados em fase. Por exemplo, a similaridade de um bloco pode ser calculada com base em uma SAD (Soma da Diferença Absoluta) entre um bloco atual (ou o modelo do bloco atual) e um bloco de referência (ou o modelo do bloco de referência). Neste caso, a informação de movimento pode ser derivada com base em um bloco de referência possuindo a menor SAD dentro de uma área de busca. A informação de movimento derivada pode ser sinalizada ao aparelho de decodificação usando vários métodos com base em um modo de predição inter.
Modo de combinação e modo de salto
[0145] Se um modo de combinação for aplicado, a informação de movimento de um bloco de predição atual não é transmitida diretamente, e a informação de movimento do bloco de predição atual é derivada usando informação de movimento de um bloco de predição vizinho. Consequentemente, o aparelho de codificação 100 pode indicar a informação de movimento do bloco de predição atual transmitindo informação de sinalizador para notificar que um modo de combinação foi usado e um índice de combinação para notificar qual bloco de predição vizinho foi usado.
[0146] O aparelho de codificação 100 deverá buscar um bloco candidato de combinação usado para derivar a informação de movimento de um bloco de predição atual de modo a realizar um modo de combinação. Por exemplo, um número máximo de até 5 blocos candidatos de combinação pode ser usado, mas a revelação não se limita a isto. Adicionalmente, um número máximo de blocos candidatos de combinação pode ser transmitido em um cabeçalho de fatia, e a revelação não se limita a isto. Após buscar os blocos candidatos de combinação, o aparelho de codificação 100 pode gerar uma lista de candidatos de combinação, e pode selecionar um bloco candidato de combinação possuindo o menor custo,
dentre os blocos candidatos de combinação, como o bloco candidato de combinação final.
[0147] Uma modalidade da revelação oferece várias modalidades de blocos candidatos de combinação construindo uma lista de candidatos de combinação.
[0148] A lista de candidatos de combinação pode usar 5 blocos candidatos de combinação, por exemplo. Por exemplo, 4 candidatos de combinação espacial e 1 candidato de combinação temporal podem ser usados.
[0149] A FIG. 11 ilustra um exemplo de construção de candidatos de combinação espacial para um bloco atual.
[0150] Referindo-se à FIG. 11, para predição de um bloco atual, pelo menos um de um bloco vizinho esquerdo A1, um bloco vizinho inferior-esquerdo A2, um bloco vizinho superior-direito B0, um bloco vizinho superior B1 e um bloco vizinho superior-esquerdo B2 podem ser usados. A lista de candidatos de combinação para o bloco atual pode ser configurada com base no procedimento apresentado na FIG.
12.
[0151] A FIG. 12 é um fluxograma ilustrando um método de configuração de uma lista de candidatos de combinação de acordo com uma modalidade à qual a revelação é aplicada.
[0152] Um aparelho de codificação (o aparelho de codificação 100 ou o aparelho de decodificação 200) busca blocos vizinhos espaciais de um bloco atual e insere candidatos de combinação espacial derivados em uma lista de candidatos de combinação (S1210). Por exemplo, os blocos vizinhos espaciais podem incluir o bloco vizinho do canto inferior-esquerdo, o bloco vizinho esquerdo, o bloco vizinho do canto superior-direito, o bloco vizinho superior e o bloco vizinho do canto superior-esquerdo do bloco atual. Neste caso, isto é um exemplo, e blocos vizinhos adicionais, tal como um bloco vizinho direito, um bloco vizinho inferior, e um bloco vizinho inferior-direito, além dos blocos vizinhos espaciais, podem ser adicionalmente usados como os blocos vizinhos espaciais. O aparelho de codificação pode detectar blocos disponíveis buscando os blocos vizinhos espaciais com base na prioridade, e pode derivar a informação de movimento dos blocos detectados como os candidatos de combinação espacial. Por exemplo, o aparelho de codificação 100 ou o aparelho de decodificação 200 pode buscar os 5 blocos ilustrados na FIG. 11 na sequência de A1, B1, B0, A0 e B2, e pode configurar uma lista de candidatos de combinação pela indexação sequencial dos candidatos disponíveis.
[0153] O aparelho de codificação busca um bloco vizinho temporal do bloco atual e insere um candidato de combinação temporal derivado na lista de candidatos de combinação (S1220). O bloco vizinho temporal pode estar localizado em uma imagem de referência, ou seja, uma imagem diferente de uma imagem atual na qual o bloco atual está localizado. Uma imagem de referência na qual o bloco vizinho espacial está localizado pode ser chamada de imagem co-localizada ou imagem-col.
O bloco vizinho temporal pode ser buscado na sequência do bloco vizinho do canto inferior-direito e do bloco central inferior-direito de um bloco co-localizado para o bloco atual na imagem-col. Entretanto, se a compressão de dados de movimento for aplicada, a informação de movimento específica pode ser armazenada na imagem- col como informação de movimento representativa para cada dada unidade de armazenamento. Neste caso, não é necessário armazenar informação de movimento para todos os blocos dentro da dada unidade de armazenamento, e, dessa forma, pode-se obter um efeito de compressão de dados de movimento.
Neste caso, a dada unidade de armazenamento pode ser predeterminada como uma unidade de amostra 16x16, ou uma unidade de amostra 8x8, por exemplo, ou a informação de tamanho para a dada unidade de armazenamento pode ser sinalizada a partir do aparelho de codificação 100 para o aparelho de decodificação 200. Se a compressão de dados de movimento for aplicada, a informação de movimento do bloco vizinho temporal pode ser substituída pela informação de movimento representativa da dada unidade de armazenamento na qual o bloco vizinho temporal está localizado. Ou seja, neste caso, em um aspecto de implementação, após um desvio aritmético à direita ser realizado por um dado valor baseado nas coordenadas (posição da amostra superior-esquerda) do bloco vizinho temporal que não um bloco de predição no qual as coordenadas do bloco vizinho temporal estão localizadas, o candidato de combinação temporal pode ser derivado com base na informação de movimento de um bloco de predição que cobre a localização desviada à esquerda aritmética. Por exemplo, se a dada unidade de armazenamento for uma unidade de amostra 2nx2n, supondo que as coordenadas do bloco vizinho temporal sejam (xTnb, yTnb), a informação de movimento de um bloco de predição localizado em ((xTnb>>n)<<n), (yTnb>>n)<<n)), ou seja, uma localização modificada, pode ser usada para o candidato de combinação temporal. Especificamente, por exemplo, se a dada unidade de armazenamento for uma unidade de amostra 16x16, supondo que as coordenadas do bloco vizinho temporal sejam (xTnb, yTnb), a informação de movimento de um bloco de predição localizado em ((xTnb>>4)<<4), (yTnb>>4)<<4)), ou seja, uma localização modificada, pode ser usada para o candidato de combinação temporal. Como alternativa, por exemplo, se a dada unidade de armazenamento for uma unidade de amostra 8x8, supondo que as coordenadas do bloco vizinho temporal sejam (xTnb, yTnb), a informação de movimento de um bloco de predição localizado em ((xTnb>>3)<<3), (yTnb>>3)<<3)), ou seja, uma localização modificada, pode ser usada para o candidato de combinação temporal.
[0154] O aparelho de codificação pode verificar se o número atual de candidatos de combinação é menor do que um número máximo de candidatos de combinação (S1230). O número máximo de candidatos de combinação pode ser predefinido ou pode ser sinalizado a partir do aparelho de codificação 100 para o aparelho de decodificação 200. Por exemplo, o aparelho de codificação 100 pode gerar informação sobre o número máximo de candidatos de combinação, pode codificar a informação, e pode transmitir a informação ao aparelho de decodificação 200 em uma forma de fluxo de bits. Se o número máximo de candidatos de combinação for preenchido, um processo de adição de candidato pode não ser realizado.
[0155] Se, como resultado da verificação, o número atual de candidatos de combinação for menor do que o número máximo de candidatos de combinação, o aparelho de codificação insere um candidato de combinação adicionado à lista de candidatos de combinação (S1240). O candidato de combinação adicionado pode incluir uma ATMVP (Predição de Vetor de Movimento Temporal Adaptativo), um candidato de combinação bi-preditivo combinado (se o tipo de fatia de uma fatia atual for um tipo B) e/ou um candidato de combinação de vetor zero, por exemplo.
[0156] A FIG. 13 é um fluxograma ilustrando um método de configuração de uma lista de candidatos de predição (lista de candidatos MVP) de acordo com uma modalidade à qual a revelação é aplicada.
[0157] Se um modo de predição de vetor de movimento (MVP) for aplicado, uma lista de candidatos de preditor de vetor de movimento (mvp) pode ser gerada com base em um vetor de movimento de um bloco vizinho espacial reconstruído (por exemplo, o bloco vizinho descrito na FIG. 11) e/ou em um vetor de movimento correspondendo a um bloco vizinho temporal (ou bloco Col). Isto é, o vetor de movimento do bloco espacial vizinho reconstruído e/ou o vetor de movimento do bloco vizinho temporal pode ser usado como um candidato de vetor de movimento.
A informação sobre a predição pode incluir informação de seleção (por exemplo, sinalizador MVP ou índice MVP) indicando um candidato de preditor de vetor de movimento ideal selecionado dentre os candidatos de preditor de vetor de movimento incluídos na lista. Neste caso, o preditor pode selecionar o preditor de vetor de movimento de um bloco atual, dentre os candidatos de preditor de vetor de movimento incluídos em uma lista de candidatos de vetor de movimento, usando a informação de seleção. O preditor do aparelho de codificação 100 pode calcular uma diferença de vetor de movimento (MVD) entre o vetor de movimento do bloco atual e o preditor de vetor de movimento, codificar a MVD e emitir a MVD codificada em uma forma de fluxo de bits. Isto é, a MVD pode ser calculada como um valor obtido subtraindo-se o preditor de vetor de movimento a partir do vetor de movimento do bloco atual. Neste caso, o preditor do aparelho de decodificação pode obter uma diferença de vetor de movimento incluída na informação sobre a predição, e pode derivar o vetor de movimento do bloco atual através da adição da diferença de vetor de movimento e do preditor de vetor de movimento. O preditor do aparelho de decodificação pode obter ou derivar um índice de imagem de referência indicando uma imagem de referência a partir da informação sobre a predição. Por exemplo, uma lista de candidatos de preditor de vetor de movimento pode ser configurada como ilustrado na FIG. 13.
[0158] Com referência à FIG. 13, o aparelho de codificação busca por um bloco candidato espacial para predição de vetor de movimento e o insere em uma lista de candidatos de predição (S1310). Por exemplo, o aparelho de codificação pode buscar por blocos vizinhos de acordo com uma ordem de busca predeterminada, e adicionar informação do bloco vizinho satisfazendo à condição para o bloco candidato espacial à lista de candidatos de predição (lista de candidatos MVP).
[0159] Após construir a lista de blocos candidatos espaciais, o aparelho de codificação compara o número de candidatos espaciais incluídos na lista de candidatos de predição com um número de referência predefinido (por exemplo, 2) (S1320). Se o número dos candidatos espaciais incluídos na lista de candidatos de predição for maior do que ou igual ao número de referência (por exemplo, 2), o aparelho de codificação pode terminar a construção da lista de candidatos de predição.
[0160] Porém, se o número de listas de candidatos espaciais incluído na lista de candidatos de predição for menor do que o número de referência (por exemplo, 2), o aparelho de codificação busca por um bloco candidato temporal e o insere na lista de candidatos de predição (S1330), e quando o bloco candidato temporal estiver indisponível, adiciona um vetor de movimento zero à lista de candidatos de predição (S1340).
Geração da amostra de predição
[0161] Um bloco predito para um bloco atual pode ser derivado com base na informação de movimento derivada de acordo com um modo de predição. O bloco predito pode incluir amostras de predição (arranjo de amostras de predição0 do bloco atual. Quando o vetor de movimento do bloco atual indica uma unidade de amostra fracional, um procedimento de interpolação pode ser realizado, e através desta predição, amostras do bloco atual podem ser derivadas com base nas amostras de referência em uma unidade de amostra fracional em uma imagem de referência. Quando a predição inter afim é aplicada ao bloco atual, as amostras de predição podem ser geradas com base em um vetor de movimento em uma unidade de amostra/sub-bloco. Quando a predição bidirecional é aplicada, as amostras de predição finais podem ser derivadas através de somas ponderadas (de acordo com a fase) das amostras de predição derivadas com base na primeira predição de direção (por exemplo, predição L0) e das amostras de predição derivadas com base na segunda predição de direção. As amostras de reconstrução e as imagens de reconstrução podem ser geradas com base nas amostras de predição derivadas, e, como descrito acima, um procedimento, tal como filtragem em laço, pode ser realizado logo após.
Predição de movimento afim
[0162] A FIG. 14 ilustra um exemplo de modelos de movimento de acordo com uma modalidade da revelação.
[0163] Em uma tecnologia de compressão de imagem convencional (por exemplo, codificação de vídeo de alta eficiência (HEVC)), um vetor de movimento é usado para representar um movimento de um bloco de codificação. Embora um movimento ideal de uma unidade de bloco possa ser representado usando um método usando um vetor de movimento para cada bloco, ele pode não ser um movimento ideal real de cada elemento de imagem. Por conseguinte, se um vetor de movimento ideal for determinado em uma unidade de elemento de imagem, a eficiência de codificação pode ser aumentada. Por conseguinte, uma modalidade da revelação descreve um método de predição de movimento para codificar ou decodificar um sinal de vídeo usando um modelo de múltiplos movimentos. Mais especificamente, um vetor de movimento pode ser representado em cada unidade de elemento de imagem de um bloco ou uma unidade de sub-bloco usando o vetor de movimento em 2 a 4 pontos de controle. Um esquema de predição usando o vetor de movimento de uma pluralidade de pontos de controle pode ser designado como predição de movimento afim ou predição afim.
[0164] Um modelo de movimento afim de acordo com uma modalidade da revelação pode representar 4 modelos de movimento, tais como os ilustrados na FIG. 14. Um modelo de movimento afim para representar três movimentos (translação, escala e rotação) dentre os movimentos que podem ser representados pelo modelo de movimento afim é chamado de modelo de movimento afim de similaridade (ou simplificado). Ao descrever as modalidades da revelação, o modelo de movimento afim de similaridade (ou simplificado) é basicamente descrito por conveniência de descrição, mas a revelação não se limita ao mesmo.
[0165] A FIG. 15 ilustra um exemplo de um vetor de movimento de ponto de controle para uma predição de movimento afim de acordo com uma modalidade da revelação.
[0166] Como mostra a FIG. 15, na predição de movimento afim, o vetor de movimento de uma localização de elemento de imagem (ou sub-bloco) incluída em um bloco pode ser determinado usando um par de vetores de movimento de dois pontos de controle (CPMV) v_0 e v_1. Neste caso, um conjunto dos vetores de movimento pode ser designado como um campo de vetor de movimento afim (MVF).
Neste caso, o campo de vetor de movimento afim pode ser determinado usando a Equação 1.
[Equação 1]
[0167] Na Equação 1, v_0(v_0={v_0x,v_0y}) indica um vetor de movimento CPMV0 no primeiro ponto de controle da localização superior-esquerda de um bloco atual 1500. v_1(v_1={v_1x,v_1y}) indica um vetor de movimento CPMV1 no segundo ponto de controle da localização superior-direita do bloco atual 1500.
Adicionalmente, w indica a largura do bloco atual 1500. v(v={v_x,v_y}) indica um vetor de movimento em uma localização {x,y}. Um vetor de movimento de uma unidade de sub-bloco (ou elemento de imagem) pode ser derivado usando a Equação 1. Em uma modalidade, a precisão do vetor de movimento pode ser arredondada como uma precisão de 1/16.
[0168] A FIG. 16 ilustra um exemplo de um vetor de movimento para cada sub-bloco de um bloco ao qual foi aplicada uma predição de movimento afim de acordo com uma modalidade da revelação.
[0169] Referindo-se à FIG. 16, em um processo de codificação ou decodificação, um campo de vetor de movimento afim (MVF) pode ser determinado em uma unidade de elemento de imagem ou unidade de bloco. Ou seja, na predição de movimento afim, o vetor de movimento de um bloco atual pode ser derivado em uma unidade de elemento de imagem ou em uma unidade de sub-bloco.
[0170] Se um campo de vetor de movimento afim for determinado em uma unidade de elemento de imagem, um vetor de movimento pode ser obtido com base em cada valor de elemento de imagem. No caso de uma unidade de bloco, o vetor de movimento de um bloco correspondente pode ser obtido com base em um valor de elemento de imagem central do bloco. Neste documento, assume-se que um campo de vetor de movimento afim (MVD) é determinado em uma unidade de bloco 4*4 como na FIG. 16. Neste caso, isto serve para conveniência de descrição, e uma modalidade da revelação não se limita a isto. A FIG. 16 ilustra um exemplo de um caso em que um bloco de codificação é configurado com 16*16 amostras e um campo de vetor de movimento afim (MVD) é determinado em uma unidade de bloco de um tamanho 4*4.
[0171] A predição de movimento afim pode incluir um modo de combinação afim (ou AF_MERGE) e um modo inter afim (ou AF_INTER). O modo AF_INTER pode incluir um modo AF_4_INTER usando um modelo de movimento baseado em 4 parâmetros e um modo AF_6_INTER usando um modelo de movimento baseado em 6 parâmetros. Modo de intercalação afim
[0172] AF_MERGE determina um vetor de movimento de ponto de controle (CPMV) baseado no modelo de movimento afim de um bloco vizinho codificado como predição de movimento afim. Um bloco vizinho codificado no modo afim em uma sequência de busca pode ser usado para AF_MERGE. Quando um ou mais blocos vizinhos são codificados como predição de movimento afim, um bloco atual pode ser codificado como AF_MERGE.
[0173] Isto é, se um modo de combinação afim for aplicado, os CPMVs de um bloco atual podem ser derivados usando os CPMVs de um bloco vizinho. Neste caso, os CPMVs do bloco vizinho podem ser usados como os CPMVs do bloco atual sem nenhuma alteração, e os CPMVs do bloco vizinho podem ser modificados com base no tamanho do bloco vizinho e no tamanho do bloco atual e podem ser usados como os CPMVs do bloco atual.
[0174] A FIG. 17 ilustra um exemplo de blocos vizinhos usados para uma predição de movimento afim em um modo de combinação afim de acordo com uma modalidade da revelação.
[0175] No modo de combinação afim (AF_MERGE), o codificador pode realizar a codificação como no seguinte processo.
[0176] Etapa-1: Varrer os blocos vizinhos A a E 1710, 1720, 1730, 1740 e 1750 de um bloco de codificação atual 1700 na sequência doa alfabeto, e determinar um bloco, primeiro codificado de acordo com um modo de predição afim baseado na sequência de varredura, como o bloco candidato de combinação afim (AF_MERGE).
[0177] Etapa-2: Determinar um modelo de movimento afim usando o vetor de movimento de ponto de controle (CPMV) do bloco candidato determinado.
[0178] Etapa-3: Determinar o vetor de movimento de ponto de controle (CPMV) do bloco atual 1700 com base no modelo de movimento afim do bloco candidato e determinar o MVF do bloco atual 1700.
[0179] A FIG. 18 ilustra um exemplo de um bloco no qual uma predição de movimento afim é realizada usando blocos vizinhos aos quais foi aplicada uma predição de movimento afim de acordo com uma modalidade da revelação.
[0180] Por exemplo, como na FIG. 18, se um bloco A 1820 tiver sido codificado de acordo com um modo afim, após o bloco A 1820 ser determinado como um bloco candidato, um modelo de movimento afim pode ser derivado usando os vetores de movimento de ponto de controle (CPMVs) (por exemplo, v2 e v3) do bloco A 1820, e os vetores de movimento de ponto de controle (CPMVs) v0 e v1 do bloco atual 1800 podem ser determinados. O campo de vetor de movimento afim (MVF) do bloco atual 1800 pode ser determinado com base nos vetores de movimento de ponto de controle (CPMVs) do bloco atual 1800, e a codificação pode ser realizada.
[0181] A FIG. 19 é um diagrama para descrever um método para gerar uma lista de candidatos de combinação usando um bloco de codificação afim vizinho de acordo com uma modalidade da revelação
[0182] Referindo-se à FIG. 19, se um par de CPMV for determinado usando um candidato de combinação afim, candidatos, tais como os ilustrados na FIG. 19, podem ser usados. Na FIG. 19, assume-se que a sequência de varredura de uma lista de candidatos tenha sido definida como A, B, C, D e E. Neste caso, a revelação não se limitada ao mesmo, e várias sequências podem ser predefinidas.
[0183] Em uma modalidade, se o número de candidatos (daqui em diante, chamados de candidatos afins) codificados de acordo com um modo afim (ou uma predição afim) disponível nos blocos vizinhos (isto é, A, B, C, D, E) for 0, o modo de combinação afim de um bloco atual pode ser saltado. Se o número de candidatos afins disponíveis for um (por exemplo, A), o modelo de movimento do candidato correspondente pode ser usado para derivar os vetores de movimento de ponto de controle (CPMV_0 e CPMV_1) de um bloco atual. Neste caso, um índice indicando o candidato correspondente pode não ser necessário (ou codificado). Se o número de candidatos afins disponíveis for dois ou mais, dois candidatos na sequência de varredura podem ser configurados como uma lista de candidatos para AF_MERGE.
Neste caso, a informação de seleção de candidato, tal como um índice indicando um candidato selecionado dentro da lista de candidatos, pode ser sinalizada. A informação de seleção pode ser um sinalizador ou informação de índice, e pode ser chamada de AF_MERGE_flag ou AF_merge_idx.
[0184] Em uma modalidade da revelação, uma compensação de movimento para um bloco atual pode ser realizada com base no tamanho de um sub-bloco.
Neste caso, o tamanho de sub-bloco de um bloco afim (isto é, bloco atual) é derivado. Se cada uma da largura e altura de um sub-bloco for maior do que 4 amostras de luma, um vetor de movimento para cada sub-bloco pode ser derivado, e uma compensação de movimento baseada em DCT-IF (1/16 pel para luma e 1/32 para croma) pode ser realizada no sub-bloco. Caso contrário, uma compensação de movimento baseada em filtro de interpolação bilinear aperfeiçoado pode ser realizada em todos os blocos afins.
[0185] Em uma modalidade da revelação, se um sinalizador de combinação/salto for verdadeiro e tanto a largura quanto a altura de uma CU forem maiores do que ou igual a 8, em um nível de CU, um sinalizador afim é sinalizado através de um fluxo de bits indicando se um modo de combinação fim é usado.
Quando uma CU é codificada como AF_MERGE, um índice de candidato de intercalação possuindo um valor máximo de “5” é sinalizado para designar que um candidato de informação de movimento é usado para a CU em uma lista de candidatos de combinação afim.
[0186] As FIGS. 20 e 21 são diagramas para descrever um método para construir uma lista de candidatos de combinação afins usando um bloco vizinho codificado por uma predição afim de acordo com uma modalidade da revelação.
[0187] Referindo-se à FIG. 20, uma lista de candidatos de combinação afim é configurada pelas seguintes etapas.
1) Inserção de candidato afim baseado em modelo
[0188] Um candidato afim baseado em modelo significa que um candidato é derivado a partir de um bloco reconstruído vizinho válido codificado de acordo com um modo afim. Como ilustrado na FIG. 20, uma sequência de varredura para um bloco candidato a partir da esquerda A, da parte superior B, da parte superior-direita C e da parte inferior-esquerda D para a parte superior-esquerda E.
[0189] Se o bloco inferior-esquerdo vizinho A for codificado em um modo afim de 6 parâmetros, os vetores de movimento (v_4, v_5, v_6) do canto superior- esquerdo, do canto superior-direito, e do canto inferior-esquerdo de uma CU incluindo o bloco A são obtidos. Os vetores de movimento (v_0, v_1, v_2) do canto superior-esquerdo do bloco atual são calculados com base nos vetores de movimento (v_4, v_5, e v_6) de acordo com o modelo afim de 6 parâmetros.
[0190] Se o bloco inferior-esquerdo vizinho A for codificado em um modo afim de 4 parâmetros, os vetores de movimento (v_4, v_5) do canto superior-esquerdo, e do canto superior-direito da CU incluindo o bloco A são obtidos. Os vetores de movimento (v_0, v_1) do canto superior-esquerdo no bloco atual são calculados com base nos vetores de movimento (v_4, v_5) de acordo com o modelo afim de 4 parâmetros.
2) Inserção de candidatos afins baseados em ponto de controle
[0191] Referindo-se à FIG. 20, um candidato baseado em ponto de controle significa que um candidato é configurado combinando-se a informação de movimento vizinho dos pontos de controle.
[0192] As informações de movimento dos pontos de controle são primeiro derivadas a partir dos blocos vizinhos espaciais designados e o bloco vizinho temporal ilustrado na FIG. 20 CP_k (k=1, 2, 3, 4) indica um k-ésimo ponto de controle. Adicionalmente, A, B, C, D, E, F e G são localizações espaciais para predizer CP_k (k=1, 2, 3), e H é uma localização temporal para predizer CP4.
[0193] As coordenadas de CP_1, CP_2, CP_3 e CP_4 são (0, 0), (W, 0), (H, 0) e (W, H), respectivamente. Neste caso, W e H são a largura e a altura do bloco atual.
[0194] A informação de movimento de cada ponto de controle é obtida com base na seguinte prioridade.
[0195] Com respeito a CP_1, a prioridade de verificação é A→B→C, e A é usado se A estiver disponível. Se não e se B estiver disponível, B é usado. Se tanto A quanto B não estiverem disponíveis, C é usado. Se todos os três candidatos não estiverem disponíveis, a informação de movimento de CP_1 não pode ser obtida.
[0196] Com respeito a CP_2, a prioridade de verificação é E→D.
[0197] Com respeito a CP_3, a prioridade de verificação é G→F.
[0198] Com respeito a CP_4, H é usado.
[0199] Em segundo lugar, combinações de pontos de controle são usadas para configurar um modelo de movimento.
[0200] Os vetores de movimento de dois pontos de controle são necessários para calcular parâmetros de transformada em um modelo afim de 4 parâmetros. Os dois pontos de controle podem ser selecionados a partir de uma das 6 combinações seguintes {CP_1, CP_4}, {CP_2, CP_3}, {CP_1, CP_2}, {CP_2, CP_4}, {CP_1, CP_3} e {CP_3, CP_4}. Por exemplo, usar os pontos de controle CP_1 e CP2 na construção do modelo de movimento afim de 4 parâmetros é marcado como “afim (CP_1, CP_2)".
[0201] Os vetores de movimento de três pontos de controle são necessários para calcular parâmetros de transformada em um modelo afim de 6 parâmetros. Os três pontos de controle podem ser selecionados a partir de uma das 4 combinações seguintes {CP_1, CP_2, CP_4}, {CP_1, CP_2, CP_3}, {CP_2, CP_3, CP_4} e {CP_1, CP_3, CP_4}. Por exemplo, usar os pontos de controle CP_1, CP2 e CPv3 na construção do modelo de movimento afim de 6 parâmetros é marcado como “afim (CP_1, CP_2, CP_3)".
[0202] Adicionalmente, em uma modalidade da revelação, se um candidato de combinação afim estiver presente em um modo de combinação afim, isto pode ser sempre considerado como um modo afim de 6 parâmetros.
Modo inter afim
[0203] A FIG. 22 ilustra um exemplo de blocos vizinhos usados para uma predição de movimento afim em um modo inter afim de acordo com uma modalidade da revelação.
[0204] Referindo-se à FIG. 22, a predição de movimento afim pode incluir um modo de combinação afim (ou AF_MERGE) e um modo inter afim (ou AF_INTER).
No modo inter afim (AF_INTER), após a predição de vetor de movimento de 2 pontos de controle (CPMVP) e o CPMV serem determinados, uma diferença de vetor de movimento de ponto de controle (CPMVD) correspondendo a uma diferença pode ser transmitida a partir de um codificador para um decodificador. Um processo de codificação detalhado do modo inter afim (AF_INTER) pode ser o mesmo que o descrito abaixo.
[0205] Etapa-1: Determinar um candidato de dois pares de CPMVP
[0206] Etapa-1.1: Determinar um máximo de 12 combinações de candidatos CPMVP (refira-se à Equação 2) [Equação 2]
[0207] Na Equação 2, v_0 indica um vetor de movimento CPMV0 no ponto de controle superior-esquerdo 2210 de um bloco atual 2200. v_1 indica um vetor de movimento CPMV1 no ponto de controle superior-direito 2211 do bloco atual 2200.
v_2 indica um vetor de movimento CPMV2 em um ponto de controle 2212 no lado inferior-esquerdo do bloco atual 2200. v_A indica o vetor de movimento de um bloco vizinho A 2220 adjacente à parte superior-esquerda do ponto de controle superior- esquerdo 2210 do bloco atual 2200. v_B indica o vetor de movimento de um bloco vizinho B 2222 adjacente à parte superior do ponto de controle superior-esquerdo 2210 do bloco atual 2200. v_C indica o vetor de movimento de um bloco vizinho C 2224 adjacente à parte esquerda do ponto de controle superior-esquerdo 2210 do bloco atual 2200. v_D é o vetor de movimento de um bloco vizinho D 2226 adjacente à parte superior do ponto de controle superior-direito 2211 do bloco atual 2200. v_E indica o vetor de movimento de um bloco vizinho E 2228 adjacente à parte superior- direita do ponto de controle superior-direito 2211 do bloco atual 2200. v_F indica o vetor de movimento de um bloco vizinho F 2230 adjacente à parte esquerda do ponto de controle inferior-esquerdo 2212 do bloco atual 2200. v_G indica o vetor de movimento de um bloco vizinho G 2232 adjacente à parte esquerda do ponto de controle inferior-esquerdo 2212 do bloco atual 2200.
[0208] Etapa-1.2: Classificar combinações de candidatos de CPMVP baseado em um valor possuindo um valor de diferença pequeno (DV) e usar os dois candidatos superiores (consultar Equação 3 abaixo).
[Equação 3]
[0209] v_0x indica o elemento de eixo x do vetor de movimento (V0 ou CPMV0) no ponto de controle superior-esquerdo 2210 do bloco atual 2200. v_1x indica o elemento de eixo x do vetor de movimento (V1 ou CPMV1) no ponto de controle superior-direito 2211 do bloco atual 2200. v_2x indica o elemento de eixo x do vetor de movimento (V_2 ou CPMV_2) no ponto de controle inferior-esquerdo 2212 do bloco atual 2200. v_0y indica o elemento de eixo y do vetor de movimento (V_0 ou CPMV_0) no ponto de controle superior-esquerdo 2210 do bloco atual 2200.
v_1y indica o elemento de eixo y do vetor de movimento (V_1 ou CPMV_1) no ponto de controle superior-direito 2211 do bloco atual 2200. v_2y indica o elemento de eixo y do vetor de movimento (V_2 ou CPMV_2) no ponto de controle inferior-esquerdo 2212 do bloco atual 2200. w indica a largura do bloco atual 2200. h indica a altura do bloco atual 2200.
[0210] Etapa-2: Usar uma lista de candidatos AMVP quando um candidato de par de preditor de vetor de movimento de ponto de controle (CPMVP) for menor do que 2.
[0211] Etapa-3: Determinar o preditor de vetor de movimento de ponto de controle (CPMVP) de cada um de dois candidatos e selecionar de maneira ideal um candidato possuindo um valor menor comparando os custos RD e um CPMV.
[0212] Etapa-4: Transmitir um índice correspondendo ao candidato ideal a uma diferença de vetor de movimento de ponto de controle (CPMVD).
[0213] Em uma modalidade da revelação, um processo de construir um candidato CPMVP em AF_INTER é proporcionado. De maneira idêntica ao AMVP, o número de candidatos é 2, e um índice indicando a localização de uma lista de candidatos é sinalizado.
[0214] Um processo de construir uma lista de candidatos CPMVP é como se segue.
[0215] 1) A decisão quanto a se os blocos vizinhos são codificados como predição de movimento afim é verificada por meio da varredura dos blocos vizinhos.
Se os blocos varridos forem codificados como predição afim, o par de vetores de movimento de um bloco atual é derivado a partir do modelo de movimento afim do bloco vizinho varrido até que o número de candidatos se torne 2.
[0216] 2) Se o número de candidatos for menor do que 2, um processo de configuração de candidato é realizado. Adicionalmente, em uma modalidade da revelação, um modo inter afim de 4 parâmetros (2 pontos de controle) é usado para predizer o modelo de movimento de aumento/redução de ampliação (zoom) e rotação e conteúdo. Como ilustrado na FIG. 15, o campo de movimento afim de um bloco é descrito por dois vetores de movimento de ponto de controle.
[0217] O campo de vetor de movimento (MVF) de um bloco é descrito pela Equação 1 descrita acima.
[0218] Em uma tecnologia convencional, um modo de predição de vetor de movimento avançado (AMVP) é necessário para varrer um índice de predição de vetor de movimento (MVP) e diferenças de vetor de movimento (MVDs). Quando o modo AMVP é aplicado à revelação, um sinalizador afim (affine_flag) é sinalizado para indicar se a predição afim é usada. Se a predição afim for aplicada, as sintaxes de inter_dir, ref_idx, mvp_index, e dois MVDs (mvd_x e mvd_y) são sinalizados.
Uma lista de candidatos de par de MVP afim incluindo dois pares de MVP afins é gerada. O mvp_index sinalizado é usado para selecionar um dos dois pares de MVP afins. O par de MVP afim é gerado por dois tipos de candidatos de MVP afins. Um é um candidato afim especial herdado, e o outro é um candidato afim derivado de canto. Se as CUs vizinhas forem codificadas em um modo afim, candidatos afins herdados espaciais podem ser gerados. O modelo de movimento afim de um bloco codificado no modo afim vizinho é usado para gerar os vetores de movimento de um par de MVP de 2 pontos de controle. Os MVs do par de MVP de 2 pontos de controle de um candidato afim espacial herdado são derivados usando as seguintes equações.
[Equação 4] V0x = VB0x + (VB2_x - VB0x ) * ( posCurCU_Y - posRefCU_Y ) / RefCU_height+ (VB1x - VB0x ) * (posCurCU_X - posRefCU_X) / RefCU_width [Equação 5] V0y = VB0y + (VB2_y - VB0y ) * (posCurCU_Y - posRefCU_Y) / RefCU_height+ (VB1y - VB0y ) * (posCurCU_X - posRefCU_X) / RefCU_width
[0219] Se V_B0, V_B1 e V_B2 puderem ser substituídos pelo MV superior- esquerdo, MV superior-direito, e MV inferior-esquerdo de uma dada CU de referência/vizinha, (posCurCU_X, posCurCU_Y) são a localização da amostra superior-esquerda de uma CU atual para a amostra superior-esquerda de um quadro. (posRefCU_X, posRefCU_Y) é a localização da amostra superior-esquerda de uma CU de referência/vizinha para a amostra superior-esquerda de um quadro.
[Equação 6] V1x = VB0x + (VB1x - VB0x) * CU_width / RefCU_width [Equação 7] V1y = VB0y + (VB1y - VB0y) * CU_width / RefCU_width
[0220] A FIG. 23 ilustra um exemplo de blocos vizinhos usados para uma predição de movimento afim em um modo inter afim de acordo com uma modalidade da revelação.
[0221] Referindo-se à FIG. 23, quando o número de pares de MVP é menor do que 2, um candidato afim derivado de canto é usado. Como ilustrado na FIG. 23, vetores de movimento vizinhos são usados para derivar um par de MVP afim. Com respeito a um primeiro candidato afim derivado de canto, um primeiro MV disponível em um conjunto A (A0, A1 e A2) e um primeiro MV disponível em um conjunto B (B0 e B1) são usados para configurar um primeiro par de MVP. Com respeito a um segundo candidato afim derivado de canto, o primeiro MV disponível no conjunto A e um primeiro MV disponível em um conjunto C (C0 e C1) são usados para calcular o MV de um ponto de controle superior-direito. O primeiro MV disponível no conjunto A e um ponto de controle superior-direito MV calculado são um segundo par de MVP.
[0222] Em uma modalidade da revelação, dois conjuntos de candidatos, incluindo dois (três) candidatos {mv_0, mv_1} ({mv_0, mv_1, mv_2) são usados para predizer dois (três) pontos de controle de um modelo de movimento afim. Certas diferenças de vetor de movimento (mvd_0, mvd_1, mvd_2) e pontos de controle são calculados usando as seguintes equações. [Equação 8]
[0223] As FIGS. 24 e 25 são diagramas ilustrando um método para derivar um candidato de vetor de movimento usando informação de movimento de um bloco vizinho em um modo inter afim de acordo com uma modalidade da revelação.
[0224] Na lista de candidatos afins, um movimento afim é estendido a partir dos blocos vizinhos espaciais (candidatos afins extrapolados), e a lista de candidatos afins é anexada por uma combinação de vetores de movimento a partir dos blocos vizinhos espaciais (candidatos afins virtuais). Os conjuntos de candidatos são definidos como se segue:
[0225] 1. Um máximo de dois conjuntos de preditores de MV afins diferentes são derivados a partir de um movimento afim de blocos vizinhos. Os blocos vizinhos A0, A1, B0, B1 e B2 são verificados como ilustrado na FIG. 24. Se um bloco vizinho for codificado por um modelo de movimento afim e um quadro de referência correspondente for o mesmo que o quadro de referência de um bloco atual, dois pontos de controle (para um modelo afim de 4 parâmetros) do bloco atual ou três pontos de controle (para um modelo afim de 6 parâmetros) do bloco atual são derivados a partir do modelo afim dos blocos vizinhos.
[0226] 2. A FIG. 25 ilustra blocos vizinhos usados para gerar um conjunto de candidatos afins virtual. Os MVs vizinhos são divididos em três grupos: S_0={mv_A, mv_B, mv_C}, S_1={mv_D, mv_E} e S_2={mv_F, mv_G}. mv_0 é o primeiro MV que se refere à mesma imagem de referência que a de um bloco atual em S0. mv_2 é o primeiro MV que se refere à mesma imagem de referência que a de um bloco atual em S1.
[0227] Se mv_0 e mv_1 forem dados, mv_2 pode ser derivado pela Equação 9 abaixo.
[Equação 9]
[0228] Na Equação 9, um tamanho de bloco atual é WxH.
[0229] Se somente mv_0 e mv_2 forem dados, mv_1 pode ser derivado pela Equação 10 abaixo.
[Equação 10]
[0230] Em uma modalidade da revelação, a predição inter afim pode ser realizada de acordo com a seguinte sequência.
[0231] Entrada: parâmetros de movimento afins, amostras de imagem de referência
[0232] Saída: o bloco de predição de uma CU
[0233] Processador
[0234] Deriva o tamanho de sub-bloco de um bloco afim
[0235] - Se tanto a largura quanto a altura de um sub-bloco forem maiores do que 4 amostras de luma,
[0236] -- Com respeito a cada sub-bloco,
[0237] - Deriva o vetor de movimento de um sub-bloco
[0238] - Realiza uma compensação de movimento (1/16 pel para luma e 1/32 pel para croma) baseado em DCT-IF em sub-blocos (invocados)
[0239] - Caso contrário, uma compensação baseada em um filtro de interpolação bilinear aperfeiçoado é realizada (invocada) em todos os blocos afins.
[0240] Adicionalmente, em uma modalidade da revelação, se um sinalizador de combinação/salto for falso e a largura e altura de uma CU forem maiores do que ou igual a 8, um sinalizador afim é sinalizado de modo a indicar se um modo inter afim será usado em um nível de CU. Se uma CU for codificada em um modo inter afim, um sinalizador de modelo é sinalizado de modo a indicar se um modelo afim de 4 parâmetros ou 6 parâmetroos é aplicado à CU. Se o sinalizador de modelo for verdadeiro, um modo AF_6_INTER (modelo afim de 6 parâmetros) é aplicado e as MVDs são analisadas. Caso contrário, um modo AF_4_INTER (modelo afim de 4 parâmetros) é aplicado, e duas MVDs são analisadas.
[0241] No modo AF_4_INTER, de maneira similar ao modo de combinação afim, pares de vetores de movimento extrapolados a partir de blocos vizinhos codificados pelo modo afim são gerados e preferencialmente inseridos em uma lista de candidatos.
[0242] Em seguida, se o tamanho da lista de candidatos for menor do que 4, candidatos possuindo um par de vetores de movimento
{(v_0,v_1)|v0={v_A,v_B,v_c},v_1={v_D, v_E}} são gerados usando blocos vizinhos.
Como ilustrado na FIG. 25, v_0 é selecionado a partir dos vetores de movimento dos blocos A, B e C. Um vetor de movimento a partir de um bloco vizinho é escalonado com base na relação entre uma lista de referência, um POC para referência ao bloco vizinho, um POC para referência a uma CU atual, e a CU atual. Adicionalmente, um método de aproximação para selecionar v_1 dentre os blocos vizinhos D e E é similar. Quando a lista de candidatos é maior do que 4, os candidatos são primeiro classificados com base na consistência dos vetores de movimento vizinhos (similar aos dois vetores de movimento vizinhos em um par de candidatos), e os 4 primeiros candidatos são preservados.
[0243] Se o número de listas de candidatos for menor do que 4, a lista é preenchida por um par de vetores de movimento por meio da duplicação dos candidatos de AMVP.
[0244] No modo AF_6_INTER, similar ao modo de combinação afim, grupos de três vetores de movimento (grupos de três vetores de movimento afins) extrapolados a partir de blocos vizinhos codificados no modo de combinação afim são gerados e preferencialmente inseridos em uma lista de candidatos.
[0245] Em seguida, quando o tamanho da lista de candidatos for menor do que 4, candidatos incluindo grupos de três vetores de movimento {(v_0, v_1, v_2)| v0={v_A, v_B, v_c}, v1={v_D, v_E}, v2={v_G, v_H}} são gerados usando blocos vizinhos. Como ilustrado na FIG. 25, v_0 é selecionado a partir dos vetores de movimento do bloco A, B e C. Um vetor de movimento a partir de um bloco vizinho é escalonado com base na relação entre uma lista de referência, um POC para referência ao bloco vizinho, um POC para referência a uma CU atual, e a CU atual.
Adicionalmente, uma abordagem para selecionar v_1 a partir dos blocos vizinhos D e E é similar à seleção de v_2 a partir de F e G. Quando a lista de candidatos é maior do que 4, os candidatos são classificados com base na consistência dos vetores de movimento vizinhos (similar a dois vetores de movimento em três candidatos), e os 4 primeiro candidatos são preservados.
[0246] Quando o número de listas de candidatos for menor do que 4, uma lista pode ser preenchida por grupos de três vetores de movimento por meio da duplicação dos respectivos candidatos de AMVP.
[0247] Após o CPMV de uma CU atual ser derivado, o MVF da CU atual é gerado de acordo com a Equação 11 para um modelo afim de 4 parâmetros e é gerado de acordo com a Equação 12 para um modelo afim de 6 parâmetros, baseado no número de parâmetros afins.
[Equação 11] [Equação 12]
[0248] Neste caso, um tamanho de sub-bloco MxN é derivado na Equação 13, e MvPre é a precisão da parte de vetor de movimento (1/16).
[Equação 13]
[0249] Após serem derivados pela Equação 12, M e N precisam ser ajustados para baixo, se necessário, de modo a torná-los o divisor de w e h. Quando M ou N for menor do que 8, um WIF é aplicado. Caso contrário, uma compensação de movimento afim baseada em um sub-bloco é aplicada.
[0250] A FIG. 26 ilustra um exemplo de um campo de vetor de movimento afim de uma unidade de sub-bloco de acordo com uma modalidade da revelação.
[0251] Referindo-se à FIG. 26, de modo a derivar o vetor de movimento de cada sub-bloco MxN, o vetor de movimento da amostra central de cada sub-bloco, tal como o ilustrado na FIG. 26, é calculado de acordo com a Equação 11 ou a Equação 12, e é arredondado com precisão de porção de 1/16. Filtros de interpolação de sobreamostragem SHVC são usados para gerar a predição de cada sub-bloco usando um vetor de movimento derivado.
[0252] Os filtros de interpolação de sobreamostragem SHVC possuindo o mesmo comprimento de filtro e fator de normalização que os filtros de interpolação de compensação de movimento HEVC podem ser usados como filtros de interpolação de compensação de movimento para posições de pel fracional adicionais. A precisão de vetor de movimento de componente de croma é uma amostra de 1/32. Os filtros de interpolação adicionais das localizações de porção de pel de 1/32 são derivados usando médias dos filtros de duas localizações de porção de pel de 1/16 adjacentes.
[0253] O modo AF_MERGE pode ser selecionado no lado do codificador usando o mesmo método de seleção de um modo de combinação comum. Uma lista de candidatos é preferencialmente gerada, e um custo RD mínimo é selecionado nos candidatos para uma comparação com os custos RD dos outros modos inter.
Um resultado da comparação é uma determinação quanto a se AF_MERGE é aplicado ou não.
[0254] Para o modo AF_4_INTER, a verificação de um custo RD é usada para determinar se um candidato de par de vetores de movimento é selecionado como a predição de vetor de movimento de ponto de controle (CPMVP) de uma CU atual. Após a CPMVP de uma CU afim atual ser determinada, a estimação de movimento afim é aplicada, e um vetor de movimento de ponto de controle (CPMV)
é obtido. Por conseguinte, uma diferença entre o CPMV e o CPMVP é determinada.
[0255] No lado do codificador, o modo AF_6_INTER é identificado somente quando o modo AF_MERGE ou AF_4_INTER é determinado como um modo ideal em um estágio de seleção de modo anterior.
[0256] Em uma modalidade da revelação, o modo inter afim (AMVP afim) pode ser realizado como se segue:
[0257] 1) AFFINE_MERGE_IMPROVE: Em vez de buscar o primeiro bloco vizinho em um modo afim, um aprimoramento consiste em buscar um bloco vizinho possuindo um tamanho de unidade de codificação máximo como um candidato de combinação afim.
[0258] 2) AFFINE_AMVL_IMPROVE: os blocos vizinhos no modo afim são adicionados a uma lista de candidatos AMVP afins similarmente a um procedimento AMVP comum.
[0259] Um processo detalhado para gerar a lista de candidatos de AMVP afins é como se segue.
[0260] Primeiro, identifica-se se um bloco vizinho na parte inferior-esquerda usa um modelo de movimento afim e tem o mesmo índice de referência que um índice de referência atual. Se o bloco vizinho não estiver presente, um bloco vizinho esquerdo é identificado usando o mesmo método. Se o bloco vizinho não estiver presente, identifica-se se um bloco vizinho na parte inferior-esquerda usa um modelo de movimento afim e possui um índice de referência diferente. Se o bloco vizinho estiver presente, um vetor de movimento afim escalonado é adicionado a uma lista de imagens de referência. Se o bloco vizinho não estiver presente, um bloco vizinho esquerdo é identificado usando o mesmo método.
[0261] Em segundo lugar, um bloco vizinho superior-direito, um bloco vizinho superior, e um bloco vizinho superior-esquerdo são identificados usando o mesmo método.
[0262] Após os processos, se dois candidatos forem recuperados, o processo de gerar uma lista de candidatos AMVP afins é terminado. Se dois candidatos não forem recuperados, uma operação original dentro do software JEM é realizada para gerar listas de candidatos AMVP afins.
[0263] 3) AFFINE_SIX_PARAM: Além do modelo de movimento afim de 4 parâmetros, um modelo de movimento afim de 6 parâmetros é adicionado como um modelo adicional.
[0264] O modelo de movimento afim de 6 parâmetros é derivado através da Equação 14.
[Equação 14] MVx ax by c MVy dx ey f
[0265] Três vetores de movimento na localização superior-esquerda MV_0, na localização superior-direita MV_1, e na localização inferior-esquerda MV_2 são necessários para determinar um modelo, uma vez que 6 parâmetros estão presentes no modelo de movimento. Três vetores de movimento podem ser determinados usando um método similar ao método dos dois vetores de movimento no modelo de movimento afim de 4 parâmetros. A combinação do modelo afim é sempre definida como um modelo de movimento afim de 6 parâmetros.
[0266] 4) AFFINE_CLIP_REMOVE: as restrições do vetor de movimento para todos os vetores de movimento são removidas. Os processos de compensação de movimento são feitos para controlar as próprias restrições de vetor de movimento.
Modelo de movimento afim
[0267] Como descrito acima, vários modelos de movimento afins podem ser usados ou considerados na predição inter afim. Por exemplo, um modelo de movimento afim pode representar quatro movimentos como na FIG. 14. Um modelo de movimento afim capaz de representar três movimentos (translação, escala e rotação) dentre os movimentos passíveis de serem representados pelo modelo de movimento afim pode ser chamado de modelo de movimento afim de similaridade (ou simplificado). O número de CPMVs e/ou um método para derivar o MV de amostra / unidade de sub-bloco de um bloco atual pode ser diferente, dependendo de qual dos modelos de movimento afim é usado.
[0268] Em uma modalidade da revelação, modelos de movimento adaptativos de quatro e seis parâmetros são usados. No AF_INTER, um modelo de movimento de 6 parâmetros é proposto além do modelo de movimento de 4 parâmetros presente no JEM. O modelo de movimento afim de 6 parâmetros é descrito como na Equação 15.
[Equação 15]
[0269] Neste caso, os coeficientes a, b, c, d, e e f são parâmetros de movimento afim. (x,y) e (x',y') são coordenadas nas localizações de pixel antes e após a transformada de um modelo de movimento afim. Na codificação de vídeo, de modo a usar o modelo de movimento afim, se CPMV0, CPMV1 e CPMV2 forem MVs para CP0 (superior-esquerdo), CP1 (superior-direito), e CP2 (inferior-esquerdo), a Equação 16 pode ser descrita como se segue.
[Equação 16]
[0270] Neste caso, CPMV_0={v_0x,v_0y}, CPMV_1={v_1x,v_1y}, CPMV_2={v_2x,v_2y}, e w e h são a largura e altura de cada bloco de codificação. A Equação 16 é o campo de vetor de movimento (MVF) do bloco.
[0271] Um sinalizador é analisado em um nível de CU de modo a indicar se um modelo de movimento afim de 4 parâmetros ou 6 parâmetros é usado quando os blocos vizinhos são codificados como predição afim. Se um bloco vizinho codificado como predição afim não estiver presente, o sinalizador é omitido e o modelo de 4 parâmetros é usado para predição afim. Em outras palavras, o modelo de 6 parâmetros é considerado na condição em que um ou mais blocos vizinhos são codificados em um modelo de movimento afim. Em relação ao número de CPMVDs, cada um de dois ou três CPMVDs é sinalizado com respeito aos modelos de movimento afim de 4 parâmetros e 6 parâmetros.
[0272] Adicionalmente, em uma modalidade da revelação, pode-se usar refinamento de vetor de movimento com correlação de padrão. Na derivação de vetor de movimento com correlação de padrão (PMMVD, daqui em diante abreviada como PMVD na descrição do codificador KEM) do JEM, o decodificador precisa avaliar alguns vetores de movimento (MVs) de modo a determinar um candidato MV inicial para uma busca no nível de CU. Na busca de nível de sub-CU, alguns candidatos de MV são adicionados além de um MV de nível de CU ideal. O decodificador precisa avaliar tais candidatos de MV de modo a buscar por um MV ideal. Isto requer uma banda de memória grande. No refinamento de vetor de movimento com correlação de padrão (PMVR) proposto, os conceitos de correlação de modelo e correlação bilateral no PMVD são adotados no JEM. Quando um modo de salto ou modo de combinação é selecionado para indicar se o PMVR está disponível um PMVR_flag é sinalizado. De modo a reduzir significativamente o requisito de largura de banda de memória se comparado ao PMVD, uma lista de candidatos de MV é gerada. Se o PMVR for aplicado, um índice de candidato MV inicial é sinalizado explicitamente.
[0273] Uma lista de candidatos é gerada usando o processo de geração de lista de candidatos de combinação, mas os candidatos de combinação sub-CU, por exemplo, os candidatos afins e candidatos ATMVP, são excluídos. Para correlação bilateral, somente um candidato de MV de uni-predição é incluído. Um candidato de MV de bi-predição é dividido em dois candidatos de MV de uni-predição.
Adicionalmente, candidatos de MV similares (possuindo diferenças de MV menores do que um limiar predefinida) também são removidos. Para busca no nível de CU, o refinamento de MV de busca em diamante é realizado partindo de um candidato de MV sinalizado.
[0274] A busca em nível de sub-CU está disponível somente no modo de combinação com correlação bilateral. Uma janela de busca para a busca em nível de sub-CU para todas as sub-CUs é a mesma que uma janela de busca para a busca em nível de CU. Por conseguinte, uma largura de banda adicional não é necessária na busca em nível de sub-CU.
[0275] De modo a refinar um MVP em um modo, a correlação de modelo também é usada. No modo AMVP, dois MVPs são gerados usando um processo de geração de MVP HEVC, e um índice de MVP é sinalizado para selecionar um dos dois MVPs. O MVP selecionado é adicionalmente refinado usando correlação de modelo no PMVR. Se a resolução de vetor de movimento adaptativa (AMVR) for aplicada, o MVP é arredondado com a precisão correspondente antes do refinamento por correlação de modelo. Tal processo de refinamento é chamado de refinamento de preditor de vetor de movimento com correlação de padrão (PMVPR).
No restante deste documento, o PMVR inclui PMVR com correlação de modelo, PMVR com correção bidirecional, a PMVPR, a menos que seja definido de maneira diferente em casos especiais.
[0276] De modo a reduzir um requisito de largura de banda de memória, o PMVR está indisponível para CUs de 4x4, 4x8 e 8x4. De modo a reduzir a quantidade de uma largura de banda de memória adicional requerida, o intervalo de busca de {correlação de modelo, correlação bidirecional} para uma área de CU igual a 64 pode ser reduzido para {±2, ±4}. O intervalo de busca de {correlação de modelo, correlação bidirecional} para uma área de CU maior do que 64 pode ser reduzido para {±6, ±8}. Comparado com o pior caso na HEVC, uma largura de banda de memória requerida foi reduzida de 45.9x no PMVD do JEM-7.0 para 3.1x no
PMVR usando todos os métodos na seção PMVR deste documento.
[0277] Predição de vetor de movimento baseada em histórico (HMVP) geral
[0278] Em geral, uma tecnologia de compressão de imagem usa aproveitamento para redundância espacial e temporal como dois esquemas principais. Por exemplo, tanto a codificação de vídeo de alta eficiência (HEVC) quanto a VVC usam dois esquemas de compressão de movimento baseados na codificação inter. Um é um movimento de combinação, e o outro é uma predição de vetor de movimento avançada (AMVP). De modo a aprimorar os dois modos de predição, várias modificações vêm sendo discutidas. As várias modificações incluem aumentar o número de candidatos para buscar por mais candidatos espacialmente estendidos e a verificação de candidatos temporais em localizações não tradicionais.
Os dois esquemas incluem primariamente construir uma lista usando candidatos disponíveis, minimizar um custo de taxa-distorção (RD), e sinalizar um candidato selecionado em um fluxo de bits.
[0279] Mais especificamente, em uma tecnologia de compressão de imagem recente, a HMVP na qual a informação de movimento de um bloco codificado anteriormente é armazenada e a informação de movimento armazenada é usada para a predição de movimento de um bloco codificado subsequentemente é discutida. Tal HMVP pode ser adicionada a uma lista de combinação (ou lista de candidatos de combinação) ou uma lista de AMVP (ou lista de candidatos de AMVP).
[0280] O decodificador mantém uma tabela de consulta (LUT) operando em um primeiro sistema (ou método) “primeiro que entra, primeiro que sai” (FIFO) para HMVP. Na revelação, a LUT não está limitada a seu nome, e pode ser chamada de tabela, tabela HMVP, tabela de candidatos de HMVP, armazenamento temporário (buffer), um armazenamento intermediário de HMVP, um armazenamento temporário de candidatos de HMVP, uma lista de HMVP ou uma lista de candidatos de HMVP.
Especificamente, quando uma unidade de predição (PU) não-afim (ou unidade de codificação (CUI)) é decodificada, a informação de movimento correspondente é armazenada em uma LUT. O decodificador realiza a decodificação em uma PU seguinte. Neste caso, a informação de movimento armazenada pode incluir vetores de movimento, informação de índice de referência e informação de modo nas direções x (horizontal) e y (vertical).
[0281] O decodificador mantém uma LUT na qual a informação de movimento de um candidato não-afim decodificado progressivamente é armazenada. O tamanho da LUT pode ser limitado a S candidatos predefinidos. Em uma modalidade, a LUT pode ser reiniciada no início de uma fatia, no início de uma linha da CTU ou no início de uma CTU.
[0282] A HMVP pode ser aplicada tanto no modo de combinação quando no modo AMVP. Uma lista de combinação pode ter B candidatos, e uma lista de AMVP pode ter dois candidatos. Em uma tecnologia de compressão de imagem convencional, uma lista de combinação é configurada com os seguintes candidatos: I) um candidato espacial, ii) um candidato temporal, iii) um candidato de predição bidirecional (Bi-Pred), iv) um candidato de movimento zero. Um método para adicionalmente considerar a predição de vetor de movimento avançada (ATMVP) como um candidato é discutido recentemente. Por exemplo, um candidato de ATMVP pode ser inserido em uma lista de combinação antes de um candidato temporal. Os candidatos da lista de combinação são adicionados à lista de combinação até alcançarem um tamanho de lista de combinação máximo. Um candidato duplicado pode não ser adicionado à lista de combinação. Dois candidatos podem ser inseridos me uma lista de AMVP. Por exemplo, o primeiro candidato dos dois candidatos pode ser selecionado a partir dos candidatos espaciais disponíveis, e o segundo candidato pode ser selecionado a partir de candidatos temporais. Se a lista não for preenchida, um candidato de vetor de movimento zero pode ser adicionado.
[0283] A HMVP é aplicada com base em uma ordem FIFO na qual os candidatos saem de uma LUT de maneira idêntica à sua ordem de entrada.
[0284] Em uma modalidade, quando a HMVP é aplicada a uma configuração de lista de combinação, um candidato de HMVP pode ser inserido (ou adicionado) à terceira localização de uma lista como se segue:
1. Candidato Espacial
2. Candidato Temporal
3. Até S Candidatos de HMVP para uma LUT
4. Candidato de Predição Bidirecional Combinado
5. Candidato de Vetor de Movimento Zero
[0285] Em uma modalidade, quando a HMVP é aplicada a uma configuração de lista de AMVP, a HMVP pode ser inserida na terceira localização após um candidato temporal como se segue:
1. Candidato Espacial
2. Candidato Temporal
3. Até K Candidatos de HMVP
4. Candidato de Vetor de Movimento Zero
[0286] A FIG. 27 é um fluxograma para descrever um método para armazenar uma HMVP de acordo com uma modalidade da revelação.
[0287] Referindo-se à FIG. 27, o decodificador decodifica uma PU atual (ou CU) (S2701).
[0288] O decodificador verifica se a PU atual é um bloco codificado em um modo não-afim (S2702). De modo a facilita o uso de candidatos HMVP, se a PU atual for um bloco codificado no modo afim, o decodificador não armazena informação de movimento da PU atual em uma tabela.
[0289] Se a PU atual for um bloco codificado no modo não-afim, o decodificador armazena (ou atualiza) a informação de movimento da PU atual em uma tabela (S2703).
[0290] Em uma modalidade da revelação, uma tabela HMVP pode ser atualizada usando dois métodos, ou seja, i) FIFO não-restrita, ii) métodos FIFO de restrição. No primeiro, a informação de movimento redundante pode estar presente, mas um processo de poda não é aplicado. Isto contribui para reduzir a complexidade de um processo geral. Por outro lado, no último, o processo de poda é aplicado e nenhuma informação de movimento redundante está presente. Isso é descrito com referência à figura seguinte.
[0291] A FIG. 28 é um diagrama para descrever uma tabela HMVP operando em um modo FIFO não-restrito de acordo com uma modalidade da revelação.
[0292] Com referência à FIG. 28, um candidato adicionado a uma tabela é adicionado ao final (direita) da tabela. Em contrapartida, um candidato descarregado a partir da tabela de acordo com o método FIFO está localizado na extremidade frontal (lado esquerdo, o candidato mais antigo) da tabela.
[0293] Se a tabela não estiver totalmente preenchida com um número máximo de candidatos predefinidos em um índice L-1 (isto é, final), novos candidatos são adicionados sem um candidato removido. Em contrapartida, se a tabela já tiver sido totalmente preenchida, ou seja, se um número máximo da tabela for satisfeito, um candidato localizado na extremidade frontal, ou seja, o mais antigo na tabela, é removido e um novo candidato é adicionado.
[0294] A FIG. 29 é um diagrama para descrever uma tabela HMVP operando em um modo FIFO com restrição de acordo com uma modalidade da revelação.
[0295] Com referência à FIG. 29, no caso de a FIFO com restrição ser usada, a poda é realizada se a adição de um novo candidato causar qualquer redundância (ou seja, um novo candidato incluir informação de movimento redundante). Em uma modalidade, se um candidato possuindo informação de movimento redundante estiver presente em uma tabela, um candidato redundante dentro da tabela é removido, e a informação de movimento de um candidato atual pode ser adicionada.
[0296] Com respeito aos candidatos de HMVP, em muitos casos, os MVs de histórico mais recente podem sobrepor a informação de movimento de um candidato espacial (ou candidato vizinho espacial). Por conseguinte, a presente modalidade propõe um método para definir a ordem de adição dos candidatos de maneira diferente de uma ordem de índice LUT HMVP quando um candidato de HMVP é adicionado a uma AMVP ou lista de combinação.
[0297] De acordo com uma modalidade da revelação, uma lista de candidatos pode ser configurada de maneira eficiente por meio do ajuste adaptativo de um candidato de HMVP. Por conseguinte, o número de compartimentos de sinalização usado para binarização pode ser reduzido, e a eficiência de codificação pode ser aprimorada. Ou seja, um candidato de HMVP adicionado a uma lista de combinação ou uma lista de AMVP pode não ser limitada por um índice na lista de HMVP. Como uma modalidade, a Tabela 1 a seguir ilustra um método para alterar a ordem de adição de um candidato HMVP à lista de AMVP ou combinação.
[Tabela 1] Índice LUT HMVP (0 Ordem para adicionar indica o MV de histórico à lista de AMVP ou de mais recente) Combinação 0 2 1 0 2 1 3 3 .. ..
[0298] Referindo-se à Tabela 1, como descrito acima, existe uma boa possibilidade de que o candidato HMVP inserido mais recentemente possa ter a mesma informação de movimento que um candidato espacial. Por conseguinte, a ordem de adição de um candidato de HMVP pode ser predefinida independentemente de um índice de HMVP ao considerar a possibilidade.
[0299] Adicionalmente, em uma modalidade, o codificador ou decodificador pode adicionar um candidato de HMVP a uma lista de combinação ou lista de AMVP a partir de um candidato de HMVP iniciando a partir de um enésimo candidato na lista. A Tabela 2 abaixo ilustra uma ordem alterada para adicionar um candidato a uma lista de AMVP ou combinação.
[Tabela 2] Índice LUT HMVP (0 Ordem para adicionar indica o MV de histórico à lista de AMVP ou de mais recente) Combinação 0 1 0 2 1 3 2 .. ..
[0300] Referindo-se à Tabela 2, um candidato de HMVP pode ser adicionado a uma lista de combinação ou lista de AMVP a partir do segundo índice.
[0301] Em uma modalidade, a informação sobre a ordem de adição de um candidato de HMVP dentro de uma tabela (LUT) pode ser sinalizada a partir do codificador para o decodificador. Por exemplo, tal informação de ordem pode ser transmitida através de uma sintaxe de alto nível (HLD). A sintaxe de alto nível pode ser um conjunto de parâmetros de sequência, um conjunto de parâmetros de imagem, um cabeçalho de fatia, uma unidade de árvore de codificação, uma unidade de codificação e/ou outro cabeçalho de dados de sintaxe apropriado, por exemplo.
[0302] A Tabela 3 ilustra uma estrutura de sintaxe de alto nível à qual um método proposto na revelação pode ser aplicado.
[Tabela 3] high_level_parameter_set() { Descrição ... set_HMVP_order_flag u(1) ...
[0303] Referindo-se à Tabela 3, set_HMVP_order_flag igual a 1 indica que set_HMVP_order_flag está presente em um cabeçalho de fatia dentro de imagens não-IDR no CVS. set_HMVP_order_flag igual a 0 indica que set_HMVP_order_flag não está presente nos cabeçalhos de fatia e a HMVP adaptativa não é usada no VCS.
[0304] A Tabela 4 ilustra uma estrutura de sintaxe de cabeçalho de segmento de fatia à qual um método proposto na revelação pode ser aplicado.
[Tabela 4] slice_segment_header() { Descrição ...
If(set_HMVP_order_flag) u(1) slice_HMVP_idx ...
} ...
[0305] Referindo-se à Tabela 4, slice_HMVP_idx significa um índice para a sequência de candidatos usados. Por exemplo, slice_HMVP_idx igual a 0 pode representar uma sequência de HMVP básica, tal como 0, 1, 2, 3. De modo similar, um valor de índice de 1 pode ser usado para representar uma sequência de HMVP de 3, 2, 1, 0.
[0306] Em uma modalidade da revelação, além da LUT de HMVP, propõe-se um método de utilização de uma lista de longo prazo para predição de movimento.
Por conseguinte, o número de candidatos de HMVP mantidos pode ser aumentado.
Em uma modalidade, 2 tabelas de HMVP podem ser consideradas. Neste caso, uma pode ser usada para armazenar candidatos de HMVP comuns, e a outra pode ser usada como uma lista de longo prazo na qual os candidatos que precisam ser adicionalmente mantidos é armazenada.
[0307] O que se segue ilustra métodos para reinicializar e construir uma lista de longo prazo (ou lista de HMVP de longo prazo).
[0308] - Após a primeira CTU ou uma linha de CTU ser decodificada, um ou mais MVs de histórico de uma CTU subsequente podem ser adicionados a uma LUT HMVP de longo prazo. Tal LUT HMVP de longo prazo pode não ser usada ou atualizada até uma próxima linha de CTU.
[0309] - No início de uma próxima linha de CTU, uma LUT de HMVP de longo prazo pode ser usada para reinicializar uma LUT de HMVP comum. A razão para isto é que os candidatos de HMVP de uma CTU no início de uma linha de CTU podem estar mais co-relacionados se comparado com um MV de histórico no final de uma linha de CTU anterior.
[0310] -- O processo acima pode ser repetido.
[0311] A FIG. 30 é um diagrama ilustrando uma LUT HMVP e uma LUT HMVP de longo prazo de acordo com uma modalidade da revelação.
[0312] Com referência à FIG. 30, o codificador ou decodificador pode incluir duas LUTs para armazenar os candidatos de HMVP. Uma pode ser uma LUT de HMVP (ou LUT de HMVP comum ou LUT de HMVP de curto prazo), e a outra pode ser uma LUT de HMVP de longo prazo. Quando um candidato de HMVP é adicionado tanto às listas de combinação quanto de AMVP, ele pode ser acionado a partir de uma LUT HMVP ou de uma LUT de longo prazo, como ilustrado na FIG. 30.
[0313] O uso da LUT de longo prazo pode ser sinalizado usando um novo elemento de sintaxe. Em uma modalidade, o elemento de sintaxe pode ser sinalizado através de uma sintaxe de alto nível. Por exemplo, o elemento de sintaxe pode estar presente em um conjunto de parâmetros de sequência, em um conjunto de parâmetros de imagem, em um cabeçalho de fatia, em uma unidade de árvore de codificação, em uma unidade de codificação e/ou em outro cabeçalho de dados de sintaxe apropriado.
[0314] Em uma modalidade da revelação, propõe-se um método no qual a flexibilidade para decodificação é considerada ao adicionar um candidato de HMVP a uma LUT de HMVP. O codificador/decodificador pode considerar um critério de decisão para uma ou mais características de uma PU (ou CU) ao adicionar um candidato de HMVP à LUT de HMVP.
[0315] Em uma modalidade, o codificador/decodificador pode considerar os seguintes conteúdos ao adicionar um candidato de HMVP a uma tabela. O codificador/decodificador pode adicionar um candidato a uma tabela considerando características, tal como um modo (por exemplo, modo de combinação, modo afim ou modo AMVP) de uma PU e/ou o tamanho de um bloco, separadamente ou em combinação. Em uma modalidade, além das características, outras características adicionais podem ser consideradas. Por exemplo, um tipo de combinação (por exemplo, candidato espacial ou candidato temporal) no qual uma atualização de LUT HMVP é considerada, seja ela uma sub-PU, etc., pode ser considerado como um critério para selecionar um candidato. O critério de seleção pode ser determinado para reduzir a redundância com um histórico anterior (ou HMVP anterior). Por exemplo, se uma PU for codificada em um modo de combinação e um tipo de combinação for uma combinação espacial, o decodificador pode não atualizar uma LUT de HMVP com informação de movimento da PU correspondente.
[0316] A FIG. 31 é um diagrama ilustrando um exemplo de um método para atualizar uma LUT HMVP de acordo com uma modalidade da revelação.
[0317] Referindo-se à FIG. 31, o codificador/decodificador obtém informação de movimento de um candidato codificado (S3101).
[0318] O codificador/decodificador avalia se irá atualizar uma LUT com a informação de movimento do candidato baseado em um critério de decisão predefinido (S3102). Como descrito acima, o critério de decisão pode incluir características relacionadas a um ou mais dentre um modo (por exemplo, modo de combinação, modo afim ou modo AMVP) do candidato, o tamanho de bloco do candidato e/ou o tipo de combinação do candidato.
[0319] O codificador/decodificado atualiza a LUT com base no critério de decisão (S4303). Isto é, se o candidato satisfizer o critério de decisão predefinido, o codificador/decodificador pode adicionar a informação de movimento do candidato à LUT.
[0320] Em uma modalidade da revelação, são propostas restrições sobre uma verificação de redundância para adicionar um candidato de HMVP a uma lista de combinação (ou lista de AMVP). As restrições sobre uma verificação de redundância podem ser definidas ou implementadas de várias maneiras.
[0321] Em uma modalidade, o codificador/decodificador pode limitar o número de verificações de poda para um primeiro número específico de candidatos em uma lista de combinação. Como uma modalidade, o codificador/decodificador pode limitar o número de verificações de poda a partir do primeiro candidato de uma lista de combinação a um candidato específico. Por exemplo, o codificador/decodificador pode realizar um processo de poda nos candidatos a partir do primeiro candidato de uma lista de combinação para um candidato específico. Além disso, um candidato de HMVP, isto é, um alvo de uma verificação de poda, pode ser limitado a um número predefinido.
[0322] Adicionalmente, em uma modalidade, o codificador/decodificador pode limitar uma verificação de poda realizando a verificação de poda em um tipo específico de um candidato de combinação dentro de uma lista de combinação. Por exemplo, o codificador/decodificador pode realizar uma verificação de poda somente em um candidato espacial de uma lista de combinação ao adicionar um candidato de HMVP. Como alternativa, por exemplo, o codificador/decodificador pode realizar uma verificação de poda somente em alguns dos candidatos espaciais de uma lista de combinação ao adicionar um candidato de HMVP. Alguns dos candidatos espaciais podem ser predefinidos. Por exemplo, os candidatos espaciais predefinidos podem ser pelo menos um de um candidato espacial vizinho esquerdo e/ou um candidato espacial vizinho superior. Como alternativa, por exemplo, ao adicionar um candidato de HMVP, o codificador / decodificador pode realizar uma verificação de poda somente em uma parte dos candidatos espaciais da lista de combinação, e a parte dos candidatos espaciais pode ser predefinida como lados esquerdo e superior. Uma modalidade da revelação não está limitada aos exemplos acima, e outros tipos podem ser combinados e limitados como um alvo de uma verificação de poda.
[0323] A FIG. 32 é um diagrama ilustrando um método para limitar o número de candidatos HMVP, ou seja, um alvo de uma verificação de poda, de acordo com uma modalidade da revelação.
[0324] Referindo-se à FIG. 32, em uma modalidade da revelação, o número de candidatos de HMVP, isto é, um alvo de uma verificação de poda, pode ser limitado a M. O codificador/decodificador pode verificar a redundância da informação de movimento entre os M primeiros candidatos dentro de uma LUT de HMVP e os candidatos de combinação de uma lista de combinação ao construir a lista de combinação usando candidatos de HMVP.
[0325] Como alternativa, o codificador/decodificador pode verificar a redundância da informação de movimento entre os primeiros M candidatos dentro de uma LUT de HMVP e uma PU decodificada atualmente ao adicionar a informação de movimento do bloco de processamento decodificado (por exemplo, PU) à LUT de HMVP.
[0326] A FIG. 33 é um fluxograma ilustrando um exemplo de um método para atualizar uma verificação de poda de acordo com uma modalidade da revelação.
[0327] Referindo-se à FIG. 33, o codificador/decodificador obtém informação de movimento de um candidato decodificado e determina (ou decodifica) o número de verificações de poda (S3301, S3302). O número de verificações de poda pode ser predefinido no codificador/decodificador de acordo com o método descrito acima (por exemplo, descrito na FIG. 32). O codificador/decodificador realiza uma verificação de poda com base no número determinado de verificações de poda (S3303).
[0328] Em uma modalidade, como na Tabela 4 e na Tabela 5, a informação relacionada a uma verificação de poda pode ser sinalizada através de uma sintaxe de alto nível. Neste caso, um elemento de sintaxe transmitido a partir do codificador para o decodificador pode ser sinalizado através de uma sintaxe de nível superior para indicar o número de verificações de poda. A sintaxe de alto nível pode ser incluída em um conjunto parâmetros de sequência, em um conjunto de parâmetros de imagem, em um cabeçalho de fatia, em uma unidade de árvore de codificação, em uma unidade de codificação e/ou em outro cabeçalho de dados de sintaxe apropriado, por exemplo.
[0329] Em uma modalidade da revelação, propõe-se um método eficiente para selecionar um candidato de HMVP. Quando um candidato de vetor de movimento de histórico (isto é, candidato de HMVP) é inserido em uma lista de combinação (ou lista de AMVP), uma verificação de poda pode ser realizada de modo que o candidato de HMVP não se sobreponha à lista de combinação existente. Neste momento, de modo a realizar verificações de redundância total entre a lista de combinação de tamanho M e a LUT de histórico de tamanho N, as verificações de (M-1) xN vezes são necessárias.
[0330] Por conseguinte, em uma modalidade da revelação, o número de candidatos de HMVP pode ser dependente do candidato de combinação. Por exemplo, o número de candidatos de HMVP pode ser dependente do número de candidatos espaciais presentes em uma lista de combinação. Como alternativa, por exemplo, o número de candidatos de HMVP pode ser dependente do número de candidatos espaciais e candidatos temporais presentes em uma lista de combinação.
[0331] Se houver outro candidato de combinação presente em uma lista de combinação, o número de candidatos de HMVP nos quais uma verificação de poda será realizada com base em um critério (ou regra) específica baseado no número de candidatos de combinação e/ou no número de HVVP de uma lista de combinação pode ser reduzido. Por conseguinte, o número de verificações de redundância no pior caso pode ser reduzido.
[0332] Por exemplo, no caso de uma lista de combinação possuindo um tamanho (ou comprimento) de 6, se a lista de combinação estiver totalmente preenchida, a lista de combinação pode incluir um máximo de 5 candidatos espaciais ou outros candidatos de combinação. De modo a inserir um candidato de HMVP em 6 listas de HMVP, 30 verificações de redundância podem ser necessárias no pior caso.
[0333] Em uma modalidade, um exemplo relacionado às restrições sobre o número de HMVPs a serem os alvos das verificações de poda é ilustrado na Equação 17 e na Tabela 5.
[Equação 17] se (candidatos_existentes >= 3) numéro_hist_a_verificar = 7 – candidatos_existentes [Tabela 5] nº de candidatos nº do MV de nº de candidatos existentes a histórico a nº de verificações existentes verificar verificar 1 1 6 6 2 2 6 12 3 3 4 12 4 4 3 12 5 5 2 10
[0334] Referindo-se à Tabela 5, o número de verificações de redundância para uma adição de HMVP, no pior caso, pode ser reduzido 12 vezes, não 30 vezes, limitando-se o número de HMVPs, isto é, um alvo de uma verificação de poda, a 2.
[0335] Em uma modalidade da revelação, propõe-se um método para construir uma lista de combinação usando predição de vetor de movimento temporal espacial baseado em histórico (H-STMVP). A H-STMVP indica um candidato derivado como uma média de duas MPV e TMVP espaciais baseadas em histórico As duas HMVPs espaciais podem ser obtidas a partir de um armazenamento temporário de HMVP. O TMVP pode ser obtido a partir de uma lista de combinação atual. Neste caso, o candidato espacial pode ser um candidato obtido a partir dos últimos 2 MVs codificados em uma sequência de decodificação antes de um bloco atual.
[0336] Por exemplo, o último MV codificado (designado como MV_L na revelação), um MV, isto é, o último para o segundo (designado como MV_(L-1) na revelação), e MV_TMVP podem ser usados para gerar um candidato de H-STMVP a ser inserido em uma lista de combinação.
[0337] Se todos os três candidatos puderem ser usados, os MVs adicionados à lista de combinação podem ser calculados pela Equação 18 abaixo.
[Equação 18]
[0338] Em uma modalidade, se somente dois dos três candidatos estiverem disponíveis, somente dois dos candidatos podem ter a média calculada para gerar a H-STMVP. De maneira similar, se apenas um candidato estiver disponível, esse um candidato pode ser usado. Se um candidato disponível não estiver presente, H- STMVP pode não ser usada para uma configuração de lista de combinação.
[0339] Em uma modalidade da revelação, propõe-se um método para obter o vetor de movimento de um candidato de H-STMVP usando outro método além da Equação 18.
[0340] Por exemplo, em vez de calcular a média de três ou mais candidatos de uma vez, calcular primeiro a média dos candidatos espaciais e então calcular a média dos dois candidatos novamente usando um resultado da média pode ser mais simples do ponto de vista computacional. Um exemplo disto é ilustrado nas equações a seguir.
[Equação 19]
[0341] Como alternativa, um valor médio pode ser obtido como se segue.
[Equação 20] [Equação 21] [Equação 22]
[0342] O codificador/decodificador pode primeiro calcular a média de dois candidatos como nas Equações 19 a 21, e então pode calcular a média dos valores de resultado usando o terceiro candidato. Como alternativa, o codificador/decodificador pode atribuir maior importância/peso a um candidato, ou seja, MV_L, aplicando uma operação de deslocamento duas vezes como na Equação 22. Um valor médio pode ser derivado sem uma operação de divisão apenas por uma operação de deslocamento usando as Equações 19 a 22.
[0343] Em uma modalidade da revelação, propõe-se um método usando um dado número (n) de candidatos espaciais em vez de dois candidatos espaciais baseados em histórico ao derivar a H-STMVP. Os n candidatos não precisam ser uma sequência de decodificação essencialmente consecutiva. Os n candidatos podem ser selecionados aleatoriamente ou de acordo com alguma regra.
[0344] Por conseguinte, a Equação 18 pode ser representada usando um método mais geral, como a Equação 23 abaixo.
[Equação 23]
[0345] Em outra modalidade, supondo que 5 candidatos espaciais sejam usados, a influência do aumento dos candidatos espaciais para gerar um candidato de H-STMVP pode ser minimizada e um candidato espacial e candidato temporal podem ser apropriadamente incorporados aprimorando-se o peso aplicado a um candidato temporal.
[0346] Por conseguinte, para este fim, após os candidatos espaciais terem sua média calculada juntos usando a Equação 24, o objetivo acima pode ser alcançado calculando-se a média de MV-TMVP usando um resultado da média.
[Equação 24]
[0347] Em uma modalidade da revelação, propõe-se um método para adicionar peso (ou fator de ponderação) a um candidato de vetor de movimento usado para derivar H-STMVP. Neste caso, o peso pode ser determinado empiricamente ou pode ser determinado considerando-se uma distância temporal até um quadro de referência fixo ou pode ser determinado considerando-se uma localização em uma tabela de histórico. Por exemplo, um novo candidato pode ter maior peso do que um candidato anterior.
[0348] Isto é, na presente modalidade, a Equação 18 pode ser representada como a Equação 25 abaixo.
[Equação 25]
[0349] Neste caso, o peso pode ter o mesmo valor ou um valor distribuído de forma desigual.
[0350] Em uma modalidade da revelação, propõe-se um método para escalonar um vetor de movimento usado para derivar um candidato de H-STMVP como uma única imagem de referência.
[0351] A FIG. 34 é um diagrama para descrever um método para derivar um candidato H-STMVP usando vetores de movimento que se referem a diferentes imagens de referência de acordo com uma modalidade da revelação.
[0352] Referindo-se à FIG. 34, assume-se que os candidatos MV_L, MV_L-1 e MV_TMVP refiram-se a (ou indiquem) respectivas imagens de referência diferentes. Ou seja, a FIG. 34 ilustra que os candidatos usados para gerar candidatos de H-STMVP podem ter índices de referência diferentes e, como resultado, possuem quadros de referência diferentes.
[0353] A média das Equações 18 a 25 pode se tornar um valor de resultado desigual, pois um quadro possuindo um quadro de referência próximo pode essencialmente ter maior influência sobre o vetor de movimento de H-STMVP. Por conseguinte, propõe-se um método para escalonar todos os vetores de movimento em um único quadro de referência para uma comparação e incorporação igual.
[0354] Neste caso, o codificador pode determinar qual quadro único executado como parte da otimização de RD é mais adequado para ser usado como um quadro de referência. Em uma modalidade, um quadro de referência selecionado pode ser selecionado em um cabeçalho de fatia similar a um índice de arranjo de TMVP presente em um cabeçalho de fatia. Por exemplo, um quadro de referência a ser usado pode ser gerado usando uma regra fixa. Como alternativa, por exemplo, uma lista pode ser escalonada como o primeiro quadro de referência disponível a partir de L0 ou uma lista pode ser escalonada com base em uma contagem de sequência de imagens atual.
[0355] Em uma modalidade, de modo a alcançar o objetivo acima, o codificador pode transmitir, ao decodificador, informação para uma única imagem fixa usando uma sintaxe de alto nível (HLS) que pode ser parte de um conjunto de parâmetros de sequência, um conjunto de parâmetros de imagem, um cabeçalho de fatia, uma unidade de árvore de codificação e/ou outro cabeçalho de dados. Por exemplo, uma estrutura de sintaxe de alto nível, tal como a Tabela 6 e/ou a Tabela 7 abaixo, pode ser definida.
[Tabela 6] high_level_parameter_set() { Descrição ... set_HSTMVP_ref_pic_flag u(1) ...
[0356] Referindo-se à Tabela 6, set_HSTMVP_ref_pic_flag igual a 1 indica que set_HSTMVP_idx está presente no cabeçalho de fatia de uma imagem não-IDR no CVS. set_HSTMVP_ref_pic_flag igual a 0 indica que set_HSTMVP_idx não está presente em um cabeçalho de fatia.
[Tabela 7] slice_segment_header() { Descrição ... If(set_HSTMVP_ref_pic_flag) u(1) slice_HSTMVP_idx ... } ...
[0357] Referindo-se à Tabela 7, slice_HMVP_idx designa um índice de referência. Em uma modalidade, um índice de referência pode ser selecionado com respeito a uma lista L0.
[0358] Nas modalidades da revelação, modalidades mais detalhadas serão descritas com respeito às modalidades descritas acima. Especificamente, propõe-se um método para utilizar indiretamente um candidato de HMVP afim usando informação de posição e dimensional de modo a calcular ou derivar o CPMV de um bloco atual. Na revelação, o CPMV derivado pode ser chamado de candidato de HVMP afim herdado. O candidato de HMVP afim herdado de acordo com uma modalidade da revelação pode ser usado no processo de geração de lista de combinação afim e/ou no processo de lista de AMVP afim descrito acima.
[0359] A FIG. 35 é um diagrama ilustrando uma localização de um bloco para derivar um candidato HMVP afim herdado de acordo com uma modalidade da revelação.
[0360] Referindo-se à FIG. 35, o CPMV do bloco atual 3501 pode ser derivado com base na localização e dimensão de um candidato de HMVP afim de maneira similar a um método para derivar um CPMV herdado geral a partir dos blocos vizinhos. Ou seja, o codificador/decodificador pode derivar os vetores de movimento dos pontos de controle do bloco atual 3501 baseado na informação de posição e dimensão (por exemplo, largura e altura) do bloco de referência 3501 que é um candidato de HMVP afim.
[0361] Como uma modalidade, o CPMV da HMVP afim herdada do bloco atual pode ser derivada usando as Equações 26 e 27 abaixo.
[Equação 26] V0x = VB0x + (VB2_x - VB0x ) * ( posCurCU_Y - posRefCU_Y ) / RefCU_height + (VB1x - VB0x ) * (posCurCU_X - posRefCU_X) / RefCU_width [Equação 27] V0y = VB0y + (VB2_y - VB0y ) * (posCurCU_Y - posRefCU_Y) / RefCU_height + (VB1y - VB0y ) * (posCurCU_X - posRefCU_X) / RefCU_width
[0362] Nas Equações 26 e 27, posCurCU_Y representa o valor de coordenada vertical da amostra superior esquerda do bloco atual 3501, e posRefCU_Y representa o valor de coordenada vertical da amostra superior- esquerda do bloco de referência 3502. posCurCU_X representa o valor de coordenada horizontal da amostra superior-esquerda do bloco atual 3501, e posRefCU_X representa o valor de coordenada horizontal da amostra superior- esquerda do bloco de referência 3502. RefCU_height representa a altura do bloco de referência 3502, e RefCU_width representa a largura do bloco de referência
3502.
[0363] Em uma modalidade da revelação, ao adicionar um candidato de HMVP afim (HMVP direta ou herdada), podem-se adicionar restrições para selecionar um candidato de HMVP afim que pode ser usado para gerar uma lista de combinação afim ou uma lista de AMVP afim.
[0364] Como exemplo, um candidato de HMVP afim pode ser adicionado à lista de combinação afim ou à lista de AMVP afim somente quando o candidato de HMVP afim estiver adjacente ao bloco atual.
[0365] Como outro exemplo, um candidato de HMVP afim pode ser adicionado à lista de combinação afim ou à lista de AMVP afim somente quando o candidato de HMVP afim estiver localizado (ou existir) dentro de uma distância específica a partir do bloco atual. Por exemplo, a distância específica pode ser uma distância de pixel predefinida. O codificador/decodificador pode determinar se o candidato de HMVP afim está localizado dentro de uma distância específica predefinida para determinar se o candidato de HMVP afim está disponível.
[0366] Como outro exemplo, o candidato de HMVP afim pode ser adicionado à lista de combinação afim ou à lista de AMVP afim somente quando o candidato de HMVP afim estiver localizado (ou existir) em uma localização específica com base no bloco atual. Por exemplo, quando o candidato de HMVP afim estiver presente na localização específica, pode ser um caso em que o candidato de HMVP afim é um bloco vizinho esquerdo ou superior do bloco atual.
[0367] Para uma LUT de HMVP afim que possui N elementos, o processo de verificação descrito acima para todos os elementos ou os primeiro M elementos pode ser realizado até a lista de combinação ou AMVP estar cheia ou até que um número predefinido de candidatos de HMVP seja alcançado.
[0368] Em uma modalidade da revelação, propõe-se um método no qual o candidato de HMVP afim é usado para substituir um candidato afim herdado que já existia na lista de combinação afim e/ou na lista de AMVP afim.
[0369] A FIG. 36 é um diagrama ilustrando uma lista de combinação afim ou lista de AMVP afim de acordo com uma modalidade da revelação.
[0370] Referindo-se à FIG. 36, o codificador/decodificador pode substituir o candidato herdado existente na lista de combinação afim ou na lista de AMVP afim existente por um candidato de HMVP afim herdado. Ou seja, quando um modo de combinação baseado em sub-bloco é aplicado a um bloco atual, o codificador / decodificador pode gerar uma lista de candidatos de combinação baseada em sub- bloco usando o candidato afim herdado e um candidato afim já construído, derivar um candidato de HMVP afim herdado e substituir pelo menos um candidato afim herdado incluído na lista de candidatos de combinação baseada em sub-bloco pelo candidato de HMVP afim herdado.
[0371] Além disso, em uma modalidade da revelação, uma tabela de consulta de HMVP afim (LUT) pode ser inicializada no começo de uma fatia, linha de CTU ou CTU. Através disto, é possível melhorar o desempenho do processamento paralelo.
[0372] Daqui em diante, nas modalidades a seguir, propõe-se um método para reduzir o pior número de verificações de poda da HMVP.
[0373] Em uma modalidade da revelação, quando um candidato de HMVP é adicionado a uma lista de combinação, o número de verificações de poda pode ser determinado com base no número de candidatos disponíveis na lista de combinação e no número de candidatos de HMVP que podem ser adicionados à lista de combinação. Daqui em diante, ao descrever as modalidades da revelação, por conveniência de descrição, as variáveis são definidas como se segue.
[0374] - NST: o número de candidatos disponíveis (ou existentes) na lista de combinação
[0375] - NHMVP: o número de candidatos de HMVP na tabela (isto é, tamanho da tabela de HMVP)
[0376] - NmrgToBeAdded: o número de candidatos de HMVP adicionados à lista de combinação
[0377] - NHMVPChecked: o número de candidatos de HMVP que são verificados por poda
[0378] - Nmax_hmvp_prunning: o número de verificações de poda no pior cenário necessário para adicionar um candidato de HMVP à lista de combinação
[0379] Em uma modalidade da revelação, o candidato de HMVP pode ser adicionado à lista de combinação de acordo com as seguintes condições.
[0380] - Primeira condição: Quando a LUT é previamente podada (ou seja, não há mv idêntico entre os candidatos na LUT de HMVP)
[0381] - Segunda condição: Quando o tamanho da tabela LUT de HMVP é 6
[0382] - Terceira condição: Quando o número máximo de candidatos de combinação disponíveis (ou existentes) para adicionar um candidato de HMVP à lista de combinação é 4. Ou seja, isto é quando o número de candidatos de combinação na lista de combinação é menor do que o valor obtido subtraindo-se 1 do tamanho máximo da lista de combinação (ou o número máximo de candidatos de combinação). Por exemplo, o tamanho máximo da lista de combinação pode ser 6, e se o número de candidatos de combinação atualmente disponíveis for menor do que 5, um candidato de HMVP pode ser adicionado (ou inserido). Em outras palavras, o candidato de HMVP pode ser adicionado somente até o índice de lista de combinação 5.
[0383] Quando um candidato de HMVP é adicionado à lista de combinação (isto é, se torna um candidato de combinação), cada candidato de HMVP pode necessitar de uma verificação de poda para remover a duplicação entre os candidatos de combinação. De acordo com a técnica de compressão de imagem existente, o pior número de verificação de poda necessário para adicionar HMVP à lista de combinação pode ser calculado como mostra a Tabela 8 abaixo.
[Tabela 8]
[0384] Referindo-se à Tabela 8, de acordo com a técnica de compressão de imagem existente, a verificação de poda pode ser realizada em seis candidatos de HMVP na tabela de HMVP (ou lista de HMVP, lista de candidatos de HMVP).
[0385] Especificamente, 1) quando há um candidato na lista de combinação, os candidatos de HMVP adicionados à lista de combinação podem ser 4. Em seguida, as verificações de poda para seis candidatos de HMVP podem ser realizadas. Neste caso, o pior número de verificações de poda pode ser 4. 2) Quando há dois candidatos na lista de combinação, os candidatos de HMVP adicionados à lista de combinação podem ser 3. Em seguida, as verificações de poda para seis candidatos de HMVP podem ser realizadas. Neste caso, o pior número de verificações de poda pode ser 7. 3) Quando há três candidatos na lista de combinação, os candidatos de HMVP adicionados à lista de combinação podem ser 2. Em seguida, as verificações de poda para seis candidatos de HMVP podem ser realizadas. Neste caso, o pior número de verificações de poda pode ser 9. 4) Quando há quatro candidatos na lista de combinação, os candidatos de HMVP adicionados à lista de combinação podem ser 1. Em seguida, as verificações de poda para seis candidatos de HMVP podem ser realizadas. Neste caso, o pior número de verificações de poda pode ser 10.
[0386] Em uma modalidade da revelação, propõe-se um método para reduzir o pior número de verificações de poda descrito acima. Se houver mais candidatos de combinação na lista de combinação, uma vez que o efeito de codificação da HMVP diminui à medida que os candidatos de combinação (isto é, candidatos não-HMVP) aumentam, o número de candidatos de HMVP a serem podados pode precisar ser reduzido. Por conseguinte, na modalidade da revelação, o codificador/decodificador pode definir o número de candidatos de HMVP a serem verificados (NHMVPChecked) igual ao número de candidatos de HMVO disponíveis a serem adicionados (NmrgToBeAdded) de modo a reduzir o pior número de verificações de poda. Neste caso, o pior número de verificações de poda pode ser calculado como mostra a Tabela 9 abaixo.
[Tabela 9]
[0387] Referindo-se à Tabela 9, o pior número de verificações de poda para HMVP pode ser reduzido de 10 para 6 comparado às técnicas de compressão de imagem convencionais.
[0388] Referindo-se à Tabela 9, em uma modalidade, 1) quando há um candidato na lista de combinação, os candidatos de HMVP adicionados à lista de combinação podem ser 4. Em seguida, as verificações de poda para quatro candidatos de HMVP podem ser realizadas. Neste caso, o pior número de verificações de poda pode ser 4. 2) Quando há dois candidatos na lista de combinação, os candidatos de HMVP adicionados à lista de combinação podem ser
3. Em seguida, as verificações de poda para três candidatos de HMVP podem ser realizadas. Neste caso, o pior número de verificações de poda pode ser 6. 3) Quando há três candidatos na lista de combinação, os candidatos de HMVP adicionados à lista de combinação podem ser 2. Em seguida, as verificações de poda para dois candidatos de HMVP podem ser realizadas. Neste caso, o pior número de verificações de poda pode ser 6. 4) Quando há quatro candidatos na lista de combinação, os candidatos de HMVP adicionados à lista de combinação podem ser 1. Em seguida, as verificações de poda para um candidato de HMVP podem ser realizadas. Neste caso, o pior número de verificações de poda pode ser 4.
[0389] Em uma modalidade da revelação, de modo a reduzir o pior número de verificações de poda, o codificador / decodificador pode definir o número de candidatos de HMVP (NHMVPChecked) a serem verificados por poda para ser o mesmo que a soma do número de candidatos de HMVP disponíveis (NmrgToBeAdded) a serem adicionados e K. Aqui, K representa um valor constante predefinido. Como um exemplo, quando K é 1, o pior número de verificação de poda pode ser calculado como mostra a Tabela 10 abaixo.
[Tabela 10]
[0390] Referindo-se à Tabela 10, em uma modalidade, 1) quando há um candidato na lista de combinação, os candidatos de HMVP adicionados à lista de combinação podem ser 4. Em seguida, as verificações de poda para cinco candidatos de HMVP podem ser realizadas. Neste caso, o pior número de verificações de poda pode ser 4. 2) Quando há dois candidatos na lista de combinação, os candidatos de HMVP adicionados à lista de combinação podem ser
3. Em seguida, as verificações de poda para quatro candidatos de HMVP podem ser realizadas. Neste caso, o pior número de verificações de poda pode ser 7. 3)
Quando há três candidatos na lista de combinação, os candidatos de HMVP adicionados à lista de combinação podem ser 2. Em seguida, as verificações de poda para três candidatos de HMVP podem ser realizadas. Neste caso, o pior número de verificações de poda pode ser 8. 4) Quando há quatro candidatos na lista de combinação, os candidatos de HMVP adicionados à lista de combinação podem ser 1. Em seguida, as verificações de poda para dois candidatos de HMVP podem ser realizadas. Neste caso, o pior número de verificações de poda pode ser 7.
[0391] Em uma modalidade da revelação, de modo a reduzir a verificação de poda em um pior caso, o número de candidatos de HMVP a serem verificados (NHMVPChecked) pode ser definido como a Equação 28 abaixo.
[Equação 28]
[0392] Na Equação 28, C representa um valor constante predefinido. Se C for 2, o pior número de verificação de poda pode ser calculado como mostra a Tabela 11 abaixo.
[Tabela 11]
[0393] Referindo-se à Tabela 11, em uma modalidade, 1) quando há um candidato na lista de combinação, os candidatos de HMVP adicionados à lista de combinação podem ser 4. Em seguida, as verificações de poda para seis candidatos de HMVP podem ser realizadas. Neste caso, o pior número de verificações de poda pode ser 4. 2) Quando há dois candidatos na lista de combinação, os candidatos de HMVP adicionados à lista de combinação podem ser 3. Em seguida, as verificações de poda para seis candidatos de HMVP podem ser realizadas. Neste caso, o pior número de verificações de poda pode ser 7. 3) Quando há três candidatos na lista de combinação, os candidatos de HMVP adicionados à lista de combinação podem ser 2. Em seguida, as verificações de poda para quatro candidatos de HMVP podem ser realizadas. Neste caso, o pior número de verificações de poda pode ser 9. 4) Quando há quatro candidatos na lista de combinação, os candidatos de HMVP adicionados à lista de combinação podem ser 1. Em seguida, as verificações de poda para dois candidatos de HMVP podem ser realizadas. Neste caso, o pior número de verificações de poda pode ser 7.
[0394] Quando a HMVP é adicionada à lista de combinação e/ou lista de AMVP, a poda precisa ser realizada novamente para evitar a duplicação com os candidatos existentes na lista de combinação e/ou na lista de AMVP. Se a LUT de HMVP já estiver podada pela operação FIFO limitada como descrito na FIG. 29 acima, ao inserir (ou adicionar) o candidato de HMVP à lista de combinação, a comparação (ou verificação de poda) entre os candidatos de HMVP pode não ser necessária. Por esta razão, o número de verificações de poda pode ser reduzido ao utilizar a tabela FIFO não-limitante como descrito na FIG. 28 acima. Isso deve ao fato de que as verificações de poda entre os candidatos de HMVP são necessárias ao inserir candidatos de HMVP na lista de combinação. Como descrito acima, na revelação, a LUT de HMVP não se limita a seu nome, e pode ser chamada de LUT, tabela, tabela de HMVP, tabela de candidatos de HMVP, armazenamento temporário, armazenamento temporário de HMVP, armazenamento temporário de candidatos de HMVP, lista de HMVP, lista de candidatos de HMVP, lista de candidatos de combinação de HMVP, lista de candidatos de combinação baseado em histórico, etc.
[0395] Em uma modalidade da revelação, o tamanho da tabela de consulta de HMVP (LUT) considerando um processo de inserção de candidato de HMVP para construir uma lista de combinação e/ou uma lista de AMVP pode ser definido.
Especificamente, os candidatos de HMVP podem ser adicionados até um tamanho de lista de combinação predefinido. Por exemplo, quando o tamanho máximo da lista de combinação é definido como 6, a HMVP pode não ser o 6o candidato Se 6 candidatos de combinação estiverem disponíveis (ou presentes) na lista de combinação, o candidato de HMVP pode não ser adicionado. Neste caso, o sexto candidato pode ser selecionado dentre outros candidatos além da HMVP (ou de acordo com outro método). Portanto, considerando o processo de inserção de candidato de HMVP descrito acima, em uma modalidade da revelação, propõe-se o seguinte método de seleção de tamanho de LUT de HMVP.
[0396] Em uma modalidade, o tamanho da tabela LUT de HMVP pode ser definido ou ajustado igual a (MaxNumMergeCand-K). Aqui, MaxNumMergeCand indica a lista de candidatos de combinação máxima (ou o número máximo de candidatos incluídos na lista de candidatos de combinação ou o número máximo de candidatos de combinação), e, neste momento, MaxNumMergeCand pode ser definido como 6. K representa uma constante predefinida. Por exemplo, K pode ser 1, e o tamanho LUT de HMVP pode ser 5.
[0397] De acordo com uma modalidade da revelação, ao limitar HMVP a MaxNumMergeCand-K (como descrito acima, por exemplo, K é 1), o pior número de verificações de poda (ou pior caso) pode ser reduzido adicionando-se HMVP à lista de combinação e/ou à tabela de HMVP. (operação FIFO limitada descrita anteriormente na FIG. 29). Além disso, de acordo com uma modalidade da revelação, a memória para armazenar a LUT HMVP pode ser reduzida.
[0398] Em uma modalidade da revelação, um processo de atualização, tal como a modalidade descrita abaixo, pode ser aplicado a uma tabela possuindo candidatos de movimento de HMVP em consideração ao tamanho de tabela de HMVP descrito acima. As modalidades a seguir são exemplos do processo de atualização de tabela de HMVP, e as modalidades da revelação não se limitam aos mesmos.
processo de atualização de tabela HMVP
[0399] Primeiro, a entrada do processo de atualização de tabela de HMVP pode ser definida como se segue.
[0400] - Vetores de movimento mvL0 e mvL1
[0401] - Índices de referência refIdxL0 e refIdxL1
[0402] - Sinalizadores de utilização da lista de predição predFlagL0 e preFlagL1
[0403] A saída deste processo de atualização pode ser uma matriz modificada da lista de candidatos de HMVP. Neste processo, mvCand representa uma variável indicando um candidato de vetor de movimento possuindo os vetores de movimento, os índices de referência, e os sinalizadores de utilização da lista de predição.
[0404] Este processo de atualização pode ser realizado nas seguintes etapas.
[0405] 1. Uma variável identicalCandExist é definida como falsa, e uma variável tempIdx é definida como 0. Aqui, identicalCandExist é uma variável indicando se a mesma informação de movimento existe na lista de candidatos de HMVP, e tempIdx é uma variável indicando o índice do candidato de HMVP, na lista de candidatos de HMVP, possuindo a mesma informação de movimento que o vetor de movimento atual.
[0406] 2. Se HMVPCandNum for maior do que 0, para cada índice HMVPIdx com HMVPIdx = 0..HMVPCandNum–1, as seguintes etapas podem ser aplicadas até que a variável identicalCandExist seja verdadeira. Aqui, HMVPCandNum representa o número de candidatos de HMVP na lista de candidatos de HMVP, e HMVPIdx representa o índice atribuído aos candidatos de HMVP na lista de candidatos de
[0407] - Se mvCand tiver o mesmo vetor de movimento e o mesmo índice de referência que HMVPCandList[HMVPIdx] (isto é, candidato de HMVP com HMVPIdx na lista de candidatos de HMVP), identicalCandExist pode ser definido como verdadeiro e tempIdx pode ser definido como HMVPIdx.
[0408] 3. Adicionalmente, a lista de candidatos de HMVP pode ser atualizada de acordo com as seguintes etapas.
[0409] (1) Se identicalCandExist for verdadeiro ou HMVPCandNum for MaxNumMergeCand-K, as seguintes etapas podem ser aplicadas. Aqui, MaxNumMergeCand é uma variável indicando o tamanho da lista de combinação (ou lista de candidatos de combinação) (ou o número máximo de candidatos da lista de combinação, o número máximo de candidatos de combinação), e K é uma constante arbitrária. Em uma modalidade, K pode ser predefinido. Adicionalmente, em uma modalidade, K pode ser definido como 1, e MaxNumMergeCand-K pode ser 5, uma vez que o valor de MaxNumMergeCand é definido como 6. Além disso, em uma modalidade, MaxNumMergeCand-K pode ser definido como 5. Por exemplo, se identicalCandExist for verdadeiro ou HMVPCandNum for 5, as seguintes etapas podem ser aplicadas.
[0410] - Para cada índice idx com idx = (tempIdx + 1) .. (HMVPCandNum-1), HMVPCandList [idx−1] pode ser definido como HMVPCandList [idx]. Ou seja, o índice do candidato de HMVP possuindo um índice após tempIdx pode ser definido como um valor cujo valor é reduzido por um.
[0411] -HMVPCandList [HMVPCandNum-1] pode ser definido como mvCand.
[0412] (2) Caso contrário (ou seja, se identicalCandExist for falso, e HMVPCandNum for menor do que MaxNumMergeCand-K), as seguintes etapas podem ser aplicadas. Como descrito acima, em uma modalidade, MaxNumMergeCand-K pode ser definido como 5. Por exemplo, caso contrário (ou seja, identicalCandExist é falso, e HMVPCandNum é menor do que 5), as seguintes etapas podem ser aplicadas.
[0413] -HMVPCandList[HMVPCandNum++] pode ser definido como mvCand.
[0414] Como exemplo, este processo de atualização pode ser chamado quando a fatia atual é uma fatia P e ou B. Neste momento, a variável HMVPCandNum é definida como 0 e a variável HMVPCandList pode ser definida como uma matriz de elementos de MaxNumMergeCand-K. Como descrito acima, em uma modalidade, MaxNumMergeCand-K pode ser definido como 5. Neste momento, neste momento, a variável HMVPCandNum pode ser definida como 0 e a variável HMVPCandList pode ser definida como uma matriz de elementos de 5.
[0415] Daqui em diante, outro exemplo do processo de atualização de tabela de HMVP será descrito.
[0416] Primeiro, a entrada do processo de atualização pode ser definida como se segue.
[0417] - Vetores de movimento mvL0 e mvL1
[0418] - Índices de referência refIdxL0 e refIdxL1
[0419] - Sinalizadores de utilização da lista de predição predFlagL0 e preFlagL1
[0420] A saída deste processo de atualização pode ser uma matriz modificada da lista de candidatos de HMVP. Neste processo, mvCand representa uma variável indicando um candidato de vetor de movimento possuindo os vetores de movimento, os índices de referência, e os sinalizadores de utilização da lista de predição.
[0421] Este processo de atualização pode ser realizado nas seguintes etapas.
[0422] 1. Para cada índice HMVPIdx com HMVPIdx = 0..HMVPCandNum-1, as seguintes etapas podem ser aplicadas em ordem até a variável sameCand se tornar verdadeira. Aqui, sameCand é um variável indicando se a mesma informação de movimento existe na lista de candidatos de HMVP.
[0423] - Se mvCand tiver o mesmo vetor de movimento e o mesmo índice de referência que HMVPCandList[HMVPIdx], sameCand é definido como verdadeiro.
[0424] - Senão, sameCand é definido como falso.
[0425] -HMVPIdx++ (i.e., HMVPIdx é aumentado por 1)
[0426] 2. A variável tempIdx é definida como HMVPCandNum.
[0427] 3. Se sameCand for verdadeiro ou HMVPCandNum for MaxNumMergeCand–K, para cada índice tempIdx com tempIdx = (sameCand? HMVPIdx: 1)..HMVPCandNum-1, HMVPCandList[tempIdx] é copiado ou definido como HMVPCandList[tempIdx-1]. K é uma constante arbitrária. Em uma modalidade, K pode ser predefinido. Adicionalmente, em uma modalidade, K pode ser definido como 1, e MaxNumMergeCand-K pode ser 5, uma vez que o valor de MaxNumMergeCand é definido como 6. Além disso, em uma modalidade, MaxNumMergeCand-K pode ser definido como 5.
[0428] 4. mvCand é copiado para HMVPCandList[tempIdx].
[0429] 5. Se HMVPCandNum for menor do que MaxNumMergeCand–K, HMVPCandNum aumenta em um. Como descrito acima, em uma modalidade, MaxNumMergeCand-K pode ser definido como 5.
[0430] As modalidades supramencionadas da revelação podem ser divididas e descritas, por conveniência de descrição, mas a revelação não se limita às mesmas. Isto é, as modalidades descritas acima podem ser realizadas de forma independente ou uma mais diversas modalidades podem ser combinadas e realizadas.
[0431] A FIG. 37 é um fluxograma ilustrando um método para processar um sinal de vídeo baseado em uma predição de vetor de movimento baseado em histórico de acordo com uma modalidade à qual a revelação é aplicada.
[0432] Referindo-se à FIG. 37, um decodificador é basicamente descrito por conveniência de descrição, mas a revelação não se limita ao mesmo. Um método de processamento de um sinal de vídeo baseado em predição de vetor de movimento baseado em histórico de acordo com uma modalidade da revelação pode ser executado de maneira idêntica em um codificador e em um decodificador.
[0433] No método de processamento de um sinal de vídeo baseado em predição de vetor de movimento baseado em histórico, o decodificador configura uma lista de candidatos de combinação com base nos blocos vizinhos de um bloco atual (S3701).
[0434] O decodificador adiciona um candidato de combinação baseado em histórico do bloco atual à lista de candidatos de combinação (S3702).
[0435] O decodificador obtém um índice de combinação indicando um candidato de combinação usado para predição inter do bloco atual na lista de candidatos de combinação (S3703).
[0436] O decodificador gera amostras de predição do bloco atual baseado na informação de movimento do candidato de combinação indicado pelo índice de combinação (S3704).
[0437] O decodificador atualiza uma lista de candidatos de combinação baseado em histórico com base na informação de movimento (S3705).
[0438] Como descrito acima, como uma modalidade, o candidato de combinação baseado em histórico pode ser adicionado à lista de candidatos de combinação se o candidato de combinação baseado em histórico tiver informações de movimento não sobrepondo-se à de um candidato de combinação predefinido, dentre os candidatos de combinação incluído na lista de candidatos de combinação.
[0439] Como descrito acima, como uma modalidade, a lista de candidatos de combinação baseado em histórico pode ser definida como tendo um tamanho determinado com base no número máximo de candidatos de combinação da lista de candidatos de combinação.
[0440] Como descrito acima, como uma modalidade, a lista de candidatos de combinação baseado em histórico pode ser definida como tendo um tamanho de um valor obtido subtraindo-se 1 do número máximo de candidatos de combinação da lista de candidatos de combinação.
[0441] Como descrito acima, como uma modalidade, o tamanho da lista de candidatos de combinação baseado em histórico pode ser definido como 5.
[0442] Como descrito acima, como uma modalidade, o candidato de combinação baseado em histórico pode ser adicionado à lista de candidatos de combinação se o candidato de combinação baseado em histórico tiver informações de movimento não sobrepondo-se à de um número específico predefinido de candidatos de combinação, dentre os candidatos de combinação incluídos na lista de candidatos de combinação.
[0443] Como descrito acima, como uma modalidade, o candidato de combinação baseado em histórico pode ser adicionado à lista de candidatos de combinação se o candidato de combinação baseado em histórico tiver informações de movimento não sobrepondo-se à de um candidato espacial específico incluído na lista de candidatos de combinação.
[0444] Como descrito acima, como uma modalidade, o candidato de combinação baseado em histórico pode ser derivado a partir de um número predefinido de candidatos dentro de uma lista de candidatos de combinação baseado em histórico.
[0445] Como descrito acima, como uma modalidade, o decodificador pode adicionar um vetor de movimento zero à lista de combinação quando a lista de combinação não satisfaz o número máximo de listas de combinação.
[0446] As modalidades descritas na revelação podem ser implementadas e realizadas em um processador, em um microprocessador, em um controlador ou em um chip. Por exemplo, as unidades de função ilustradas nos desenhos podem ser implementadas e realizadas em um computador, um processador, um microprocessador, um controlador ou um chip.
[0447] Furthermore, the decoder and the encoder to which the disclosure is applied may be included in a multimedia broadcasting transmission and reception device, a mobile communication terminal, a home cinema video device, a digital cinema video device, a camera for monitoring, a video dialogue device, a real-time communication device such as video communication, a mobile streaming device, a storage medium, a camcorder, a video on-demand (VoD) service provision device, an over the top (OTT) video device, an Internet streaming service provision device, a three-dimensional (3D) video device, a video telephony device, and a medical video device, and may be used to process a video signal or a data signal. For example, the OTT video device may include a game console, a Blueray player, Internet access TV, a home theater system, a smartphone, a tablet PC, and a digital video recorder (DVR).
[0448] Adicionalmente, o método de processamento ao qual a revelação é aplicada pode ser produzido na forma de um programa executado por um computador, e pode ser armazenado em um meio de gravação legível por computador. Dados multimídia possuindo uma estrutura de dados de acordo com a revelação também podem ser armazenados em um meio de armazenamento legível por computador. O meio de gravação legível por computador inclui todos os tipos de dispositivos de armazenamento nos quais dados legíveis por computador são armazenados. O meio de gravação legível por computador pode incluir um disco Blueray (BD), um barramento serial universal (USB), uma ROM, uma PROM, uma EPROM, uma EEPROM, uma RAM, um CD-ROM, uma fita magnética, um disco flexível, e um dispositivo de armazenamento de dados ópticos, por exemplo.
Adicionalmente, o meio de gravação legível por computador inclui meios implementados na forma de portadoras (por exemplo, transmissão através da Internet). Adicionalmente, um fluxo de bits gerado usando um método de codificação pode ser armazenado em um meio de gravação legível por computador ou pode ser transmitido através de redes de comunicação com fio e sem fio.
[0449] Adicionalmente, uma modalidade da revelação pode ser implementada como um produto de programa de computador usando código de programa. O código de programa pode ser executado por um computador de acordo com uma modalidade da revelação. O código de programa pode ser executado por um computador de acordo com uma modalidade da revelação.
[0450] O aparelho de decodificação e o aparelho de codificação aos quais a revelação é aplicada podem ser incluídos em um dispositivo digital. O termo “dispositivo digital” inclui todos os dispositivos digitais capazes de realizar pelo menos um dentre transmissão, recepção, processamento e saída, por exemplo, de dados, conteúdo e serviços. Aqui, o processamento de dados, conteúdo, serviço, etc. por um dispositivo digital inclui uma operação de codificar e/ou decodificar dados, conteúdo, serviço, entre outros. O dispositivo digital é emparelhado ou conectado (daqui em diante chamado de “emparelhamento”) com outros dispositivos digitais, servidores externos, etc. através de uma rede com fio/sem fio para transmitir e receber dados, e convertê-los, se necessário.
[0451] O dispositivo digital inclui, por exemplo, um dispositivo fixo (ou um dispositivo parado) tal como uma TV em rede, uma HBBTV (TV de Banda Larga de Difusão Híbrida), uma TV smart (inteligente), uma IPTV (televisão de protocolo de Internet), um PIC, etc. e um dispositivo móvel (ou um dispositivo portátil), tal como um PDA (Assistente Digital Pessoal), um smartphone, um PC tablet, e um notebook.
Na revelação descrita posteriormente, por conveniência, a FIG. 39 mostra e descreve uma TV digital como uma modalidade para o dispositivo digital e a FIG. 40 mostra e descreve um dispositivo móvel como uma modalidade do dispositivo digital.
[0452] Enquanto isso, o termo “rede com fio/sem fio" descrito aqui se refere a uma rede de comunicação que oferece suporte a vários padrões ou protocolos de comunicação para interconexão e/ou transmissão e recepção de dados entre dispositivos digitais ou entre dispositivos digitais e servidores externos. Essas redes com fio/sem fio podem incluir tanto redes de comunicações suportadas atualmente quanto futuros e protocolos de comunicação para as mesmas, e podem ser formadas por um padrão de comunicação ou protocolos para conexão com fio, tal como USB (Barramento Serial Universal), CVBS (Composite Video Banking Sync), Componente, S-Video (Analógico), DVI (Interface Visual Digital), HDMI (Interface Multimídia de Alta Definição), RGB, D-SUB, entre outros, são formadas por um padrão de comunicação para conexão sem fio, tal como Bluetooth, Identificação por Radiofrequência (RFID), Associação de Dados de Infravermelho (IrDA), Banda Ultra- Larga (UWB), ZigBee, Aliança para Redes Domésticas Digitais (DLNA), LAN Sem Fio (WLAN) (Wi-Fi), Wibro (Banda Larga sem fio), Wimax (Interoperabilidade Mundial para Acesso por Microondas), HSDPA (Acesso a Pacote de Downlink de Alta Velocidade), LTE (Evolução de Longo Prazo0, Wi-Fi Direct (Direct), etc.
[0453] Daqui em diante, no caso de simplesmente se referir a um dispositivo digital na revelação, ele pode significar um dispositivo fixo ou um dispositivo móvel ou incluir ambos, dependendo do contexto.
[0454] Enquanto isso, o dispositivo digital é, por exemplo, um dispositivo inteligente que oferece suporte a uma função de recepção de difusão, uma função de computador, e pelo menos uma entrada externa, e pode oferecer suporte a correio eletrônico, navegação na Internet, acesso a banco online, jogos e aplicativos através da rede com fio / sem fio descrita acima. Além disso, o dispositivo digital pode incluir uma interface para oferecer suporte a pelo menos um meio de entrada ou de controle (daqui em diante denominado meio de entrada), tal como um dispositivo de entrada operado manualmente, uma tela de toque, e um controle remoto espacial. O dispositivo digital pode usar um sistema operacional (OS) de finalidade geral padronizado. Por exemplo, o dispositivo digital pode adicionar,
excluir, modificar e atualizar vários aplicativos em um núcleo de OS de finalidade geral, e pode configurar e oferecer um ambiente mais amigável ao usuário através deles.
[0455] Enquanto isso, a entrada externa descrita na revelação inclui dispositivos de entrada externos, ou seja, todos os meios de entrada ou dispositivos digitais que são conectados com fio/sem fio aos dispositivos digitais descritos acima e transmitem/recebem dados através dos mesmos. Aqui, a entrada externa pode incluir todos os dispositivos, tal como uma interface multimídia de alta definição (HDMI), um dispositivo de jogo, tal como um playstation ou um X-Box, um smartphone, um PC tipo tablet, uma impressora ou uma TV smart (inteligente).
[0456] Além disso, o termo “servidor” descrito na revelação inclui um cliente, isto é, todos os dispositivos ou sistemas digitais que fornecem dados aos dispositivos digitais descritos acima, e é chamado de processador. Exemplos de tal servidor incluem um servidor de portal que fornece uma página na Web (Rede) ou conteúdo da Rede, um servidor de publicidade que fornece dados de publicidade, um servidor de conteúdo que fornece conteúdo, e um servidor de serviço de mídia social (SNS), um servidor de serviço ou servidor de fabricação fornecido por um fabricante, etc.
[0457] Adicionalmente, “canal” descrito aqui significa um caminho, meio, etc.
para transmitir e receber dados, e pode ser exemplificado por um canal de difusão.
Aqui, o canal de difusão é expressado em termos de um canal físico, um canal virtual, e um canal lógico de acordo com a ativação da difusão digital. O canal de difusão pode ser chamado de rede de difusão. Como descrito acima, o canal de difusão refere-se a um canal para fornecer ou acessar conteúdo de difusão fornecido por uma estação de difusão, e o conteúdo de difusão se baseia principalmente em difusão em tempo real e também é chamado de canal ao vivo. Entretanto, recentemente, o meio para difusão se tornou mais diversificado, e a difusão em tempo não-real também é ativada além da difusão em tempo real. Ele também pode ser entendido como um termo significando todo o canal. Portanto, o canal ao vivo pode ser entendido como um termo significando não apenas difusão em tempo real, mas também todo o canal de difusão incluindo difusão em tempo não-real, em alguns casos.
[0458] Na revelação, “canal arbitrário” é adicionalmente definido em relação a outro canal que não o canal de difusão descrito acima. O canal arbitrário pode fornecer um guia de serviço, tal como um guia eletrônico de programação (EPG) junto com um canal de difusão. Um guia de serviço, uma GUI (Interface Gráfica do Usuário) ou uma tela OSD (tela de Exibição na Tela) pode ser configurada/provida somente com o canal arbitrário.
[0459] Enquanto isso, ao contrário de um canal de difusão possuindo um número de canal predeterminado entre os transceptores, o canal arbitrário é um canal alocado aleatoriamente em um receptor, e um número de canal que não é basicamente sobreposto com números de canal para expressar os canais de difusão é alocado para o canal arbitrário. Por exemplo, quando um canal de difusão específico é sintonizado, o receptor recebe um sinal de difusão que transmite conteúdo de difusão e informação de sinalização para o mesmo através do canal sintonizado. Aqui, o receptor analisa a informação de canal a partir da informação de sinalização, e configura um navegador de canal, uma EPG, entre outros, com base na informação de canal analisada, e a fornece para um usuário. Quando o usuário realizar uma solicitação de mudança de canal através do meio de entrada, o receptor responde de maneira correspondente.
[0460] Como descrito acima, uma vez que o canal de difusão é prometido antecipadamente entre os terminais de transmissão e recepção, quando o canal arbitrário é alocado para um canal de difusão de forma sobreposto, isso pode causar confusão para o usuário ou pode haver uma possibilidade de confusão, logo, é preferível não alocar duplicatas como descrito acima. Enquanto isso, mesmo se o número de canal arbitrário não for sobreposto com o número de canal de difusão conforme descrito acima, ainda há uma confusão no processo de navegação de canal do usuário, e é necessário alocar o número de canal arbitrário em consideração a isto. Isso se deve ao fato de que o canal arbitrário de acordo com a revelação também pode ser implementado para ser acessado em resposta à solicitação de um usuário para comutação troca de canal através de um meio de entrada da mesma maneira que um canal de difusão convencional. Por conseguinte, o número de canal arbitrário pode ser definido e exibido em uma forma na qual os caracteres são escritos em paralelo, tal como canal-1 arbitrário, canal-2 arbitrário, entre outros, em vez de em uma forma numérica, como um canal de difusão, para a conveniência de acesso do usuário ao canal arbitrário e para conveniência ao distinguir ou discriminar do número de canal de difusão. Neste caso, embora a exibição de um número de canal arbitrário possa ser realizada na forma em que os caracteres são escritos como no canal-1 arbitrário, o receptor pode reconhecer e implementar o canal arbitrário em uma forma numérica como o número do canal de difusão internamente. Além disso, o número de canal arbitrário pode ser fornecido na forma de um número, tal como um canal de difusão, e também é possível definir e exibir números de canal de diversas formas que podem ser distinguidas dos canais de difusão, tal como canal de vídeo-1, título-1 e vídeo-1.
[0461] O dispositivo digital executa um navegador da Rede para um serviço da Rede, e fornece vários tipos de páginas da Rede ao usuário. Aqui, a página da Rede inclui uma página da Rede incluindo um conteúdo de vídeo e, na revelação, o vídeo é processado separadamente ou independentemente da página da Rede.
Além disso, o vídeo separado pode ser alocado para o canal arbitrário como descrito acima, e fornecido através de um guia de serviço, ou similar, e emitido de acordo com uma solicitação de troca de canal em um processo de visualizar um guia de serviço ou um canal de difusão. Além disso, para serviços tal como difusão de conteúdo, jogos e aplicativos, além dos serviços da Rede, o conteúdo predeterminado, imagens, áudio, itens, etc. são processados separadamente do conteúdo de difusão jogos e aplicativos em si, e o número de canal arbitrário pode ser atribuído para sua reprodução, processamento, e similares, e pode ser implementado como descrito acima.
[0462] A FIG. 38 é um diagrama ilustrando esquematicamente um exemplo de um sistema de serviço incluindo um dispositivo digital.
[0463] Os sistemas de serviço incluindo dispositivos digitais incluem um provedor de conteúdo CP 3810, um provedor de serviço SP 3820, um provedor de rede NP 3830, e um usuário final da rede doméstica HNED (Cliente) 3840. Aqui, o HNED 3840 é, por exemplo, um cliente 3800, ou seja, um dispositivo digital. O provedor de conteúdo 3810 produz e fornece conteúdo variado. Como ilustrado na FIG. 38, como tal, o provedor de conteúdo 3810, um difusor terrestre, um SO (Operador do Sistema) a cabo, ou um MSO (SO Múltiplo), um difusor via satélite, diversos difusores via Internet, CPs Privados, entre outros, podem servir de exemplo. Enquanto isso, o provedor de conteúdo 3810 fornece vários aplicativos além do conteúdo de difusão.
[0464] O provedor de serviço 3820 fornece o conteúdo fornecido pelo provedor de conteúdo 3810 como um pacote de serviços ao HNED 3840 por meio do empacotamento do conteúdo. Por exemplo, o provedor de serviço 3820 da FIG.
38 empacota a primeira difusão terrestre, a segunda difusão terrestre, MSO a cabo, difusão via satélite, diversas difusões via Internet, aplicativos, etc. e as fornece ao HNED 3840.
[0465] O provedor de serviços 3820 fornece serviços ao cliente 300 no modo uni-cast (difusão ponto a ponto) ou multi-cast (multidifusão). Além disso, o provedor de serviços 3820 pode transmitir dados a uma pluralidade de clientes pré-registrados
3800 de uma vez, e para isto, um protocolo IGMP (Protocolo de Gerenciamento de Grupo da Internet) pode ser usado.
[0466] O provedor de conteúdo 3810 e o provedor de serviços 3820 descritos acima podem ser entidades idênticas ou únicas. Por exemplo, o conteúdo fornecido pelo provedor de conteúdo 3810 pode ser empacotado em serviço e fornecido ao HNED 3840, portanto, as funções do provedor de serviços 3820 juntas, ou vice- versa, são realizadas.
[0467] O provedor de rede 3830 fornece uma rede para troca de dados entre o provedor de conteúdo 3810 e/ou o provedor de serviços 3820 e o cliente 3800.
[0468] O cliente 3800 pode estabelecer uma rede doméstica para transmitir e receber dados.
[0469] Enquanto isso, o provedor de conteúdo 3810 e/ou o provedor de serviços 3820 no sistema de serviços pode usar acesso condicional ou meio de proteção de conteúdo para proteger o conteúdo transmitido. Neste caso, o cliente 300 pode usar meios de processamento, tal como um CableCARD (POD: Ponto de Implantação), DCAS (CAS Baixável), etc., em resposta ao recebimento de restrição ou proteção de conteúdo.
[0470] Além disso, o cliente 3800 também pode usar um serviço bidirecional através de uma rede (ou rede de comunicação). Neste caso, o cliente 3800 pode, em vez disso, realizar a função do provedor de conteúdo, e o provedor de serviços 3820 existente pode recebê-lo e transmiti-lo de volta a outro cliente.
[0471] A FIG. 39 é um diagrama de blocos ilustrando um dispositivo digital de acordo com uma modalidade. Aqui, a FIG. 39, por exemplo, pode corresponder a um cliente 3800 da FIG. 38, e refere-se ao dispositivo digital descrito acima.
[0472] O dispositivo digital 3900 inclui uma interface de rede 3901, um gerenciador TCP/IP 3902, um gerenciador de distribuição de serviço 3903, um decodificador de SI 3904, um Demultiplexador (demux) 3905, um decodificador de áudio 3906, um decodificador de vídeo 3907, um módulo de exibição (A/V e OSD) 3908, um gerenciador de controle de serviço 3909, um gerenciador de descoberta de serviço 3910, base de dados de SI e metadados 3911, um gerenciador de metadados 3912, um gerenciador de serviços 3913, um gerenciador de UI 3914, entre outros.
[0473] A interface de rede 3901 recebe ou transmite pacotes IP através da rede. Ou seja, a interface de rede 3901 recebe serviços, conteúdo, e similares a partir do provedor de serviços 3820 através da rede.
[0474] O gerenciador TCP/IP 3902 é envolvido na transmissão de pacotes entre uma origem e um destino para os pacotes IP recebidos pelo dispositivo digital 3900 e os pacotes IP transmitidos pelo dispositivo digital 3900. Além disso, o gerenciador TCP/IP 3902 classifica os pacotes recebidos para corresponderem a um protocolo apropriado e emite os pacotes classificados ao gerenciador de distribuição de serviço 3905, ao gerenciador de descoberta de serviço 3910, ao gerenciador de controle de serviço 3909, ao gerenciador de metadados 3912, etc. O gerenciador de distribuição de serviços 3903 é responsável por controlar os dados de serviço recebidos. Por exemplo, o gerenciador de distribuição de serviços 3903 pode usar RTP/RTCP ao controlar os dados de transmissão em fluxo contínuo em tempo real.
Quando os dados de transmissão em fluxo contínuo em tempo real são transmitidos usando RTP, o gerenciador de distribuição de serviços 3903 analisa o pacote de dados recebido de acordo com o RTP e o transmite ao demultiplexador 3905 ou o armazena na base de dados de SI e metadados 3911 sob o controle do gerenciador de serviços 3913. Além disso, o gerenciador de distribuição de serviços 3904 usa o RTCP para realimentar a informação de recepção de rede para um servidor fornecendo um serviço. O demultiplexador 3905 demultiplexa os pacotes recebidos em dados de áudio, vídeo e informação do sistema SI, e os transmite para o decodificador de áudio/vídeo 3906/3907 e o decodificador de SI 3904,
respectivamente.
[0475] O decodificador de SI 3904 decodifica informação de serviço, tal como informação específica de programa PSI, protocolo de informação de programa e sistema PSIP, e informação de serviço de difusão de vídeo digital DVB-SI.
[0476] Além disso, o decodificador de SI 3904 armazena a informação de serviço decodificada na base de dados de SI e metadados 3911, por exemplo. A informação de serviço armazenada desta maneira pode ser lida e usada por uma configuração correspondente, por exemplo, pela solicitação de um usuário.
[0477] O decodificador de áudio/vídeo 3906/3907 decodifica cada dado de áudio e dado de vídeo demultiplexado pelo demultiplexador 3905. Dessa forma, os dados de áudio e de vídeo decodificados são fornecidos ao usuário através do módulo de exibição 3908.
[0478] O gerenciador de aplicativos pode incluir, por exemplo, o gerenciador de UI 3914 e o gerenciador de serviços 3913. O gerenciador de aplicativos gerencia o estado geral do dispositivo digital 3900, fornece uma interface do usuário e gerencia outros gerenciadores.
[0479] O gerenciador de UI 3914 fornece uma interface gráfica do usuário GUI para um usuário usando uma exibição na tela OSD ou similar, e recebe entrada de chave de um usuário para executar a operação do dispositivo de acordo com a entrada. Por exemplo, quando o gerenciador de UI 3914 recebe uma entrada de chave com respeito à seleção de canal a partir de um usuário, o gerenciador de UI 3914 transmite o sinal de entrada de chave para o gerenciador de serviço 3913.
[0480] O gerenciador de serviços 3913 controla gerenciadores associados com um serviço, tal como o gerenciador de distribuição de serviços 3904, o gerenciador de descoberta de serviços 3910, o gerenciador de controle de serviços 3909 e o gerenciador de metadados 3912.
[0481] Além disso, o gerenciador de serviços 3913 cria um mapa de canal e seleciona um canal usando o mapa de canal de acordo com uma entrada de chave recebida a partir do gerenciador de interface do usuário 3914. Além disso, o gerenciador de serviços 3913 recebe a informação de serviço de canal a partir do decodificador de SI 3904 e define o identificador de pacote de áudio/vídeo PID do canal selecionado para o demultiplexador 3905. O PID definido desta maneira é usado no processo de demultiplexação descrito acima. Portanto, o demultiplexador 3905 filtra os dados de áudio, dados de vídeo e dados de SI usando o PID.
[0482] O gerenciador de descoberta de serviços 3910 fornece informação necessária para selecionar um provedor de serviços fornecendo um serviço. Quando um sinal relacionado à seleção de canal é recebido a partir do gerenciador de serviços 3913, o gerenciador de descoberta de serviço 3910 encontra um serviço usando a informação.
[0483] O gerenciador de controle de serviço 3909 é responsável por selecionar e controlar serviços. Por exemplo, o gerenciador de controle de serviço 3909 usa IGMP ou RTSP, ou similar, quando o usuário seleciona um serviço de difusão ao vivo, tal como um método de difusão convencional, e utiliza RTSP para selecionar e controlar o serviço ao selecionar um serviço, tal como VOD (vídeo sob demanda). O protocolo RTSP pode oferecer um modo de reprodução inteligente (“trick mode”) para transmissão em fluxo contínuo em tempo real. Além disso, o gerenciador de controle de serviço 3909 pode inicializar e gerenciar uma sessão através do gateway IMS 3950 usando um subsistema de multimídia UP IMS e um protocolo de iniciação de sessão SIP. O protocolo é uma modalidade, e outros protocolos podem ser usados de acordo com os exemplos de implementação.
[0484] O gerenciador de metadados 3912 gerencia metadados associados a um serviço e armazena os metadados na base de dados de SI & metadados 3911.
[0485] A base de dados de SI e metadados 3911 armazena informação de serviço decodificada pelo decodificador de SI 3904, metadados gerenciados pelo gerenciador de metadados 3912, e informação necessária para selecionar um provedor de serviços fornecido pelo gerenciador de descoberta de serviço 3910.
Além disso, a base de dados de SI e metadados 3911 pode armazenar dados de configuração e similares para o sistema.
[0486] A de dados de SI e metadados 3911 pode ser implementada usando uma RAM não-volátil NVRAM, uma memória flash, entre outros.
[0487] Enquanto isso, o gateway IMS 3950 é um gateway que coleta funções necessárias para acessar um serviço IPTV baseado em IMS.
[0488] A FIG. 40 é um diagrama de blocos de configuração ilustrando outra modalidade de um dispositivo digital. Mais especificamente, a FIG. 40 ilustra um diagrama de blocos de um dispositivo móvel como outra modalidade de um dispositivo digital.
[0489] Referindo-se à FIG. 40, o dispositivo móvel 4000 pode incluir uma unidade de comunicação sem fio 4010, uma unidade de entrada de áudio/vídeo A/V 4020, uma unidade de entrada do usuário 4030, uma unidade de sensoriamento 4040, uma unidade de saída 4050, uma memória 4060, uma unidade de interface 4070, uma unidade de controle 4080 e uma unidade de alimentação de energia
4090. Os componentes ilustrados na FIG. 40 não são essenciais, portanto, um dispositivo móvel com mais ou menos componentes pode ser implementado.
[0490] A unidade de comunicação sem fio 4010 pode incluir um ou mais módulos que permitem comunicação sem fio entre o dispositivo móvel 4000 e o sistema de comunicação sem fio ou entre o dispositivo móvel e a rede onde o dispositivo móvel está localizado. Por exemplo, a unidade de comunicação sem fio 4010 pode incluir um módulo de recepção de difusão 4011, um módulo de comunicação móvel 4012, um módulo de Internet sem fio 4013, um módulo de comunicação de curto alcance 4014 e um módulo de informação de localização
4015.
[0491] O módulo de recepção de difusão 4011 recebe um sinal de difusão e/ou informação relacionada à difusão a partir de um servidor de gerenciamento de difusão externo através de um canal de difusão. Aqui, o canal de difusão pode incluir um canal de satélite e um canal terrestre. O servidor de gerenciamento de difusão pode se referir a um servidor que gera e transmite sinais de difusão e/ou informações relacionadas à difusão ou a um servidor que recebe sinais de difusão gerados anteriormente e/ou informações relacionadas à difusão e os transmite para um terminal. O sinal de difusão pode incluir um sinal de difusão de TV, um sinal de radiodifusão, e um sinal de difusão de dados, e também pode incluir um sinal combinado no qual o sinal de difusão de dados é combinado com o sinal de difusão de TV ou com o sinal de radiodifusão.
[0492] A informação relacionada à difusão pode se referir à informação relacionada a um canal de difusão, um programa de difusão ou um provedor de serviços de difusão. A informação relacionada à difusão também pode ser fornecida através de uma rede de comunicação móvel. Neste caso, ela pode ser recebida pelo módulo de comunicação móvel 4012.
[0493] A informação relacionada à difusão pode existir em várias formas, por exemplo, como uma guia eletrônica de programação EPG ou uma guia eletrônica de serviços ESG.
[0494] O módulo de recepção de difusão 4011 pode receber um sinal de difusão digital usando um sistema de difusão digital, tal como, por exemplo, ATSC, difusão de vídeo digital-terrestre DVB-T, DVB-S via satélite, link somente para encaminhamento de mídia MediaFLO, DVB-H portátil, difusão digital de serviços integrados-terrestre ISDB-T, entre outros. Sem dúvidas, o módulo de recepção de difusão 4011 pode ser configurado para ser adequado para outros sistemas de difusão, bem como para o sistema de difusão digital descrito acima.
[0495] O sinal de difusão e/ou a informação relacionada à difusão recebida através do módulo de recepção de difusão 4011 pode ser armazenado na memória
4060.
[0496] O módulo de comunicação móvel 4012 transmite e recebe um sinal de rádio de e para pelo menos uma de uma estação base, um terminal externo e um servidor de uma rede de comunicação móvel. O sinal sem fio pode incluir vários tipos de dados de acordo com a transmissão e recepção de um sinal de voz, um sinal de chamada de vídeo ou uma mensagem de texto/multimídia.
[0497] O módulo de Internet sem fio 4013 inclui um módulo para acesso à Internet sem fio, e pode ser incorporado ou externo ao dispositivo móvel 4000. Como a tecnologia de Internet sem fio, pode-se usar LAN sem fio (WLAN) (Wi-Fi), banda larga sem fio Wibro, interoperabilidade mundial para acesso por microondas Wimax, e acesso a pacotes de downlink de alta velocidade HSDPA.
[0498] O módulo de comunicação de curto alcance 4014 refere-se a um módulo para comunicação de curto alcance. A comunicação de curto alcance Bluetooth, RFID (Identificação de radiofrequência), comunicação por infravermelho (IrDA, associação de dados de infravermelho), UWB (banda ultra-larga), ZigBee, RS- 232, RS-485, etc. podem ser usados.
[0499] O módulo de informação de localização 4015 é um módulo para obter informação de localização do dispositivo móvel 4000, e pode usar um módulo GPS do sistema de posicionamento global como exemplo.
[0500] A unidade de entrada de A/V 4020 serve para entrada de sinal de áudio e/ou vídeo, e pode incluir uma câmera 4021, um microfone 4022, entre outros.
A câmera 4021 processa quadros de imagem, tais como imagens fixas ou imagens em movimento obtidas por um sensor de imagem em um modo de chamada de vídeo ou em um modo de filmagem. O quadro de imagem processado pode ser exibido em uma unidade de exibição 4051.
[0501] Os quadros de imagem processados pela câmera 4021 podem ser armazenados na memória 4060 ou transmitidos para o exterior através da unidade de comunicação sem fio 4010. Duas ou mais câmeras 4021 podem ser proporcionadas, dependendo do ambiente de uso.
[0502] O microfone 4022 recebe um sinal sonoro externo por um microfone em um modo de chamada ou em um modo de gravação, em um modo de reconhecimento de voz, etc., e o processa como dados de voz elétricos. Os dados de voz processados podem ser convertidos e emitidos em uma forma que pode ser transmitida à estação base de comunicação móvel através do módulo de comunicação móvel 4012 no modo de chamada. O microfone 4022 pode ser implementado com vários algoritmos de redução de ruído para remover o ruído gerado no processo de receber um sinal sonoro externo.
[0503] A unidade de entrada do usuário 4020 gera dados de entrada para o usuário para controlar a operação do terminal. A unidade de entrada do usuário 4030 pode ser configurada por um teclado numérico, um teclado de membrana, um teclado sensível ao toque (do tipo pressão/capacitivo), um botão de rolagem, um interruptor de rolagem, entre outros.
[0504] A unidade de sensoriamento 4040 exibe o estado atual do dispositivo móvel 4000, tal como o estado aberto/fechado do dispositivo móvel 4000, a localização do dispositivo móvel 4000, a presença ou ausência de contato do usuário, a orientação do dispositivo móvel, e a aceleração/desaceleração do dispositivo móvel. Ela detecta e gera um sinal de sensoriamento para controlar a operação do dispositivo móvel 4000. Por exemplo, quando o dispositivo móvel 4000 é movido ou inclinado, a posição ou inclinação do dispositivo móvel pode ser detectada. Além disso, é possível detectar se a energia é alimentada à unidade de alimentação de energia 4090 ou se os dispositivos externos são acoplados à unidade de interface 4080. Enquanto isso, a unidade de sensoriamento 4040 pode incluir um sensor de proximidade 4041 incluindo comunicação por campo de proximidade NFC.
[0505] A unidade de saída 4050 serve para gerar saída relacionada ao sentido da visão, audição ou tato, e pode incluir uma unidade de exibição 4051, um módulo de saída de áudio 4052, uma unidade de alarme 4053 e um módulo háptico
4054.
[0506] A unidade de exibição 4051 exibe ou emite informação processada pelo dispositivo móvel 4000. Por exemplo, quando o dispositivo móvel está em um modo de chamada, uma interface do usuário UI ou uma interface gráfica do usuário GUI relacionada à chamada é exibida. Quando o dispositivo móvel 4000 está em um modo de chamada de vídeo ou em um modo de filmagem, o vídeo fotografado e/ou recebido, a UI ou GUI é exibida.
[0507] A parte de exibição 4051 pode incluir uma tela de cristal líquido LCD, uma tela de cristal líquido com transistor de película fina TFT LCD, um diodo emissor de luz orgânico OLED, e uma tela flexível, e uma tela 3D.
[0508] Algumas dessas telas podem ser de um tipo transparente ou de um tipo que transmite luz, de modo que o exterior possa ser visto através delas. Isso pode ser chamado de tela transparente, e um exemplo típico da tela transparente é uma OLED transparente TOLED. A estrutura traseira da unidade de exibição 4051 também pode ser configurada como uma estrutura que transmite luz. Com esta estrutura, o usuário pode visualizar objetos localizados atrás do corpo terminal através da área ocupada pela unidade de exibição 4051 do corpo terminal.
[0509] Duas ou mais unidades de exibição 4051 podem estar presentes, dependendo da forma de implementação do dispositivo móvel 4000. Por exemplo, uma pluralidade de unidades de exibição podem ser espaçadas de uma superfície ou dispostas integralmente no dispositivo móvel 4000, ou podem ser respectivamente dispostas em superfícies diferentes.
[0510] Quando a unidade de exibição 4051 e um sensor detectando uma operação de toque (daqui em diante chamado de “sensor de toque”) formam uma estrutura de camada mútua (daqui em diante chamada de “tela de toque”), a unidade de exibição 4051 pode ser usada como um dispositivo de entrada além de um dispositivo de saída. O sensor de toque pode ter uma forma de, por exemplo, uma película de toque, uma lâmina de toque ou um teclado sensível ao toque.
[0511] O sensor de toque pode ser configurado para converter uma alteração na pressão aplicada a uma parte específica da unidade de exibição 4041 ou capacitância gerada em uma parte específica da unidade de exibição 4051 em um sinal de entrada elétrico. O sensor de toque pode ser configurado para detectar não apenas a posição e área tocadas, mas também a pressão no momento do toque.
[0512] Se houver uma entrada de toque para o sensor de toque, os sinais correspondentes são enviados ao controlador de toque. O controlador de toque processa os sinais e então transmite dados correspondentes ao controlador 4080.
Por conseguinte, a unidade de controle 4080 pode saber qual área da unidade de exibição 4051 foi tocada, entre outros.
[0513] O sensor de proximidade 4041 pode ser disposto em uma área interna do dispositivo móvel circundada pela tela de toque ou próximo à tela de toque. O sensor de proximidade se refere a um sensor que detecta a presença ou ausência de um objeto se aproximando de uma superfície de detecção predeterminada ou um objeto na vizinhança usando força mecânica ou luz infravermelha sem contato mecânico. Os sensores de proximidade possuem vida útil mais longa e maior utilização do que os sensores de contato.
[0514] Exemplos do sensor de proximidade incluem um sensor fotoelétrico do tipo transmissão, um sensor fotoelétrico do tipo reflexão direta, um sensor fotoelétrico do tipo imagem espelhada, um sensor de proximidade do tipo oscilação de alta frequência, um sensor de proximidade do tipo capacitivo, um sensor de proximidade do tipo magnético, e um sensor de proximidade de infravermelho.
Quando a tela de toque é capacitiva, ela é configurada para detectar a proximidade do ponteiro devido a uma alteração no campo elétrico de acordo com a proximidade do ponteiro. Neste caso, a tela de toque (sensor de toque) pode ser classificada como um sensor de proximidade.
[0515] Daqui em diante, por conveniência de descrição, o ato de fazer com que o ponteiro seja reconhecido como estando posicionado na tela de toque sem ser tocado pelo ponteiro na tela de toque é chamado de “toque por proximidade”, e o ato de realmente tocar o ponteiro na tela de toque é chamado de “toque por contato”. A localização na tela de toque que é um toque por proximidade com um ponteiro significa uma localização em que o ponteiro corresponde verticalmente à tela de toque quando o ponteiro é tocado próximo.
[0516] O sensor de proximidade detecta um toque de proximidade e um padrão de toque de proximidade (por exemplo, distância de toque de proximidade, direção do toque de proximidade, velocidade do toque de proximidade, tempo de toque de proximidade, posição do toque de proximidade, estado de movimento do toque de proximidade, etc.). A informação correspondendo à operação de toque de proximidade detectada e o padrão de toque de proximidade podem ser emitidos na tela de toque.
[0517] O módulo de saída de áudio 4052 pode emitir dados de áudio recebidos a partir da unidade de comunicação sem fio 4010 em uma recepção de sinal de chamada, modo de chamada ou modo de gravação, modo de reconhecimento de voz, modo de recepção de difusão, ou similar, ou dados de áudio armazenados na memória 4060. O módulo de saída de áudio 4052 também pode emitir sinais de áudio relacionados às funções (por exemplo, som de recepção de sinal de chamada, som de recepção de mensagem, etc.) executadas no dispositivo móvel 4000. O módulo de saída de áudio 4052 pode incluir um receptor, um alto- falante e uma campainha.
[0518] O módulo de alarme 4053 emite um sinal para notificar a ocorrência do evento do dispositivo móvel 4000. Exemplos de eventos gerados no dispositivo móvel incluem recepção de sinal de chamada, recepção de mensagem, entrada de sinal de chave, e entrada de toque. A unidade de alarme 4053 pode emitir um sinal para notificar a ocorrência de um evento por outras formas, por exemplo, vibração, além de um sinal de vídeo ou um sinal de áudio.
[0519] O sinal de vídeo ou o sinal de áudio também pode ser emitidos através da unidade de exibição 4051 ou no módulo de saídas de áudio 4052, de modo que a unidade de exibição e os módulos de saída de áudio 4051 e 4052 possam ser classificados como parte do módulo de alarme 4053.
[0520] O módulo háptico 4054 gera vários efeitos tácteis que o usuário pode sentir. A vibração é um exemplo típico do efeito táctil gerado pelo módulo háptico
4054. A intensidade e o padrão de vibração gerados pelo módulo háptico 4053 são controláveis. Por exemplo, diferentes vibrações podem ser sintetizadas e emitidas ou emitidas sequencialmente.
[0521] Além da vibração, o módulo háptico 4054 pode gerar diversos efeitos tácteis, inclusive os efeitos de estimulação, tal como uma disposição de pinos que se move verticalmente com respeito à superfície de contato da pele, a força de ejeção ou força de inalação do ar através da ejeção ou admissão, roçadura em uma superfície de pele, contato com o eletrodo, força eletrostática, e similares, e o efeito por reproduzir uma sensação de frio e calor usando um elemento capaz de absorver calor ou gerar calor.
[0522] O módulo háptico 4054 pode não apenas distribuir o efeito táctil através de contato direto, mas também o implementa de modo que o usuário possa sentir o efeito táctil através de sensações musculares, tais como dedos ou braços.
Dois ou mais módulos hápticos 4053 podem ser proporcionados de acordo com um aspecto de configuração do dispositivo móvel 4000.
[0523] A memória 4060 pode armazenar um programa para a operação da unidade de controle 4080, e pode armazenar temporariamente dados de entrada/saída (por exemplo, um catálogo telefônico, mensagem, imagem fixa, vídeo, etc.). A memória 4060 pode armazenar dados relacionados a vários padrões de vibração e saída de som quando um toque é gerado na tela de toque.
[0524] A memória 4060 pode incluir um meio de armazenamento de pelo menos um de um tipo de memória flash, um tipo de disco rígido, um tipo de microcartão multimídia, uma memória do tipo cartão (por exemplo, memória SD ou XD, etc.), uma memória de acesso aleatório RAM, uma memória de acesso aleatório estática SRAM, uma memória somente para leitura ROM, uma memória somente para leitura programável eletricamente apagável EEPROM, uma memória somente para leitura programável PROM, uma memória magnética, um disco óptico. O dispositivo móvel 4000 pode operar em conexão com um armazenamento da Rede (Web) que realiza uma função de armazenamento da memória 4060 na Internet.
[0525] A unidade de interface 4070 serve de passagem com todos os dispositivos externos conectados ao dispositivo móvel 4000. A unidade de interface 4070 recebe dados de um dispositivo externo, recebe energia, e transmite dados a cada componente dentro do dispositivo móvel 400, ou permite que os dados dentro do dispositivo móvel 4000 sejam transmitidos ao dispositivo externo. Por exemplo, uma porta de headset com fio / sem fio, uma porta de carregador externo, uma porta de dados com fio / sem fio, uma porta de cartão de memória, uma porta para conectar dispositivos equipados com um módulo de identificação, uma porta de entrada/saída de áudio, uma porta de E/S de vídeo, uma porta de fone de ouvido, e similares, podem ser incluídas na unidade de interface 4070.
[0526] O módulo de identificação é um chip que armazena várias informações para autenticar os direitos de uso do dispositivo móvel 4000, e pode incluir um módulo de identificação do usuário UIM, um módulo de identidade do assinante SIM,
um módulo de identidade do assinante universal USIM, entre outros. O dispositivo equipado com o módulo de identificação (daqui em diante chamado de “dispositivo de identificação”) pode ser fabricado em um formato de cartão inteligente. Portanto, o dispositivo de identificação pode ser conectado ao terminal 4000 através da porta.
[0527] Quando o terminal móvel 4000 é conectado à base externa, a unidade de interface 4070 pode se tornar uma passagem através da qual a energia proveniente da base é alimentada ao terminal móvel 4000, ou uma passagem através da qual vários sinais de comando são gerados a partir da base pelo usuário.
Vários sinais de comando ou energia alimentados pela base podem ser operados como um sinal para reconhecer que o terminal móvel está montado corretamente na base.
[0528] A unidade de controle 4080 tipicamente controla a operação geral do dispositivo móvel. Por exemplo, ela realiza o controle e processamento relacionados às chamadas de voz, comunicações de dados, chamadas de vídeo, entre outros. A unidade de controle 4080 pode incluir um módulo de multimídia 4081 para reprodução de multimídia. O módulo de multimídia 4081 pode ser implementado na unidade de controle 4080, ou pode ser implementado separadamente da unidade de controle 4080. A unidade de controle 4080, em particular o módulo de multimídia 4081, pode incluir o dispositivo de codificação 100 e/ou o dispositivo de decodificação 200 descritos acima.
[0529] A unidade de controle 4080 pode realizar um processo de reconhecimento de padrão capaz de reconhecer entrada de escrita à mão ou entrada de desenho de imagem realizada em uma tela de toque como caracteres e imagens, respectivamente.
[0530] A unidade de alimentação de energia 4090 recebe energia externa e energia interna sob controle da unidade de controle 4080 e alimenta energia necessária para a operação de cada componente.
[0531] As várias modalidades descritas aqui podem ser implementadas em um computador ou meio de gravação legível por dispositivo usando, por exemplo, software, hardware ou uma combinação dos mesmos.
[0532] De acordo com a implementação de hardware, as modalidades descritas aqui podem ser implementadas usando pelo menos um dentre circuitos integrados de aplicação específica ASICs, processadores de sinais digitais DPSs, dispositivos de processamento de sinais digitais DSPDs, dispositivos de lógica programável PLDs, matrizes de portas programáveis em campo FPGAs, processadores, controladores, microcontroladores, microprocessadores, e unidades elétricas para executar funções. Em alguns casos, as modalidades descritas aqui podem ser implementadas pela própria unidade de controle 4080.
[0533] De acordo com a implementação de software, as modalidades, tais como os procedimentos e funções descritas aqui, podem ser implementadas como módulos de software separados. Cada um dos módulos de software pode realizar uma ou mais funções e operações descritas aqui. O código de software pode ser implementado em um software aplicativo escrito em uma linguagem de programação apropriada. Aqui, o código de software é armazenado na memória 4060 e pode ser executado pela unidade de controle 4080.
[0534] A FIG. 41 é um diagrama de blocos ilustrando um dispositivo digital de acordo com outra modalidade.
[0535] Outro exemplo do dispositivo digital 4100 pode incluir uma unidade de recepção de difusão 4105, uma unidade de interface de dispositivo externo 4156, uma unidade de armazenamento 4140, uma unidade de interface de entrada do usuário 4150, uma unidade de controle 4170, uma unidade de exibição 4180, unidade de saída de áudio 4185, uma unidade de alimentação de energia 4190 e uma unidade de fotografia (não ilustrada). Aqui, a unidade de recepção de difusão 4105 pode incluir pelo menos um sintonizador 4110, uma unidade de demodulação
4120 e uma unidade de interface de rede 4130. No entanto, dependendo do caso, a unidade de recepção de difusão 4105 pode incluir um sintonizador 4110 e um demodulador 4120, mas pode não incluir a unidade de interface de rede 4130, e vice-versa. Além disso, embora não ilustrado, a unidade de recepção de difusão 4105 pode ser equipada com um multiplexador para multiplexar o sinal sintonizado pelo sintonizador 4110 e então é demodulado pela unidade de demodulação 4120 e o sinal recebido através da unidade de interface de rede 4130. Além disso, embora não ilustrado, a unidade de recepção de difusão 4105 pode ser equipada com um demultiplexador para demultiplexar o sinal multiplexado, o sinal demodulado ou o sinal que passou através da unidade de interface de rede 4130.
[0536] O sintonizador 4110 recebe um sinal de difusão RF por meio da sintonização de um canal selecionada por um usuário ou todos os canais pré- armazenados dentre os sinais de difusão RF de radiofrequência recebidos através de uma antena. Além disso, o sintonizador 4110 converte o sinal de difusão de RF recebido em um sinal de frequência intermediária IF ou um sinal de banda base.
[0537] Por exemplo, se o sinal de difusão de RF recebido for um sinal de difusão digital, ele é convertido em um sinal IF digital DIF, e se ele for um sinal de difusão analógico, ele é convertido em um sinal de vídeo ou áudio de banda base analógica CVS/SIF. Ou seja, o sintonizador 4110 pode processar tanto sinais de difusão digitais quanto sinais de difusão analógicos. O sinal de vídeo ou áudio de banda base analógico CVBS/SIF emitido a partir do sintonizador 4110 pode ser transmitido diretamente ao controlador 4170.
[0538] O sintonizador 4110 pode receber um sinal de difusão de RF de portadora única de acordo com um esquema do comitê de sistemas de televisão avançados ATSC ou um sinal de difusão de RF com múltiplas portadoras de acordo com uma esquema de difusão de vídeo digital DVB.
[0539] Enquanto isso, o sintonizador 4110 pode sintonizar e receber sequencialmente sinais de difusão de RF de todos os canais de difusão armazenados através de uma função de armazenamento de canal dentre os sinais de difusão de RF recebidos através de uma antena, e convertê-los em um sinal de frequência intermediária ou um sinal de banda base.
[0540] A unidade de demodulação 4120 recebe e demodula o sinal de IF digital DIF convertido pelo sintonizador 4110. Por exemplo, quando o sinal de IF digital emitido pelo sintonizador 4110 é um sistema ATSC, a unidade de demodulação 4120 realiza a demodulação de banda lateral vestigial-8 8-VSB, por exemplo. Além disso, a unidade de demodulação 4120 pode realizar a decodificação de canal. Para esse fim, a unidade de demodulação 4120 pode incluir um decodificador em treliça, um desentrelaçador, um decodificador de Reed-Solomon, entre outos, e realizar a decodificação em treliça, o desentrelaçamento e a decodificação de Reed Soloman.
[0541] Por exemplo, quando a saída de sinal de IF digital emitida a partir do sintonizador 4110 é um método DVB, a unidade de demodulação 4120 realiza a demodulação por modulação por divisão em frequências ortogonais codificadas COFDMA, por exemplo. Adicionalmente, a unidade de demodulação 4120 pode realizar a decodificação de canal. Para esse fim, a unidade de demodulação 4120 pode incluir um decodificador de convolução, um desentrelaçador, e um decodificador de leed-soloman, e realizar a decodificação por convolução, o desentrelaçamento e a decodificação de read soloman.
[0542] A unidade de demodulação 4120 pode emitir um sinal de fluxo TS após a demodulação e a decodificação de canal. Neste caso, o sinal de transmissão em fluxo pode ser um sinal no qual um sinal de vídeo, um sinal de áudio ou dados são multiplexados. Por exemplo, o sinal de transmissão em fluxo pode ser um fluxo de transporte MPEG-2 TS no qual um sinal de vídeo padrão MPEG-2, um sinal de áudio padrão Dolby AC-3, entre outros, são multiplexados. Especificamente, o
MPEG-2 TS pode incluir um cabeçalho de 4 bytes e uma carga útil de 184 bytes.
[0543] No entanto, é possível que a unidade de demodulação 4120 descrita acima seja proporcionada separadamente de acordo com o método ATSC e o método DVB. Ou seja, o dispositivo digital pode incluir separadamente um demodulador ATSC e um demodulador DVB.
[0544] O sinal de fluxo emitido a partir do demodulador 4120 pode ser informado para o controlador 4170. A unidade de controle 4170 pode controlar a demultiplexação, o processamento de sinal de vídeo/áudio, entre outros, e controlar uma saída de imagem através da unidade de exibição 4180 e uma saída de áudio através da unidade de saída de áudio 4185.
[0545] A unidade de interface de dispositivo externo 4156 proporciona um ambiente no qual vários dispositivos externos são conectados por meio de interface ao dispositivo digital 4100. Para esse fim, a unidade de interface de dispositivo externo 4135 pode incluir uma unidade de entrada/saída de A/V (não ilustrada) ou uma unidade de comunicação sem fio (não ilustrada).
[0546] A interface de dispositivo externo 4156 pode ser conectada com fios/sem fios a dispositivos externos, tal como um disco versátil digital (DVD), um, blu-ray, dispositivos de jogo, câmeras, filmadoras portáteis, computadores (notebooks, tablets), smartphones, dispositivos Bluetooth, e na nuvem. A unidade de interface de dispositivo externo 4156 transmite uma entrada de sinal de vídeo, áudio ou dados (incluindo imagem) pelo exterior através do dispositivo externo conectado ao controlador 4170 do dispositivo digital. A unidade de controle 4170 pode controlar o sinal de imagem, áudio ou dados processado para ser emitido ao dispositivo externo conectado. Para esse fim, a unidade de interface de dispositivo externo 4156 pode adicionalmente incluir uma unidade de entrada/saída de A/V (não ilustrada) ou uma unidade de comunicação sem fio (não ilustrada).
[0547] A unidade de entrada/saída de A/V pode incluir um terminal USB, um terminal de CVBS (composite video banking sync), um terminal de componente, um terminal de S-vídeo (analógico), e um terminal DVI (interface visual digital), um terminal HDMI (interface multimídia de alta definição), um terminal RGB, um terminal D-SUB, entre outros, para informar sinais de vídeo e áudio de um dispositivo externo ao dispositivo digital 4100.
[0548] A unidade de comunicação sem fio pode realizar comunicação sem fio de curto alcance com outros dispositivos eletrônicos. O dispositivo digital 4100 pode ser ligado em rede com outros dispositivos eletrônicos de acordo com um protocolo de comunicação, por exemplo, Bluetooth, identificação por radiofrequência RFID, associação de dados de dados de infravermelho IrDA, banda ultra-larga UWB, ZigBee, aliança para redes digitais domésticas DLNA, etc.
[0549] Além disso, a unidade de interface de dispositivo externo 4156 pode ser conectada a pelo menos um dentre vários decodificadores de sinais e vários terminais descritos acima, e realizar operações de entrada/saída com o decodificador de sinais.
[0550] Enquanto isso, a unidade de interface de dispositivo externo 4156 pode receber um aplicativo ou uma lista de aplicativos em um dispositivo externo adjacente e transmiti-lo à unidade de controle 4170 ou à unidade de armazenamento
4140.
[0551] A unidade de interface de rede 4130 proporciona uma interface para conectar o dispositivo digital 4100 a uma rede com fio/sem fio incluindo uma rede de Internet. Unidade de interface de rede 4130 pode incluir, por exemplo, um terminal Ethernet, ou similar, para conexão com uma rede com fio, e usar padrões de comunicação, tal como, por exemplo, uma LAN sem fio (WLAN) (Wi-Fi), banda larga sem fio (Wibro), interoperabilidade mundial para acesso por microondas (Wimax) e acesso a pacotes de downlink de alta velocidade (HSDPA) para conexão com uma rede sem fio.
[0552] A unidade de interface de rede 4130 pode transmitir ou receber dados com outros usuários ou outros dispositivos digitais através de uma rede conectada ou outra rede ligada à rede conectada. Mais especificamente, alguns dados de conteúdo armazenados no dispositivo digital 4100 podem ser transmitidos para outro usuário registrado com antecedência no dispositivo digital 4100 ou para um usuário selecionado ou dispositivo digital selecionado dentre outros dispositivos digitais.
[0553] Enquanto isso, a unidade de interface de rede 4130 pode acessar uma página da Rede predeterminada através de uma rede conectada ou outra rede conectada à rede conectada. Ou seja, é possível conectar-se a uma página da Rede predeterminada através de uma rede e transmitir ou receber dados com o servidor correspondente. Além disso, o conteúdo ou dados fornecidos por um provedor de conteúdo ou um operador de rede podem ser recebidos. Isto é, é possível receber conteúdo, tal como um filme, anúncio, jogo, VOD, sinal de difusão, e informação relacionada fornecida por um provedor de conteúdo ou um provedor de rede através de uma rede. Além disso, é possível receber informação de atualização e arquivos de atualização do firmware fornecido por uma operadora de rede. A unidade de interface de rede 4130 também pode enviar dados para a Internet ou um provedor de conteúdo ou operadora de rede.
[0554] Além disso, a unidade de interface de rede 4130 pode selecionar e receber um aplicativo desejado dentre os aplicativos que estão abertos ao público através de uma rede.
[0555] A unidade de armazenamento 4140 pode armazenar um programa para processar e controlar cada sinal no controle 4170, ou pode armazenar uma imagem, áudio ou sinal de dados processado por sinal.
[0556] Além disso, a unidade de armazenamento 4140 pode executar uma função para armazenar temporariamente uma entrada de sinal de imagem, áudio ou dados a partir da unidade de interface de dispositivo externo 4135 ou da unidade de interface de rede 4130. A unidade de armazenamento 4140 pode armazenar informações relacionadas a um canal de difusão predeterminado através de uma função de memória de canal.
[0557] A unidade de armazenamento 4140 pode armazenar um aplicativo ou lista de aplicativos informada a partir da unidade de interface de dispositivo externo 4135 ou da unidade de interface de rede 4130.
[0558] Além disso, a unidade de armazenamento 4140 pode armazenar várias plataformas descritas posteriormente.
[0559] A unidade de armazenamento 4140 pode incluir pelo menos um meio de armazenamento dentre, por exemplo, tipo de memória flash, tipo de disco rígido, tipo de microcartão multimídia, e uma memória do tipo cartão (por exemplo, memória SD ou XD), RAM ou ROM (EEPROM, etc.). O dispositivo digital 4100 pode reproduzir e fornecer arquivos de conteúdo (arquivos de vídeo, arquivos de imagem fixa, arquivos de música, arquivos de documento, arquivos de aplicação, etc.) armazenados na unidade de armazenamento 4140 ao usuário.
[0560] A FIG. 41 ilustra uma modalidade na qual a unidade de armazenamento 4140 é proporcionada separadamente da unidade de controle 4170, mas o escopo da revelação não se limita à mesma. Ou seja, a unidade de armazenamento 4140 pode ser incluída na unidade de controle 4170.
[0561] A unidade de interface de entrada do usuário 4150 transmite um sinal informado pelo usuário à unidade de controle 4170 ou um sinal da unidade de controle 4170 ao usuário.
[0562] Por exemplo, a unidade de interface de entrada do usuário 4150 pode receber um sinal de controle relacionado aos controles de liga/desliga, seleção de canal e configuração de tela a partir do dispositivo de controle remoto 4200 de acordo com vários métodos de comunicação, tal como um método de comunicação de RF e um método de comunicação de infravermelho IR, e processá-lo. Como alternativa, a unidade de interface de entrada do usuário 4150 pode processar um sinal de controle a partir da unidade de controle 4170 para ser transmitido ao dispositivo de controle remoto 4200.
[0563] Além disso, a unidade de interface de entrada do usuário 4150 pode transmitir uma entrada de sinal de controle a partir de uma chave local (não ilustrada), tal como uma chave de energia, uma chave de canal, uma chave de volume, e uma chave de configuração de valor, ao controlador 4170.
[0564] A unidade de interface de entrada do usuário 4150 pode transmitir uma entrada de sinal de controle a partir de uma unidade de detecção (não ilustrada) que detecta o gesto de um usuário para a unidade de controle 4170, ou transmitir um sinal a partir da unidade de controle 4170 para uma unidade de sensoriamento (não ilustrada). Aqui, a unidade de sensoriamento (não ilustrada) pode incluir um sensor de toque, um sensor de voz, um sensor de posição e um sensor de movimento.
[0565] O controlador 4170 pode demultiplexar a entrada de fluxo contínuo através do sintonizador 4110, do demodulador 4120 ou da interface de dispositivo externo 4156 ou processar os sinais demultiplexados para gerar e emitir um sinal para saída de vídeo ou áudio. A unidade de controle 4170 pode incluir o aparelho de codificação e/ou o aparelho de decodificação descritos acima.
[0566] O sinal de imagem processado pelo controlador 4170 pode ser passado para a unidade de exibição 4180 e exibido como uma imagem correspondendo ao sinal de imagem. Além disso, o sinal de imagem processado pela unidade de controle 4170 pode ser passado para um dispositivo de saída externo através da unidade de interface de dispositivo externo 4156.
[0567] O sinal de áudio processado pela unidade de controle 4170 pode ser em áudio para a unidade de saída de áudio 4185. Além disso, o sinal de áudio processado pelo controlador 4170 pode ser passado para o dispositivo de saída externo através da interface de dispositivo externo 4156.
[0568] Embora não ilustrada na FIG. 41, a unidade de controle 4170 pode incluir um demultiplexador, um processador de imagem, entre outros.
[0569] A unidade de controle 4170 pode controlar a operação geral do dispositivo digital 4100. Por exemplo, a unidade de controle 4170 pode controlar o sintonizador 4110 para sintonizar uma difusão de RF correspondendo a um canal selecionado por um usuário ou um canal pré-armazenado.
[0570] A unidade de controle 4170 pode controlar o dispositivo digital 4100 por uma entrada de comando do usuário através da unidade de interface de entrada do usuário 4150 ou um programa interno. Mais especificamente, é possível acessar uma rede e baixar um aplicativo ou lista de aplicativos desejada para o dispositivo digital 4100.
[0571] Por exemplo, a unidade de controle 4170 controla o sintonizador 4110 para que um sinal de um canal selecionado de acordo com um comando de seleção de canal predeterminado recebido através da unidade de interface de entrada do usuário 4150 seja inserido, e processa sinais de vídeo, áudio ou dados do canal selecionado. A unidade de controle 4170 permite que a informação de canal, etc.
selecionada pelo usuário seja emitida através da unidade de exibição 4180 ou pela unidade de saída de áudio 4185 junto com a imagem processada ou sinal de áudio.
[0572] Como outro exemplo, de acordo com um comando de reprodução de imagem de dispositivo externo recebido através da unidade de interface de entrada do usuário 4150, a unidade de controle 4170 pode permitir que um sinal de vídeo ou um sinal de áudio inserido através da unidade de interface de dispositivo externo 4135 a partir de um dispositivo externo (por exemplo, uma câmera ou filmadora de mão) seja emitido através da unidade de exibição 4180 ou da unidade de saída de áudio 4185.
[0573] Enquanto isso, a unidade de controle 4170 pode controlar a unidade de exibição 4180 para exibir uma imagem. Por exemplo, a unidade de controle 4170 pode controlar a unidade de exibição 4180 para exibir uma entrada de imagem de difusão inserida através do sintonizador 4110, uma imagem de entrada externa inserida através da unidade de interface de dispositivo externo 4156, uma entrada de imagem através da unidade de interface de rede, ou uma imagem armazenada na unidade de armazenamento 4140. Neste momento, a imagem exibida na unidade de exibição 4180 pode ser uma imagem fixa ou um vídeo, e pode ser um vídeo 2D ou um vídeo 3D.
[0574] Além disso, a unidade de controle 4170 pode controlar para reproduzir conteúdo. Neste momento, o conteúdo pode ser conteúdo armazenado no dispositivo digital 4100, ou conteúdo de difusão recebido, ou conteúdo de entrada externo passado por meio externo. Conteúdo pode ser pelo menos uma de imagem de difusão, uma imagem de entrada externa, um arquivo de áudio, uma imagem fixa, uma tela da Rede conectada, e um arquivo de documento.
[0575] Ao entrar em um item de visualização de aplicativo, a unidade de controle 4170 pode controlar para exibir uma lista de aplicativos ou aplicativos que estão localizados dentro do dispositivo digital 4100 ou que podem ser baixados a partir de uma rede externa.
[0576] A unidade de controle 4170 pode controlar para instalar e operar um aplicativo baixado a partir de uma rede externa junto com várias interfaces do usuário. Além disso, a unidade de controle 4170 pode controlar uma imagem relacionada a um aplicativo a ser executado para ser exibido na unidade de exibição 4180 pela seleção de um usuário.
[0577] Embora não ilustrado no desenho, também é possível ser adicionalmente equipado com uma unidade de processamento de navegação de canal para gerar uma imagem em miniatura correspondendo a um sinal de canal ou um sinal de entrada externo.
[0578] A unidade de processamento de navegação de canal pode receber um sinal de fluxo contínuo TS emitido a partir da unidade de demodulação 4120 ou um sinal de fluxo contínuo emitido a partir da unidade de interface de dispositivo externo 4156, extrair uma imagem a partir do sinal de fluxo de entrada, e gerar uma imagem em miniatura.
[0579] A imagem em miniatura gerada pode ser passada para a unidade de controle 4170 tal como é ou codificada. Além disso, a imagem em miniatura gerada pode ser codificada em uma forma de fluxo contínuo e passada para a unidade de controle 4170. Unidade de controle 4170 pode exibir uma lista em miniatura incluindo uma pluralidade de imagens em miniatura na unidade de exibição 4180 usando as imagens em miniatura de entrada. As imagens em miniatura nesta lista de miniaturas podem ser atualizadas sequencialmente ou simultaneamente. Por conseguinte, o usuário pode facilmente captar os conteúdos de uma pluralidade de canais de difusão.
[0580] A unidade de exibição 4180 converte sinais de imagem, sinais de dados, sinais OSD, entre outros, processados pelo controlador 4170, ou sinais de imagem e sinais de dados recebidos a partir da unidade de interface de dispositivo externo 4156 em sinais R, G e B, respectivamente, e gera um sinal de acionamento.
[0581] A unidade de exibição 4180 pode ser um PDP, LCD, OLED, tela flexível, tela 3D, entre outros.
[0582] A unidade de exibição 4180 pode ser configurada como uma tela de toque e usada como um dispositivo de entrada em acréscimo a um dispositivo de saída.
[0583] A unidade de saída de áudio 4185 recebe um sinal processado pelo controlador 4170, por exemplo, um sinal estéreo, um sinal de canal 3.1, ou um sinal de canal 5.1, e o emite na forma de áudio. A unidade de saída de áudio 4185 pode ser implementada como vários tipos de alto-falantes.
[0584] Entretanto, de modo a detectar o gesto de um usuário, como descrito acima, uma unidade de sensoriamento (não ilustrada) possuindo pelo menos um dentre um sensor de toque, um sensor de voz, um sensor de posição, e um sensor de movimento pode ser adicionalmente proporcionada no dispositivo digital 4100. O sinal detectado pela unidade de sensoriamento (não ilustrada) pode ser transmitido para a unidade de controle 4170 através da unidade de interface de entrada do usuário 4150.
[0585] Uma unidade de fotografia (não ilustrada) para fotografar um usuário pode ser adicionalmente proporcionada. A informação de imagem fotografada pela unidade de fotografia (não ilustrada) pode ser passada para a unidade de controle
4170.
[0586] A unidade de controle 4170 pode detectar o gesto de um usuário individualmente ou em combinação com uma imagem capturada pela unidade de fotografia (não ilustrada) ou um sinal detectado pela unidade de sensoriamento (não ilustrada).
[0587] A unidade de alimentação de energia 4190 alimenta energia por todo o dispositivo digital 4100.
[0588] Mais especificamente, a alimentação de energia 4190 pode alimentar energia à unidade de controle 4170 que pode ser implementada na forma de um sistema em chip SOC, a unidade de exibição 4180 para exibição de imagem, e a unidade de saída de áudio 4185 para saída de áudio.
[0589] Para esse fim, a unidade de alimentação de energia 4190 pode incluir um conversor (não ilustrado) que converte energia CA em energia CC. Por exemplo, quando a unidade de exibição 4180 é implementada como um painel de cristal líquido possuindo uma pluralidade de lâmpadas de retroiluminação, um inversor operável por PWM (não ilustrado) pode ser adicionalmente proporcionado para alteração de luminância ou controle de diminuição do brilho.
[0590] O dispositivo de controle remoto 4200 transmite uma entrada do usuário para a unidade de interface de entrada 4150. Para esse fim, o dispositivo de controle remoto 4200 pode usar Bluetooth, comunicação por RF (radiofrequência), comunicação por infravermelho IR, UWB (Banda Ultra-Larga), método ZigBee (ZigBee), etc.
[0591] Além disso, o dispositivo de controle remoto 4200 pode receber um sinal de imagem, áudio ou dados emitido a partir da unidade de interface de entrada do usuário 4150, exibi-lo no dispositivo de controle remoto 4200, ou emitir voz ou vibração.
[0592] O dispositivo digital 4100 descrito acima pode ser um receptor de difusão digital capaz de processar um sinal de difusão digital do tipo ATSC ou DVB móvel ou fixo.
[0593] Adicionalmente, o dispositivo digital de acordo com a revelação pode omitir alguns componentes ou adicionalmente incluir componentes não ilustrados, à medida que necessário. Como descrito acima, o dispositivo digital pode não ter um sintonizador e um demodulador, e também pode receber e reproduzir conteúdo através de uma unidade de interface de rede ou uma unidade de interface de dispositivo externo.
[0594] A FIG 42 é um diagrama de blocos ilustrando uma configuração detalhada da unidade de controle das FIGS. 39 a 41.
[0595] Um exemplo da unidade de controle pode incluir uma unidade de demultiplexação 4210, uma unidade de processamento de imagem 4220, uma unidade de geração de exibição na tela OSD 4240, um mixador 4250, um conversor de taxa de quadros FRC 4255, e um formatador 4260. Além disso, embora não ilustrado, a unidade de controle pode adicionalmente incluir uma unidade de processamento de voz e uma unidade de processamento de dados.
[0596] A unidade de demultiplexação 4210 demultiplexa um fluxo de entrada.
Por exemplo, a unidade de demultiplexação 4210 pode demultiplexar o TS MPEG-2 de entrada em sinais de vídeo, áudio e dados. Aqui, o sinalo de fluxo contínuo passado para a unidade de demultiplexação 4210 pode ser um sinal de fluxo contínuo emitido a partir de um sintonizador ou demodulador ou uma interface de dispositivo externo.
[0597] A unidade de processamento de imagem 4220 realiza o processamento de imagem do sinal de imagem demultiplexado. Para esse fim, a unidade de processamento de imagem 4220 pode incluir um decodificador de vídeo 4225 e um escalonador 4235.
[0598] O decodificador de vídeo 4225 decodifica o sinal de vídeo demultiplexado, e o escalonador 4235 escalona a resolução do sinal de vídeo decodificado a ser emitido na unidade de exibição.
[0599] O decodificador de vídeo 4225 pode oferecer suporte a vários padrões. Por exemplo, o decodificador de vídeo 4225 desempenha a função do decodificador MPEG-2 quando o sinal de vídeo é codificado no padrão MPEG-2 e a função do decodificador H.264 quando o sinal de vídeo é codificado no método de difusão de multimídia digital DMB ou no padrão H.264.
[0600] O sinal de vídeo decodificado pela unidade de processamento de vídeo 4220 é passado para o misturador 4250.
[0601] A unidade de geração de OSD 4240 gera dados OSD de acordo com uma entrada do usuário ou por si própria. Por exemplo, a unidade de geração de OSD 4240 gera dados para exibir diversos dados em uma tela da unidade de exibição 4180 na forma de gráfico ou texto com base em um sinal de controle da unidade de interface de entrada do usuário. Os dados OSD gerados incluem diversos dados, tal como uma tela de interface do usuário de um dispositivo digital, diversas telas de menu, widgets, ícones e informação de taxa de visualização.
[0602] A unidade de geração de OSD 4240 pode gerar dados para exibir subtítulos de imagens de difusão ou difundir informação com base na EPG.
[0603] O mixador 4250 mistura os dados OSD gerados pela unidade de geração de OSD 4240 e o sinal de imagem processado pela unidade de processamento de vídeo e os fornece ao formatador 4260. Uma vez que o sinal de vídeo decodificado e os dados de OSD são misturados, o OSD é exibido sobreposto em um vídeo de difusão ou em um vídeo de entrada externo.
[0604] O conversor de taxa de quadros FRC 4255 converte uma taxa de quadros de um vídeo de entrada. Por exemplo, o conversor de taxa de quadros 4255 pode converter a taxa de quadros de imagem de 60 Hz de entrada em uma taxa de quadros de, por exemplo, 120 Hz ou 240 Hz, dependendo da frequência de saída da unidade de exibição. Como descrito acima, podem existir vários métodos no método para converter a taxa de quadros. Por exemplo, quando o conversor de taxa de quadros 4255 converte a taxa de quadros de 60 Hz para 120 Hz, o mesmo primeiro quadro é inserido entre o primeiro quadro e o segundo quadro, ou um terceiro quadro predito a partir do primeiro quadro e do segundo quadro é inserido entre o primeiro quadro e o segundo quadro. Como outro exemplo, quando o conversor de taxa de quadros 4255 converte a taxa de quadros de 60 Hz para 240 Hz, três quadros idênticos ou quadros preditos podem ser inseridos entre os quadros existentes. Se uma conversão de quadros separada não for realizada, a unidade de conversão de taxa de quadros 4255 pode ser contornada.
[0605] O formatador 4260 altera a saída do conversor de taxa de quadros 4255 para corresponder ao formato de saída da unidade de exibição. Por exemplo, o formatador 4260 pode emitir sinais de dados R, G e B, e esses sinais de dados R, G e B podem ser emitidos como sinalização diferencial de baixa tensão LVDS ou mini- LVDS. Além disso, quando a saída do conversor de taxa de quadros 4255 é um sinal de vídeo 3D, o formatador 4260 pode oferecer suporte a serviço 3D através da unidade de exibição configurando a saída como um formato 3D de acordo com o formato de saída da unidade de exibição.
[0606] Uma unidade de processamento de áudio (não ilustrada) na unidade de controle pode realizar processamento de áudio do sinal de áudio demultiplexado.
A unidade de processamento de áudio (não ilustrada) pode oferecer suporte a vários formatos de áudio. Por exemplo, mesmo quando um sinal de áudio é codificado em formatos tais como MPEG-2, MPEG-4, AAC, HE-AAC, AC-3, BSAC, a unidade de processamento de áudio pode ser provida de um decodificador correspondendo ao mesmo.
[0607] Além disso, a unidade de processamento de áudio (não ilustrada) na unidade de controle pode processar uma base, tom agudo, controle de volume, entre outros.
[0608] Uma unidade de processamento de dados (não ilustrada) na unidade de controle pode realizar processamento de dados de um sinal de dados demultiplexado. Por exemplo, a unidade de processamento de dados pode decodificar o sinal de dados demultiplexado, mesmo quando ele está codificado.
Aqui, o sinal de dados codificado pode ser uma informação de EPG incluindo informação de difusão, tal como o tempo inicial e o tempo final de uma difusão de programa de difusão em cada canal.
[0609] Entretanto, o dispositivo digital descrito acima é um exemplo de acordo com a revelação, e cada componente pode ser integrado, adicionado ou omitido, dependendo da especificação do dispositivo digital real. Isto é, se necessário, dois ou mais componentes podem ser combinados em um componente, ou um componente pode ser subdividido em dois ou mais componentes. Além disso, uma função realizada em cada bloco serve para descrever uma modalidade da revelação, e a operação ou dispositivo específico não limita o escopo da revelação.
[0610] O dispositivo digital pode ser um dispositivo de processamento de sinal de imagem que realiza processamento de sinal de uma imagem armazenada no dispositivo ou uma imagem de entrada. Como outro exemplo do aparelho de processamento de sinal de imagem, um decodificador de sinais STB, um reprodutor de DVD, um reprodutor de Blu-ray, um dispositivo de jogo, um computador, e similares, podem ser adicionalmente citados como exemplos, dos quais excluem-se a unidade de exibição 4180 e a unidade de saída de áudio 4185 ilustrada na FIG.
41.
[0611] A FIG. 43 é um diagrama ilustrando um exemplo no qual uma tela de um dispositivo digital exibe uma imagem principal e uma subimagem simultaneamente, de acordo com uma modalidade.
[0612] O dispositivo digital de acordo com uma modalidade pode simultaneamente exibir uma imagem principal 4310 e uma imagem ou subimagem auxiliar 4320 na tela 4300. A imagem principal 4310 pode ser chamada de primeira imagem, e a imagem auxiliar 4320 pode ser chamada de segunda imagem. A imagem principal 4310 e a imagem auxiliar 4320 podem incluir um vídeo, uma imagem fixa, uma guia de programação eletrônica EPG, uma interface gráfica do usuário GUI, uma exibição na tela OSD, entre outros, e não se limitam aos mesmos. A imagem principal 4310 pode se referir a uma imagem que tem um tamanho relativamente menor do que a tela 4300 do dispositivo eletrônico ao mesmo tempo em que é simultaneamente exibida na tela 4300 do dispositivo eletrônico junto com a imagem auxiliar 4320, e pode ser chamada de “imagem dentro de imagem (“picture in picture”) PIP. Na FIG. 43, a imagem principal 4310 é exibida na parte superior- esquerda da tela 4300 do dispositivo digital, mas a localização onde a imagem principal 4310 é exibida não se limita a isto, e a imagem principal 4310 pode ser exibida em qualquer localização dentro da tela 4300 do dispositivo digital.
[0613] A imagem principal 4310 e a imagem auxiliar 4320 podem estar relacionadas uma à outra diretamente ou indiretamente. Como exemplo, a imagem principal 4310 pode ser um vídeo de transmissão em fluxo contínuo, e a imagem auxiliar 4320 pode ser uma GUI que exibe sequencialmente miniaturas de vídeos incluindo informações similares ao vídeo de transmissão em fluxo contínuo. Como outro exemplo, a imagem principal 4310 pode ser uma imagem de difusão, e a imagem auxiliar 4320 pode ser uma EPG. Como outro exemplo, a imagem principal 4310 pode ser uma imagem de difusão, e a imagem auxiliar 4320 pode ser uma EPG. Exemplos da imagem principal 4310 e da imagem auxiliar 4320 não se limitam às mesmas.
[0614] Em uma modalidade, a imagem principal 4310 é uma imagem de difusão recebida através de um canal de difusão, e a imagem auxiliar 4320 pode ser informação relacionada a uma imagem de difusão recebida através de um canal de difusão. A informação relacionada a uma imagem de difusão recebida através de um canal de difusão pode incluir, por exemplo, informação de EPG incluindo uma programação de canal integrada e informação detalhada de programa de difusão, e informação de análise de programa de difusão, mas não se limita a isto.
[0615] Em outra modalidade, a imagem principal 4310 é uma imagem de difusão recebida através de um canal de difusão, e a imagem auxiliar 4320 pode ser uma imagem gerada com base na informação pré-armazenada em um dispositivo digital. A imagem gerada com base na informação pré-armazenada no dispositivo digital pode incluir, por exemplo, uma interface básica do usuário UI da EPG, informação básica de canal, uma UI de manipulação de resolução de imagem, e uma UI de reserva de hora de hibernação, e não se limita aos mesmos.
[0616] Em outra modalidade, a imagem principal 4310 é uma imagem de difusão recebida através de um canal de difusão, e a imagem auxiliar 4320 pode ser informação relacionada a uma imagem de difusão recebida através de uma rede de difusão. A informação relacionada à imagem de difusão recebida através da rede pode ser, por exemplo, informação obtida através de um mecanismo de busca baseado na rede. Mais especificamente, por exemplo, a informação relacionada a um caractere sendo exibido atualmente na imagem principal 4310 pode ser obtida através de um mecanismo de busca baseado em rede.
[0617] Entretanto, o exemplo não se limita a isto, e a informação relacionada a uma imagem de difusão recebida através de uma rede pode ser obtida usando, por exemplo, um sistema de inteligência artificial AI. Mais especificamente, por exemplo, uma localização estimada no mapa de um local sendo exibida atualmente na imagem principal 4310 pode ser obtida usando aprendizagem profunda baseada em rede, e o dispositivo digital pode receber informação sobre a localização estimada no mapa do local sendo exibido atualmente na imagem principal 4310 através da rede.
[0618] O dispositivo digital de acordo com uma modalidade pode receber pelo menos uma dentre informação de imagem da imagem principal 4310 e informação de imagem da imagem auxiliar 4320 a partir do exterior. A informação de imagem da imagem principal 4310 pode incluir, por exemplo, um sinal de difusão recebido através de um canal de difusão, informação de código-fonte da imagem principal 4310, e informação de pacote IP (pacote de protocolo de internet) da imagem principal 4310 recebida através de uma rede, mas não se limita aos mesmos. De maneira similar, a informação de imagem da imagem auxiliar 4320 inclui, por exemplo, um sinal de difusão recebido através de um canal de difusão, informação de código-fonte da imagem auxiliar 4320, informação de pacote IP da imagem auxiliar 4320 recebida através de uma rede, etc., mas não se limita aos mesmos. O dispositivo digital pode decodificar e usar a informação de imagem da imagem principal 4310 recebida a partir do exterior ou a informação de imagem da imagem auxiliar 4320. No entanto, em alguns casos, o dispositivo digital pode armazenar informação de imagem da imagem principal 4310 ou informação de imagem da imagem auxiliar 4320 internamente.
[0619] O dispositivo digital pode exibir a imagem principal 4310 e a imagem auxiliar 4320 na tela 4300 do dispositivo digital com base na informação de imagem da imagem principal 4310 e informação relacionada à imagem auxiliar 4320.
[0620] Em um exemplo, o aparelho de decodificação 200 do dispositivo digital inclui um aparelho de decodificação de imagem principal e um aparelho de decodificação de imagem auxiliar, e o aparelho de decodificação de imagem principal e o aparelho de decodificação de imagem auxiliar podem respectivamente decodificar informação de imagem da imagem principal 4310 e informação de imagem da imagem auxiliar 4320. Um renderizador inclui um renderizador de vídeo principal (primeiro renderizador) e um renderizador de vídeo auxiliar (segundo renderizador). O renderizador de imagem principal pode exibir a imagem principal 4310 na primeira área da tela 4300 do dispositivo digital baseado na informação decodificada pelo aparelho de decodificação de imagem principal, e o renderizador de imagem auxiliar pode fazer com que a imagem auxiliar 4320 seja exibida na segunda área da tela 4300 do dispositivo digital com base na informação de codificada pelo aparelho de decodificação de imagem auxiliar.
[0621] Em outro exemplo, o aparelho de decodificação 200 do dispositivo digital pode decodificar a informação de imagem da imagem principal 4310 e a informação de imagem da imagem auxiliar 4320. Com base na informação decodificada pelo aparelho de decodificação 200, o renderizador pode processar a imagem principal 4310 e a imagem auxiliar 4320 juntas para serem exibidas simultaneamente na tela 4300 do dispositivo digital.
[0622] Isto é, de acordo com este documento, é possível proporcionar um método para processar um serviço de imagem em um dispositivo digital. O método de processamento de serviço de imagem pode compreender: receber informação de imagem, decodificar uma imagem (principal) com base na informação de imagem, renderizar ou exibir a imagem decodificada em uma primeira área no meio de exibição, e renderizar ou exibir uma imagem auxiliar em uma segunda área no meio de exibição. Neste caso, a etapa de decodificar a primeira imagem pode seguir o procedimento de decodificação no aparelho de decodificação 200 de acordo com a FIG. 3 descrita acima. Por exemplo, como descrito acima, a etapa de decodificar a primeira imagem pode incluir derivar amostras de predição para um bloco atual baseado na predição inter ou intra, derivar amostras residuais para o bloco atual com base na informação residual recebida, e gerar amostras reconstruídas com base nas amostras de predição e/ou nas amostras residuais. Adicionalmente, a etapa de decodificar a primeira imagem pode incluir realizar um procedimento de filtragem em laço em uma imagem reconstruída incluindo amostras reconstruídas.
[0623] Por exemplo, a imagem auxiliar pode ser uma guia de programação eletrônica EPG, uma exibição na tela OSD, ou uma interface gráfica do usuário GUI.
Por exemplo, a informação de imagem pode ser recebida através de uma rede de difusão, e a informação relacionada à imagem auxiliar pode ser recebida através da rede de difusão. Por exemplo, a informação de imagem pode ser recebida através da rede de difusão, e a informação relacionada à imagem auxiliar pode ser recebida através da rede de comunicação. Por exemplo, a informação de imagem pode ser recebida através da rede de difusão, e a informação relacionada à imagem auxiliar pode ser recebida através da rede de comunicação. Por exemplo, a informação de imagem pode ser recebida através da rede de difusão ou da rede de comunicação, a informação relacionada à imagem auxiliar pode ser armazenada em um meio de armazenamento no dispositivo digital.
[0624] Nas modalidades supramencionadas, os elementos e características da revelação foram combinados em uma forma específica. Cada um dos elementos ou características pode ser considerado como sendo opcional, salvo indicação explícita em contrário. Cada um dos elementos ou características pode ser implementado em uma forma para não ser combinado com outros elementos ou características. Adicionalmente, alguns dos elementos e/ou características podem ser combinados para formar uma modalidade da revelação. A sequência das operações descritas nas modalidades da revelação pode ser alterada. Alguns dos elementos ou características de uma modalidade podem ser incluídos em outra modalidade ou podem ser substituídos por elementos ou características correspondentes de outra modalidade. É evidente que uma modalidade pode ser construída através da combinação de reivindicações que não possuem uma relação de citação explícita nas reivindicações ou pode ser incluída como uma nova reivindicação por emendas após depositar um pedido.
[0625] A modalidade de acordo com revelação pode ser implementada por diversos meios, por exemplo, hardware, firmware, software ou uma combinação dos mesmos. No caso de uma implementação por hardware, a modalidade da revelação pode ser implementada usando um ou mais Circuitos Integrados de Aplicação Específica (ASICs), Processadores de Sinais Digitais (DSPs), Dispositivos de Processamento de Sinais Digitais (DSPDs), Dispositivos de Lógica Programável (PLDs), Matrizes de Portas Programáveis em Campo (FPGAs), processadores, controladores, microcontroladores, microprocessadores, etc.
[0626] No caso de uma implementação por firmware ou software, a modalidade da revelação pode ser implementada na forma de um módulo, procedimento ou função para realizar as funções ou operações supramencionadas.
O código de software pode ser armazenado na memória e executado pelo processador. A memória pode estar localizada dentro ou fora do processador e pode trocar dados com o processador através de uma variedade de meios conhecidos.
[0627] É evidente aos versados na técnica que a revelação pode ser materializada em outras formas específicas sem se afastar das características essenciais da revelação. Por conseguinte, a descrição detalhada não deverá ser interpretada como sendo limitativa, mas deverá ser interpretada como sendo ilustrativa a partir de todos os aspectos. O escopo da revelação deverá ser determinado pela análise racional das reivindicações anexas, e todas as reivindicações dentro da faixa de equivalência da revelação são incluídas no escopo da revelação.
[Aplicabilidade Industrial]
[0628] As modalidades preferidas supracitadas da revelação foram reveladas para fins ilustrativos, e os versados na técnica poderão aperfeiçoar, alterar, substituir ou adicionar várias outras modalidades sem se afastar do espírito e escopo técnico da revelação revelado nas reivindicações anexas.
Claims (14)
1. Método de processamento de um sinal de vídeo baseado em predição de vetor de movimento baseado em histórico, CARACTERIZADO por compreender: configurar uma lista de candidatos de combinação baseados em um bloco vizinho espacial e em um bloco vizinho temporal para um bloco atual; adicionar um candidato de combinação baseado em histórico do bloco atual à lista de candidatos de combinação; obter um índice de combinação indicando um candidato de combinação usa- do para uma predição inter do bloco atual dentro da lista de candidatos de combina- ção; gerar uma amostra de predição do bloco atual baseado na informação de movimento do candidato de combinação indicado pelo índice de combinação; e atualizar uma lista de candidatos de combinação baseados em histórico com base na informação de movimento, em que o candidato de combinação baseado em histórico é adicionado à lis- ta de candidatos de combinação baseado no fato de ele possuir informação de mo- vimento diferente com um candidato de combinação predefinido dos candidatos de combinação incluídos na lista de candidatos de combinação.
2. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que um tamanho da lista de candidatos de combinação baseados em histórico é de- terminado com base em um número máximo de candidatos de combinação dentro da lista de candidatos de combinação.
3. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que um tamanho da lista de candidatos de combinação baseada em histórico é de- terminado como um valor sendo 1 subtraído de um número máximo de candidatos de combinação dentro da lista de candidatos de combinação.
4. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que um tamanho da lista de candidatos de combinação baseados em histórico é de- finido como 5.
5. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que o candidato de combinação baseado em histórico é adicionado à lista de candi- datos de combinação com base no fato de que o candidato de combinação baseado em histórico inclui informação de movimento diferente da informação de movimento de um número específico de candidatos de combinação predefinidos dentre os can- didatos de combinação incluídos na lista de candidatos de combinação.
6. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que o candidato de combinação baseado em histórico é adicionado à lista de candi- datos de combinação com base no fato de que o candidato de combinação baseado em histórico inclui informação de movimento diferente da informação de movimento de candidatos de combinação espacial específicos incluídos na lista de candidatos de combinação.
7. Método, de acordo com a reivindicação 6, CARACTERIZADO pelo fato de que o candidato de combinação baseado em histórico é derivado a partir de um nú- mero predeterminado de candidatos dentro da lista de candidatos de combinação baseados em histórico.
8. Aparelho de processamento de sinais de vídeo baseado na predição inter, CARACTERIZADO por compreender: uma memória configurada para armazenar os sinais de vídeo; e um processador combinado com a memória, em que o processador é configurado para: configurar uma lista de candidatos de combinação baseados em um bloco vizinho espacial e em um bloco vizinho temporal para um bloco atual; adicionar um candidato de combinação baseado em histórico do bloco atual à lista de candidatos de combinação;
obter um índice de combinação indicando um candidato de combinação usa- do para uma predição inter do bloco atual dentro da lista de candidatos de combina- ção; gerar uma amostra de predição do bloco atual baseado na informação de movimento do candidato de combinação indicado pelo índice de combinação; e atualizar uma lista de candidatos de combinação baseados em histórico com base na informação de movimento, em que o candidato de combinação baseado em histórico é adicionado à lis- ta de candidatos de combinação baseado no fato de ele possuir informação de mo- vimento diferente com um candidato de combinação predefinido dos candidatos de combinação incluídos na lista de candidatos de combinação.
9. Aparelho, de acordo com a reivindicação 8, CARACTERIZADO pelo fato de que um tamanho da lista de candidatos de combinação baseados em histórico é determinado com base em um número máximo de candidatos de combinação dentro da lista de candidatos de combinação.
10. Aparelho, de acordo com a reivindicação 8, CARACTERIZADO pelo fato de que um tamanho da lista de candidatos de combinação baseados em histórico é determinado como um valor sendo 1 subtraído de um número máximo de candidatos de combinação dentro da lista de candidatos de combinação.
11. Aparelho, de acordo com a reivindicação 8, CARACTERIZADO pelo fato de que um tamanho da lista de candidatos de combinação baseados em histórico é definido como 5.
12. Aparelho, de acordo com a reivindicação 8, CARACTERIZADO pelo fato de que o candidato de combinação baseado em histórico é adicionado à lista de candidatos de combinação com base no fato de que o candidato de combinação ba- seado em histórico inclui informação de movimento diferente da informação de mo- vimento de um número específico de candidatos de combinação predefinidos dentre os candidatos de combinação incluídos na lista de candidatos de combinação.
13. Aparelho, de acordo com a reivindicação 8, CARACTERIZADO pelo fato de que o candidato de combinação baseado em histórico é adicionado à lista de candidatos de combinação com base no fato de que o candidato de combinação ba- seado em histórico inclui informação de movimento diferente da informação de mo- vimento de candidatos de combinação espacial específicos incluídos na lista de candidatos de combinação.
14. Aparelho, de acordo com a reivindicação 13, CARACTERIZADO pelo fa- to de que o candidato de combinação baseado em histórico é derivado a partir de um número predeterminado de candidatos dentro da lista de candidatos de combi- nação baseados em histórico.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862778835P | 2018-12-12 | 2018-12-12 | |
US62/778,835 | 2018-12-12 | ||
PCT/KR2019/017607 WO2020122640A1 (ko) | 2018-12-12 | 2019-12-12 | 히스토리 기반 모션 벡터 예측을 기반으로 비디오 신호를 처리하기 위한 방법 및 장치 |
Publications (1)
Publication Number | Publication Date |
---|---|
BR112020014544A2 true BR112020014544A2 (pt) | 2021-08-03 |
Family
ID=71075459
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
BR112020014544-0A BR112020014544A2 (pt) | 2018-12-12 | 2019-12-12 | método e aparelho para processamento de sinal de vídeo baseado em predição de vetor de movimento baseado em histórico |
Country Status (9)
Country | Link |
---|---|
US (4) | US11477478B2 (pt) |
EP (1) | EP3716626A4 (pt) |
JP (3) | JP7073501B2 (pt) |
KR (3) | KR102468805B1 (pt) |
CN (4) | CN116668686A (pt) |
BR (1) | BR112020014544A2 (pt) |
CA (2) | CA3088504C (pt) |
MX (2) | MX2020007287A (pt) |
WO (1) | WO2020122640A1 (pt) |
Families Citing this family (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3269088B1 (en) * | 2015-03-13 | 2022-05-18 | Koninklijke KPN N.V. | Method, computer program, network function control system, service data and record carrier, for controlling provisioning of a service in a network |
EP3744094A4 (en) * | 2018-01-26 | 2021-11-03 | MediaTek Inc. | METHOD AND DEVICE FOR AFFINE INTER-PREDICTION FOR A VIDEO ENCODING SYSTEM |
WO2020003270A1 (en) | 2018-06-29 | 2020-01-02 | Beijing Bytedance Network Technology Co., Ltd. | Number of motion candidates in a look up table to be checked according to mode |
CN114900694A (zh) | 2018-06-29 | 2022-08-12 | 抖音视界(北京)有限公司 | 哪个查找表需要更新或不更新 |
EP3791585A1 (en) * | 2018-06-29 | 2021-03-17 | Beijing Bytedance Network Technology Co. Ltd. | Partial/full pruning when adding a hmvp candidate to merge/amvp |
EP3791588A1 (en) | 2018-06-29 | 2021-03-17 | Beijing Bytedance Network Technology Co. Ltd. | Checking order of motion candidates in lut |
JP7137008B2 (ja) | 2018-06-29 | 2022-09-13 | 北京字節跳動網絡技術有限公司 | 1つまたは複数のルックアップテーブルを使用して、以前コーディングされた動き情報を順に記憶させてそれらを後続のブロックのコーディングに使用する概念 |
CN110662052B (zh) | 2018-06-29 | 2022-07-08 | 北京字节跳动网络技术有限公司 | 更新查找表(lut)的条件 |
CN110662043B (zh) | 2018-06-29 | 2021-12-21 | 北京字节跳动网络技术有限公司 | 一种用于处理视频数据的方法、装置和计算机可读介质 |
AU2019293670B2 (en) | 2018-06-29 | 2023-06-08 | Beijing Bytedance Network Technology Co., Ltd. | Update of look up table: FIFO, constrained FIFO |
CN110677667B (zh) | 2018-07-02 | 2022-06-07 | 北京字节跳动网络技术有限公司 | 查找表的使用 |
WO2020053800A1 (en) | 2018-09-12 | 2020-03-19 | Beijing Bytedance Network Technology Co., Ltd. | How many hmvp candidates to be checked |
US11102476B2 (en) * | 2018-12-28 | 2021-08-24 | Qualcomm Incorporated | Subblock based affine motion model |
US11431986B2 (en) * | 2018-12-28 | 2022-08-30 | Godo Kaisha Ip Bridge 1 | Picture coding device, picture coding method, and picture coding program, picture decoding device, picture decoding method and picture decoding program |
KR20240000647A (ko) * | 2018-12-28 | 2024-01-02 | 고도 가이샤 아이피 브릿지 1 | 동화상 부호화 장치, 동화상 부호화 방법, 동화상 부호화 프로그램, 동화상 복호 장치, 동화상 복호 방법, 동화상 복호 프로그램, 기록 매체, 전송 방법 및 기록 방법 |
CN118075451A (zh) * | 2018-12-28 | 2024-05-24 | 知识产权之桥一号有限责任公司 | 图像编码装置和方法、图像解码装置和方法 |
BR112021012481A2 (pt) * | 2018-12-28 | 2021-09-08 | Jvckenwood Corporation | Dispositivo de codificação de imagem em movimento, método de codificação de imagem em movimento, programa de codificação de imagem em movimento, dispositivo de decodificação de imagem em movimento, método de decodificação de imagem em movimento, e programa de decodificação de imagem em movimento |
EP3905685B1 (en) * | 2018-12-28 | 2024-03-20 | JVCKenwood Corporation | Image encoding device, image encoding method, image encoding program, image decoding device, image decoding method, and image decoding program |
WO2020141914A1 (ko) * | 2019-01-01 | 2020-07-09 | 엘지전자 주식회사 | 히스토리 기반 모션 벡터 예측을 기반으로 비디오 신호를 처리하기 위한 방법 및 장치 |
JP7275286B2 (ja) | 2019-01-10 | 2023-05-17 | 北京字節跳動網絡技術有限公司 | Lut更新の起動 |
CN113383554B (zh) | 2019-01-13 | 2022-12-16 | 北京字节跳动网络技术有限公司 | LUT和共享Merge列表之间的交互 |
CN113330739A (zh) | 2019-01-16 | 2021-08-31 | 北京字节跳动网络技术有限公司 | Lut中的运动候选的***顺序 |
EP3939262A4 (en) * | 2019-03-11 | 2022-11-09 | Alibaba Group Holding Limited | METHOD, DEVICE AND SYSTEM FOR DETERMINING PREDICTION WEIGHT FOR MERGE MODE |
US10979716B2 (en) * | 2019-03-15 | 2021-04-13 | Tencent America LLC | Methods of accessing affine history-based motion vector predictor buffer |
CN113615193B (zh) | 2019-03-22 | 2024-06-25 | 北京字节跳动网络技术有限公司 | Merge列表构建和其他工具之间的交互 |
CN113812165B (zh) * | 2019-05-09 | 2023-05-23 | 北京字节跳动网络技术有限公司 | 对hmvp表的改进 |
WO2020259426A1 (en) * | 2019-06-22 | 2020-12-30 | Beijing Bytedance Network Technology Co., Ltd. | Motion candidate list construction for intra block copy mode |
CN113079372B (zh) * | 2021-06-07 | 2021-08-06 | 腾讯科技(深圳)有限公司 | 帧间预测的编码方法、装置、设备及可读存储介质 |
CN113486754B (zh) * | 2021-06-29 | 2024-01-09 | 中国科学院自动化研究所 | 基于视频的事件演化预测方法、*** |
WO2023057488A1 (en) * | 2021-10-05 | 2023-04-13 | Interdigital Vc Holdings France, Sas | Motion vector coding with input motion vector data |
WO2023132631A1 (ko) * | 2022-01-04 | 2023-07-13 | 엘지전자 주식회사 | 영상 인코딩/디코딩 방법 및 장치, 그리고 비트스트림을 저장한 기록 매체 |
US20230396794A1 (en) * | 2022-06-07 | 2023-12-07 | Tencent America LLC | Systems and methods for motion vector predictor list improvements |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001041451A1 (en) * | 1999-11-29 | 2001-06-07 | Sony Corporation | Video/audio signal processing method and video/audio signal processing apparatus |
US9282338B2 (en) * | 2011-06-20 | 2016-03-08 | Qualcomm Incorporated | Unified merge mode and adaptive motion vector prediction mode candidates selection |
TWI586155B (zh) * | 2011-09-28 | 2017-06-01 | Jvc Kenwood Corp | A motion picture decoding apparatus, a motion picture decoding method, and a recording medium |
US20130114717A1 (en) | 2011-11-07 | 2013-05-09 | Qualcomm Incorporated | Generating additional merge candidates |
TWI505696B (zh) * | 2011-11-08 | 2015-10-21 | Samsung Electronics Co Ltd | 解碼影像的方法 |
WO2013077659A1 (ko) * | 2011-11-24 | 2013-05-30 | 에스케이텔레콤 주식회사 | 모션 벡터의 예측 부호화/복호화 방법 및 장치 |
US20130188715A1 (en) * | 2012-01-09 | 2013-07-25 | Qualcomm Incorporated | Device and methods for merge list reordering in video coding |
EP2863631A4 (en) * | 2012-07-02 | 2016-03-16 | Samsung Electronics Co Ltd | METHOD AND DEVICE FOR PREDICTING MOTION VECTORS FOR CODING OR DECODING VIDEO CONTENT |
WO2014175647A1 (ko) * | 2013-04-23 | 2014-10-30 | 삼성전자 주식회사 | 시점 합성 예측을 이용한 다시점 비디오 부호화 방법 및 그 장치, 다시점 비디오 복호화 방법 및 그 장치 |
US9992512B2 (en) * | 2014-10-06 | 2018-06-05 | Mediatek Inc. | Method and apparatus for motion vector predictor derivation |
US11477477B2 (en) * | 2015-01-26 | 2022-10-18 | Qualcomm Incorporated | Sub-prediction unit based advanced temporal motion vector prediction |
CN105678808A (zh) * | 2016-01-08 | 2016-06-15 | 浙江宇视科技有限公司 | 运动目标跟踪方法及装置 |
US10560718B2 (en) * | 2016-05-13 | 2020-02-11 | Qualcomm Incorporated | Merge candidates for motion vector prediction for video coding |
DK3855745T3 (da) * | 2016-12-05 | 2022-10-10 | Lg Electronics Inc | Videoafkodningsapparat, videokodningsapparat, lagringsmedium og fremgangsmåde til transmission |
US10491902B1 (en) * | 2018-07-16 | 2019-11-26 | Tencent America LLC | Method and apparatus for history-based motion vector prediction |
US11336914B2 (en) * | 2018-08-16 | 2022-05-17 | Qualcomm Incorporated | History-based candidate list with classification |
CA3115867C (en) * | 2018-10-10 | 2023-10-10 | Huawei Technologies Co., Ltd. | Inter prediction method and apparatus |
US11184633B2 (en) * | 2018-11-27 | 2021-11-23 | Qualcomm Incorporated | Simplification of history-based motion vector prediction |
CN117880495A (zh) * | 2018-12-03 | 2024-04-12 | 北京字节跳动网络技术有限公司 | 候选的最大数量的指示方法 |
US11012697B2 (en) * | 2018-12-07 | 2021-05-18 | Qualcomm Incorporated | Shared candidate list and parallel candidate list derivation for video coding |
-
2019
- 2019-12-12 CN CN202310893656.XA patent/CN116668686A/zh active Pending
- 2019-12-12 WO PCT/KR2019/017607 patent/WO2020122640A1/ko active Application Filing
- 2019-12-12 CN CN201980014711.5A patent/CN111771376B/zh active Active
- 2019-12-12 KR KR1020207022374A patent/KR102468805B1/ko active IP Right Grant
- 2019-12-12 MX MX2020007287A patent/MX2020007287A/es unknown
- 2019-12-12 CN CN202310889882.0A patent/CN116684589A/zh active Pending
- 2019-12-12 KR KR1020237043224A patent/KR20230175329A/ko active Application Filing
- 2019-12-12 JP JP2020538052A patent/JP7073501B2/ja active Active
- 2019-12-12 EP EP19897417.2A patent/EP3716626A4/en not_active Ceased
- 2019-12-12 CN CN202310889512.7A patent/CN116668685A/zh active Pending
- 2019-12-12 CA CA3088504A patent/CA3088504C/en active Active
- 2019-12-12 CA CA3190343A patent/CA3190343A1/en active Pending
- 2019-12-12 BR BR112020014544-0A patent/BR112020014544A2/pt unknown
- 2019-12-12 KR KR1020227039995A patent/KR102615471B1/ko active IP Right Grant
-
2020
- 2020-06-09 US US16/896,532 patent/US11477478B2/en active Active
- 2020-07-13 MX MX2024001296A patent/MX2024001296A/es unknown
-
2022
- 2022-03-31 JP JP2022059348A patent/JP7303346B2/ja active Active
- 2022-09-09 US US17/941,628 patent/US11653022B2/en active Active
-
2023
- 2023-03-29 US US18/127,857 patent/US11849075B2/en active Active
- 2023-06-22 JP JP2023102468A patent/JP7488945B2/ja active Active
- 2023-11-07 US US18/387,809 patent/US20240171771A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
JP2023112113A (ja) | 2023-08-10 |
CN116668685A (zh) | 2023-08-29 |
EP3716626A4 (en) | 2021-05-19 |
JP2021510265A (ja) | 2021-04-15 |
WO2020122640A1 (ko) | 2020-06-18 |
US20230029880A1 (en) | 2023-02-02 |
CA3088504C (en) | 2023-04-04 |
KR102615471B1 (ko) | 2023-12-19 |
JP2022087172A (ja) | 2022-06-09 |
US11477478B2 (en) | 2022-10-18 |
MX2024001296A (es) | 2024-02-13 |
KR20220156983A (ko) | 2022-11-28 |
KR20200098703A (ko) | 2020-08-20 |
CN116668686A (zh) | 2023-08-29 |
EP3716626A1 (en) | 2020-09-30 |
JP7303346B2 (ja) | 2023-07-04 |
KR102468805B1 (ko) | 2022-11-18 |
JP7073501B2 (ja) | 2022-05-23 |
CA3088504A1 (en) | 2020-06-18 |
CN111771376B (zh) | 2023-08-08 |
US11849075B2 (en) | 2023-12-19 |
KR20230175329A (ko) | 2023-12-29 |
US20240171771A1 (en) | 2024-05-23 |
US20200359049A1 (en) | 2020-11-12 |
US11653022B2 (en) | 2023-05-16 |
CN116684589A (zh) | 2023-09-01 |
CA3190343A1 (en) | 2020-06-18 |
CN111771376A (zh) | 2020-10-13 |
US20230239497A1 (en) | 2023-07-27 |
JP7488945B2 (ja) | 2024-05-22 |
MX2020007287A (es) | 2020-09-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7488945B2 (ja) | 履歴ベース動きベクトル予測に基づいてビデオ信号を処理するための方法及び装置 | |
US11924406B2 (en) | Method and apparatus for processing video signal on basis of history-based motion vector prediction | |
US11910000B2 (en) | Method and device for processing video signal on basis of inter prediction | |
US11570430B2 (en) | Method and device for processing video signal on basis of inter-prediction | |
US20220078407A1 (en) | Method and apparatus for processing video signal on basis of inter prediction | |
RU2807594C2 (ru) | Способ и устройство для обработки видеосигнала на основании основанного на истории предсказания вектора движения |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
B154 | Notification of filing of divisional application [chapter 15.50 patent gazette] |
Free format text: O PEDIDO FOI DIVIDIDO NO BR122022024255-3 PROTOCOLO 870220110255 EM 28/11/2022 17:27. |