BR112020018923A2 - Método e aparelho de predição inter bidirecional - Google Patents

Método e aparelho de predição inter bidirecional Download PDF

Info

Publication number
BR112020018923A2
BR112020018923A2 BR112020018923-5A BR112020018923A BR112020018923A2 BR 112020018923 A2 BR112020018923 A2 BR 112020018923A2 BR 112020018923 A BR112020018923 A BR 112020018923A BR 112020018923 A2 BR112020018923 A2 BR 112020018923A2
Authority
BR
Brazil
Prior art keywords
frame
motion vector
image block
current image
reference frame
Prior art date
Application number
BR112020018923-5A
Other languages
English (en)
Inventor
Huanbang Chen
Haitao Yang
Jianle Chen
Original Assignee
Huawei Technologies Co., Ltd.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co., Ltd. filed Critical Huawei Technologies Co., Ltd.
Publication of BR112020018923A2 publication Critical patent/BR112020018923A2/pt

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Abstract

modalidades deste pedido referem-se ao campo de tecnologias de codificação de imagem de vídeo, e revelam um método e aparelho de predição inter bidirecional, para melhorar eficiência de codificação. o método inclui: obter informações de indicação, em que as informações de indicação são usadas para indicar determinar segundas informações de movimento com base em primeiras informações de movimento, as primeiras informações de movimento são informações de movimento de um bloco de imagem atual em uma primeira direção, e as segundas informações de movimento são informações de movimento do bloco de imagem atual em uma segunda direção; obter as primeiras informações de movimento; determinar as segundas informações de movimento com base nas primeiras informações de movimento; e determinar amostras de predição do bloco de imagem atual com base nas primeiras informações de movimento e nas segundas informações de movimento.

Description

“MÉTODO E APARELHO DE PREDIÇÃO INTER BIDIRECIONAL”
[0001] Este pedido reivindica prioridade ao Pedido de Patente Chinês no 201810274457.X, depositado junto à Administração Nacional de Propriedade Intelectual da China em 29 de março de 2018 e intitulado "BIDIRECTIONAL INTER PREDICTION METHOD AND APPARATUS", o qual é incorporado neste documento a título de referência em sua totalidade.
CAMPO DA TÉCNICA
[0002] As modalidades deste pedido referem-se ao campo de tecnologias de codificação de imagem de vídeo, e em particular, a um método e aparelho de predição inter bidirecional.
ANTECEDENTES
[0003] Em uma tecnologia de codificação de vídeo, um bloco de imagem de predição de um bloco de imagem atual pode ser gerado com base em apenas um bloco de imagem de referência (que é denominado predição inter unidirecional), ou um bloco de imagem de predição de um bloco de imagem atual pode ser gerado com base em pelo menos dois blocos de imagem de referência (que é denominado predição inter bidirecional). Os pelo menos dois blocos de imagem de referência podem ser de um mesmo quadro de referência ou quadros de referência diferentes.
[0004] Para possibilitar que um decodificador e um codificador usem um mesmo bloco de imagem de referência, o codificador precisa enviar informações de movimento de cada bloco de imagem ao decodificador em um fluxo de bits. De modo geral, as informações de movimento do bloco de imagem atual incluem um valor de índice de quadro de referência, uma flag de preditor de vetor de movimento (motion Vector Predictor, MVP) e um vetor de movimento diferencial (Motion Vector Difference, MVD). O decodificador pode encontrar um bloco de imagem de referência correto em um quadro de referência selecionado com base no valor de índice de quadro de referência, na flag de MVP e no MVD.
[0005] De modo correspondente, em predição inter bidirecional, o codificador precisa enviar informações de movimento de cada bloco de imagem em cada direção ao decodificador. Consequentemente, as informações de movimento ocupam uma quantidade relativamente grande de recursos de transmissão. Isso reduz a utilização eficaz de recursos de transmissão, uma taxa de transmissão e a eficiência de compressão de codificação.
SUMÁRIO
[0006] As modalidades deste pedido fornecem um método e aparelho de predição inter bidirecional para solucionar um problema em que a utilização eficaz de recursos de transmissão, uma taxa de transmissão e a eficiência de compressão de codificação são reduzidas, visto que as informações de movimento ocupam uma quantidade relativamente grande de recursos de transmissão.
[0007] Para alcançar os objetivos antecedentes, as seguintes soluções técnicas são usadas nas modalidades deste pedido:
[0008] De acordo com um primeiro aspecto, um método de predição inter bidirecional é fornecido. O método inclui: obter informações de indicação usadas para indicar a determinação de segundas informações de movimento com base em primeiras informações de movimento, em que as primeiras informações de movimento são informações de movimento de um bloco de imagem atual em uma primeira direção, e as segundas informações de movimento são informações de movimento do bloco de imagem atual em uma segunda direção; obter as primeiras informações de movimento; determinar as segundas informações de movimento com base nas primeiras informações de movimento obtidas; e determinar amostras de predição do bloco de imagem atual com base nas primeiras informações de movimento obtidas e nas segundas informações de movimento determinadas.
[0009] De acordo com o método de predição inter bidirecional fornecido neste pedido, após as informações de indicação serem obtidas, as segundas informações de movimento são determinadas com base nas primeiras informações de movimento. Desse modo, um fluxo de bits precisa incluir apenas as informações de indicação e as primeiras informações de movimento, e não precisa mais incluir as segundas informações de movimento. Em comparação ao estado da técnica em que o fluxo de bits inclui as informações de movimento de cada bloco de imagem em cada direção, o método de predição inter bidirecional fornecido neste pedido reduz, de maneira eficaz, as informações de movimento incluídas no fluxo de bits, e aperfeiçoa a utilização eficaz de recursos de transmissão, uma taxa de transmissão e uma taxa de codificação.
[0010] De modo opcional, em uma possível implantação deste pedido, um método para "determinar as segundas informações de movimento com base nas primeiras informações de movimento" é: obter um valor de índice de um primeiro quadro de referência nas primeiras informações de movimento, e determinar um número de sequência do primeiro quadro de referência com base no valor de índice do primeiro quadro de referência e em uma primeira lista de quadros de referência, em que o primeiro quadro de referência neste documento é um quadro de referência do bloco de imagem atual na primeira direção, e o valor de índice do primeiro quadro de referência é um número do primeiro quadro de referência na primeira lista de quadros de referência; obter um valor de índice de um segundo quadro de referência, e determinar um número de sequência do segundo quadro de referência com base no valor de índice do segundo quadro de referência e em uma segunda lista de quadros de referência, em que o segundo quadro de referência neste documento é um quadro de referência do bloco de imagem atual na segunda direção, e o valor de índice do segundo quadro de referência é um número do segundo quadro de referência na segunda lista de quadros de referência; determinar um primeiro vetor de movimento com base em um primeiro vetor de movimento diferencial e em uma flag de primeiro preditor de vetor de movimento que estão nas primeiras informações de movimento, em que o primeiro vetor de movimento é um vetor de movimento do bloco de imagem atual na primeira direção; e derivar um segundo vetor de movimento nas segundas informações de movimento de acordo com a seguinte fórmula: POC_Cur − POC_listY mv_lY = × mv_lX POC_Cur − POC_listX
[0011] Na fórmula antecedente, mv_lY representa o segundo vetor de movimento, POC_Cur representa um número de sequência de um quadro atual, POC_listX representa o número de sequência do primeiro quadro de referência, POC_listY representa o número de sequência do segundo quadro de referência, mv_lX representa o primeiro vetor de movimento, e o segundo vetor de movimento é um vetor de movimento do bloco de imagem atual na segunda direção.
[0012] De modo opcional, em outra possível implantação deste pedido, um método para "determinar as segundas informações de movimento com base nas primeiras informações de movimento" é: obter um valor de índice de um primeiro quadro de referência nas primeiras informações de movimento, em que o primeiro quadro de referência é um quadro de referência do bloco de imagem atual na primeira direção, e o valor de índice do primeiro quadro de referência é um número do primeiro quadro de referência em uma primeira lista de quadros de referência; obter um valor de índice de um segundo quadro de referência, em que o segundo quadro de referência é um quadro de referência do bloco de imagem atual na segunda direção, e o valor de índice do segundo quadro de referência é um número do segundo quadro de referência em uma segunda lista de quadros de referência; determinar um primeiro vetor de movimento com base em um primeiro vetor de movimento diferencial e em uma flag de primeiro preditor de vetor de movimento que estão nas primeiras informações de movimento, em que o primeiro vetor de movimento é um vetor de movimento do bloco de imagem atual na primeira direção; e, quando o primeiro quadro de referência for um quadro de referência posterior do bloco de imagem atual e o segundo quadro de referência for um quadro de referência anterior do bloco de imagem atual ou, quando o primeiro quadro de referência for um quadro de referência anterior do bloco de imagem atual e o segundo quadro de referência for um quadro de referência posterior do bloco de imagem atual ou, quando o primeiro quadro de referência e o segundo quadro de referência forem, cada um, um quadro de referência posterior do bloco de imagem atual ou, quando o primeiro quadro de referência e o segundo quadro de referência forem, cada um, um quadro de referência anterior do bloco de imagem atual, derivar um segundo vetor de movimento nas segundas informações de movimento de acordo com a seguinte fórmula: mv_lY = −mv_lX
[0013] Na fórmula antecedente, mv_lY representa o segundo vetor de movimento, mv_lX representa o primeiro vetor de movimento, e o segundo vetor de movimento é um vetor de movimento do bloco de imagem atual na segunda direção.
[0014] Tanto "o primeiro quadro de referência é um quadro de referência posterior do bloco de imagem atual e o segundo quadro de referência é um quadro de referência anterior do bloco de imagem atual" quanto "o primeiro quadro de referência é um quadro de referência anterior do bloco de imagem atual e o segundo quadro de referência é um quadro de referência posterior do bloco de imagem atual" podem ser representados usando-se uma fórmula
(POC_Cur − POC_listX) ∗ (POC_listY − POC_Cur) > 0, ou podem ser representados usando-se uma fórmula POC_listY = 2 ∗ POC_Cur − POC_listX . Isso não é especificamente limitado neste pedido.
[0015] Além disso, tanto "o primeiro quadro de referência e o segundo quadro de referência são, cada um, um quadro de referência posterior do bloco de imagem atual" quanto "o primeiro quadro de referência e o segundo quadro de referência são, cada um, um quadro de referência anterior do bloco de imagem atual" podem ser representados usando-se uma fórmula (POC_Cur − POC_listX) ∗ (POC_listY − POC_Cur) < 0.
[0016] POC_Cur representa um número de sequência de um quadro atual, POC_listX representa um número de sequência do primeiro quadro de referência, e POC_listY representa um número de sequência do segundo quadro de referência.
[0017] De modo opcional, em outra possível implantação deste pedido, um método para "determinar as segundas informações de movimento com base nas primeiras informações de movimento" é: obter um valor de índice de um primeiro quadro de referência e um primeiro vetor de movimento diferencial que estão nas primeiras informações de movimento, e determinar um número de sequência do primeiro quadro de referência com base no valor de índice do primeiro quadro de referência e em uma primeira lista de quadros de referência, em que o primeiro quadro de referência é um quadro de referência do bloco de imagem atual na primeira direção, e o valor de índice do primeiro quadro de referência é um número do primeiro quadro de referência na primeira lista de quadros de referência; obter um valor de índice de um segundo quadro de referência, determinar um número de sequência do segundo quadro de referência com base no valor de índice do segundo quadro de referência e em uma segunda lista de quadros de referência, e determinar um segundo vetor de movimento predito com base no valor de índice do segundo quadro de referência e em uma lista de segundo vetor de movimento predito candidato, em que o segundo vetor de movimento predito é um vetor de movimento predito do bloco de imagem atual na segunda direção, o segundo quadro de referência é um quadro de referência do bloco de imagem atual na segunda direção, e o valor de índice do segundo quadro de referência é um número do segundo quadro de referência na segunda lista de quadros de referência; derivar um segundo vetor de movimento diferencial nas segundas informações de movimento de acordo com a seguinte fórmula: POC_Cur − POC_listY mvd_lY = × mvd_lX POC_Cur − POC_listX em que na fórmula antecedente, mvd_lY representa o segundo vetor de movimento diferencial, POC_Cur representa um número de sequência de um quadro atual, POC_listX representa o número de sequência do primeiro quadro de referência, POC_listY representa o número de sequência do segundo quadro de referência, e mvd_lX representa o primeiro vetor de movimento diferencial; e determinar um segundo vetor de movimento com base no segundo vetor de movimento predito e no segundo vetor de movimento diferencial, em que o segundo vetor de movimento é um vetor de movimento do bloco de imagem atual na segunda direção.
[0018] De modo opcional, em outra possível implantação deste pedido, um método para "determinar as segundas informações de movimento com base nas primeiras informações de movimento" é: obter um valor de índice de um primeiro quadro de referência e um primeiro vetor de movimento que estão nas primeiras informações de movimento, em que o primeiro quadro de referência é um quadro de referência do bloco de imagem atual na primeira direção, e o valor de índice do primeiro quadro de referência é um número do primeiro quadro de referência em uma primeira lista de quadros de referência; obter um valor de índice de um segundo quadro de referência, e determinar um segundo vetor de movimento predito com base no valor de índice do segundo quadro de referência e em uma lista de segundo vetor de movimento predito candidato, em que o segundo vetor de movimento predito é um vetor de movimento predito do bloco de imagem atual na segunda direção, o segundo quadro de referência é um quadro de referência do bloco de imagem atual na segunda direção, e o valor de índice do segundo quadro de referência é um número do segundo quadro de referência em uma segunda lista de quadros de referência; quando o primeiro quadro de referência for um quadro de referência posterior do bloco de imagem atual e o segundo quadro de referência for um quadro de referência anterior do bloco de imagem atual ou, quando o primeiro quadro de referência for um quadro de referência anterior do bloco de imagem atual e o segundo quadro de referência for um quadro de referência posterior do bloco de imagem atual ou,
quando o primeiro quadro de referência e o segundo quadro de referência forem, cada um, um quadro de referência posterior do bloco de imagem atual ou, quando o primeiro quadro de referência e o segundo quadro de referência forem, cada um, um quadro de referência anterior do bloco de imagem atual, derivar um segundo vetor de movimento diferencial nas segundas informações de movimento de acordo com a seguinte fórmula: mvd_lY = −mvd_lX em que na fórmula antecedente, mvd_lY representa o segundo vetor de movimento diferencial, e mvd_lX representa um primeiro vetor de movimento diferencial; e determinar um segundo vetor de movimento com base no segundo vetor de movimento predito e no segundo vetor de movimento diferencial, em que o segundo vetor de movimento é um vetor de movimento do bloco de imagem atual na segunda direção.
[0019] De modo similar, tanto "o primeiro quadro de referência é um quadro de referência posterior do bloco de imagem atual e o segundo quadro de referência é um quadro de referência anterior do bloco de imagem atual" quanto "o primeiro quadro de referência é um quadro de referência anterior do bloco de imagem atual e o segundo quadro de referência é um quadro de referência posterior do bloco de imagem atual" podem ser representados usando-se uma fórmula (POC_Cur − POC_listX) ∗ (POC_listY − POC_Cur) > 0 , ou podem ser representados usando-se uma fórmula POC_listY = 2 ∗ POC_Cur − POC_listX . Isso não é especificamente limitado neste pedido.
[0020] Tanto "o primeiro quadro de referência e o segundo quadro de referência são, cada um, um quadro de referência posterior do bloco de imagem atual" quanto "o primeiro quadro de referência e o segundo quadro de referência são, cada um, um quadro de referência anterior do bloco de imagem atual" podem ser representados usando-se uma fórmula (POC_Cur − POC_listX) ∗ (POC_listY − POC_Cur) < 0.
[0021] POC_Cur representa um número de sequência de um quadro atual, POC_listX representa um número de sequência do primeiro quadro de referência, e POC_listY representa um número de sequência do segundo quadro de referência.
[0022] Pode-se aprender que o método de predição inter bidirecional fornecido neste pedido pode ser: determinar o segundo vetor de movimento com base no primeiro vetor de movimento, ou pode ser: determinar o segundo vetor de movimento diferencial com base no primeiro vetor de movimento diferencial, e determinar o segundo vetor de movimento com base no segundo vetor de movimento diferencial.
[0023] De modo opcional, em outra possível implantação deste pedido, um método para "obter um valor de índice de um segundo quadro de referência" é: calcular um primeiro número de sequência com base no número de sequência do quadro atual e no número de sequência do primeiro quadro de referência de acordo com uma fórmula POC_listY0 = 2 ∗ POC_Cur − POC_listX , em que POC_Cur representa o número de sequência do quadro atual, POC_listX representa o número de sequência do primeiro quadro de referência, e POC_listY0 representa o primeiro número de sequência; e, quando a segunda lista de quadros de referência incluir o primeiro número de sequência, determinar, como o valor de índice do segundo quadro de referência, um número de um quadro de referência representado pelo primeiro número de sequência na segunda lista de quadros de referência.
[0024] De modo opcional, em outra possível implantação deste pedido, um método para "obter um valor de índice de um segundo quadro de referência" é: calcular um segundo número de sequência com base no número de sequência do quadro atual e no número de sequência do primeiro quadro de referência de acordo com uma fórmula (POC_Cur − POC_listX) ∗ (POC_listY0′ − POC_Cur) > 0, em que POC_listY0′ representa o segundo número de sequência; e, quando a segunda lista de quadros de referência incluir o segundo número de sequência, determinar, como o valor de índice do segundo quadro de referência, um número de um quadro de referência representado pelo segundo número de sequência na segunda lista de quadros de referência.
[0025] De modo opcional, em outra possível implantação deste pedido, um método para "obter um valor de índice de um segundo quadro de referência" é: calcular um terceiro número de sequência com base no número de sequência do quadro atual e no número de sequência do primeiro quadro de referência de acordo com uma fórmula POC_listX ≠ POC_listY0′′ , em que POC_listY0′′ representa o terceiro número de sequência; e determinar, como o valor de índice do segundo quadro de referência, um número de um quadro de referência representado pelo terceiro número de sequência na segunda lista de quadros de referência.
[0026] De modo opcional, em outra possível implantação deste pedido, um método para "obter um valor de índice de um segundo quadro de referência" é: calcular um primeiro número de sequência com base no número de sequência do quadro atual e no número de sequência do primeiro quadro de referência de acordo com uma fórmula POC_listY0 = 2 ∗ POC_Cur − POC_listX , em que POC_Cur representa o número de sequência do quadro atual, POC_listX representa o número de sequência do primeiro quadro de referência, e POC_listY0 representa o primeiro número de sequência. Quando a segunda lista de quadros de referência incluir o primeiro número de sequência, um número de um quadro de referência representado pelo primeiro número de sequência na segunda lista de quadros de referência é determinado como o valor de índice do segundo quadro de referência. Quando a segunda lista de quadros de referência não incluir o primeiro número de sequência, um segundo número de sequência é calculado com base no número de sequência do quadro atual e no número de sequência do primeiro quadro de referência de acordo com uma fórmula (POC_Cur − POC_listX) ∗ (POC_listY0′ − POC_Cur) > 0 , em que POC_listY0′ representa o segundo número de sequência. Quando a segunda lista de quadros de referência incluir o segundo número de sequência, um número de um quadro de referência representado pelo segundo número de sequência na segunda lista de quadros de referência é determinado como o valor de índice do segundo quadro de referência. Quando a segunda lista de quadros de referência não incluir o segundo número de sequência, um terceiro número de sequência é calculado com base no número de sequência do quadro atual e no número de sequência do primeiro quadro de referência de acordo com uma fórmula POC_listX ≠ POC_listY0′′, em que POC_listY0′′ representa o terceiro número de sequência; e um número de um quadro de referência representado pelo terceiro número de sequência na segunda lista de quadros de referência é determinado como o valor de índice do segundo quadro de referência.
[0027] De modo opcional, em outra possível implantação deste pedido, um método para "obter um valor de índice de um segundo quadro de referência" é: analisar um fluxo de bits para obter o valor de índice do segundo quadro de referência.
[0028] Pode-se aprender que pode haver uma pluralidade de métodos para "obter um valor de índice de um segundo quadro de referência" neste pedido. Um método específico usado para obter o valor de índice do segundo quadro de referência precisa ser determinado com base em exigências reais ou ser predefinido.
[0029] De acordo com um segundo aspecto, um aparelho de predição inter bidirecional é fornecido. O aparelho de predição inter bidirecional inclui uma unidade de obtenção e uma unidade de determinação.
[0030] De maneira específica, a unidade de obtenção é configurada para: obter informações de indicação, em que as informações de indicação são usadas para indicar a determinação de segundas informações de movimento com base em primeiras informações de movimento, as primeiras informações de movimento são informações de movimento de um bloco de imagem atual em uma primeira direção, e as segundas informações de movimento são informações de movimento do bloco de imagem atual em uma segunda direção; e obter as primeiras informações de movimento. A unidade de determinação é configurada para: determinar as segundas informações de movimento com base nas primeiras informações de movimento obtidas pela unidade de obtenção, e determinar amostras de predição do bloco de imagem atual com base nas primeiras informações de movimento e nas segundas informações de movimento.
[0031] De modo opcional, em uma possível implantação deste pedido, a unidade de determinação é configurada, especificamente, para: obter um valor de índice de um primeiro quadro de referência nas primeiras informações de movimento, e determinar um número de sequência do primeiro quadro de referência com base no valor de índice do primeiro quadro de referência e em uma primeira lista de quadros de referência, em que o primeiro quadro de referência é um quadro de referência do bloco de imagem atual na primeira direção, e o valor de índice do primeiro quadro de referência é um número do primeiro quadro de referência na primeira lista de quadros de referência; obter um valor de índice de um segundo quadro de referência, e determinar um número de sequência do segundo quadro de referência com base no valor de índice do segundo quadro de referência e em uma segunda lista de quadros de referência, em que o segundo quadro de referência é um quadro de referência do bloco de imagem atual na segunda direção, e o valor de índice do segundo quadro de referência é um número do segundo quadro de referência na segunda lista de quadros de referência; determinar um primeiro vetor de movimento com base em um primeiro vetor de movimento diferencial e em uma flag de primeiro preditor de vetor de movimento que estão nas primeiras informações de movimento, em que o primeiro vetor de movimento é um vetor de movimento do bloco de imagem atual na primeira direção; e derivar um segundo vetor de movimento nas segundas informações de movimento de acordo com a seguinte fórmula: POC_Cur − POC_listY mv_lY = × mv_lX POC_Cur − POC_listX
[0032] Na fórmula antecedente, mv_lY representa o segundo vetor de movimento, POC_Cur representa um número de sequência de um quadro atual, POC_listX representa o número de sequência do primeiro quadro de referência, POC_listY representa o número de sequência do segundo quadro de referência, mv_lX representa o primeiro vetor de movimento, e o segundo vetor de movimento é um vetor de movimento do bloco de imagem atual na segunda direção.
[0033] De modo opcional, em outra possível implantação deste pedido, a unidade de determinação é configurada, especificamente, para: obter um valor de índice de um primeiro quadro de referência nas primeiras informações de movimento, em que o primeiro quadro de referência é um quadro de referência do bloco de imagem atual na primeira direção, e o valor de índice do primeiro quadro de referência é um número do primeiro quadro de referência em uma primeira lista de quadros de referência; obter um valor de índice de um segundo quadro de referência, em que o segundo quadro de referência é um quadro de referência do bloco de imagem atual na segunda direção, e o valor de índice do segundo quadro de referência é um número do segundo quadro de referência em uma segunda lista de quadros de referência; determinar um primeiro vetor de movimento com base em um primeiro vetor de movimento diferencial e em uma flag de primeiro preditor de vetor de movimento que estão nas primeiras informações de movimento, em que o primeiro vetor de movimento é um vetor de movimento do bloco de imagem atual na primeira direção; e, quando o primeiro quadro de referência for um quadro de referência posterior do bloco de imagem atual e o segundo quadro de referência for um quadro de referência anterior do bloco de imagem atual ou, quando o primeiro quadro de referência for um quadro de referência anterior do bloco de imagem atual e o segundo quadro de referência for um quadro de referência posterior do bloco de imagem atual ou, quando o primeiro quadro de referência e o segundo quadro de referência forem, cada um, um quadro de referência posterior do bloco de imagem atual ou, quando o primeiro quadro de referência e o segundo quadro de referência forem, cada um, um quadro de referência anterior do bloco de imagem atual, derivar um segundo vetor de movimento nas segundas informações de movimento de acordo com a seguinte fórmula: mv_lY = −mv_lX
[0034] Na fórmula antecedente, mv_lY representa o segundo vetor de movimento, mv_lX representa o primeiro vetor de movimento, e o segundo vetor de movimento é um vetor de movimento do bloco de imagem atual na segunda direção.
[0035] De modo opcional, em outra possível implantação deste pedido, a unidade de determinação é configurada, especificamente, para: obter um valor de índice de um primeiro quadro de referência e um primeiro vetor de movimento diferencial que estão nas primeiras informações de movimento, e determinar um número de sequência do primeiro quadro de referência com base no valor de índice do primeiro quadro de referência e em uma primeira lista de quadros de referência, em que o primeiro quadro de referência é um quadro de referência do bloco de imagem atual na primeira direção, e o valor de índice do primeiro quadro de referência é um número do primeiro quadro de referência na primeira lista de quadros de referência; obter um valor de índice de um segundo quadro de referência, determinar um número de sequência do segundo quadro de referência com base no valor de índice do segundo quadro de referência e em uma segunda lista de quadros de referência, e determinar um segundo vetor de movimento predito com base no valor de índice do segundo quadro de referência e em uma lista de segundo vetor de movimento predito candidato, em que o segundo vetor de movimento predito é um vetor de movimento predito do bloco de imagem atual na segunda direção, o segundo quadro de referência é um quadro de referência do bloco de imagem atual na segunda direção, e o valor de índice do segundo quadro de referência é um número do segundo quadro de referência na segunda lista de quadros de referência; derivar um segundo vetor de movimento diferencial nas segundas informações de movimento de acordo com a seguinte fórmula: POC_Cur − POC_listY mvd_lY = × mvd_lX POC_Cur − POC_listX em que mvd_lY representa o segundo vetor de movimento diferencial, POC_Cur representa um número de sequência de um quadro atual, POC_listX representa o número de sequência do primeiro quadro de referência, POC_listY representa o número de sequência do segundo quadro de referência, e mvd_lX representa o primeiro vetor de movimento diferencial; e determinar um segundo vetor de movimento com base no segundo vetor de movimento predito e no segundo vetor de movimento diferencial, em que o segundo vetor de movimento é um vetor de movimento do bloco de imagem atual na segunda direção.
[0036] De modo opcional, em outra possível implantação deste pedido, a unidade de determinação é configurada, especificamente, para: obter um valor de índice de um primeiro quadro de referência e um primeiro vetor de movimento que estão nas primeiras informações de movimento, em que o primeiro quadro de referência é um quadro de referência do bloco de imagem atual na primeira direção, e o valor de índice do primeiro quadro de referência é um número do primeiro quadro de referência em uma primeira lista de quadros de referência; obter um valor de índice de um segundo quadro de referência, e determinar um segundo vetor de movimento predito com base no valor de índice do segundo quadro de referência e uma lista de segundo vetor de movimento predito candidato, em que o segundo vetor de movimento predito é um vetor de movimento predito do bloco de imagem atual na segunda direção, o segundo quadro de referência é um quadro de referência do bloco de imagem atual na segunda direção, e o valor de índice do segundo quadro de referência é um número do segundo quadro de referência em uma segunda lista de quadros de referência; quando o primeiro quadro de referência for um quadro de referência posterior do bloco de imagem atual e o segundo quadro de referência for um quadro de referência anterior do bloco de imagem atual ou, quando o primeiro quadro de referência for um quadro de referência anterior do bloco de imagem atual e o segundo quadro de referência for um quadro de referência posterior do bloco de imagem atual ou, quando o primeiro quadro de referência e o segundo quadro de referência forem, cada um, um quadro de referência posterior do bloco de imagem atual ou, quando o primeiro quadro de referência e o segundo quadro de referência forem, cada um, um quadro de referência anterior do bloco de imagem atual, derivar um segundo vetor de movimento diferencial nas segundas informações de movimento de acordo com a seguinte fórmula: mvd_lY = −mvd_lX em que mvd_lY representa o segundo vetor de movimento diferencial, e mvd_lX representa um primeiro vetor de movimento diferencial; e determinar um segundo vetor de movimento com base no segundo vetor de movimento predito e no segundo vetor de movimento diferencial, em que o segundo vetor de movimento é um vetor de movimento do bloco de imagem atual na segunda direção.
[0037] De modo opcional, em outra possível implantação deste pedido, a unidade de obtenção é configurada, especificamente, para: calcular um primeiro número de sequência com base no número de sequência do quadro atual e no número de sequência do primeiro quadro de referência de acordo com uma fórmula POC_listY0 = 2 ∗ POC_Cur − POC_listX , em que POC_Cur representa o número de sequência do quadro atual, POC_listX representa o número de sequência do primeiro quadro de referência, e POC_listY0 representa o primeiro número de sequência; e, quando a segunda lista de quadros de referência incluir o primeiro número de sequência, determinar, como o valor de índice do segundo quadro de referência, um número de um quadro de referência representado pelo primeiro número de sequência na segunda lista de quadros de referência.
[0038] De modo opcional, em outra possível implantação deste pedido, a unidade de obtenção é configurada, especificamente, para: calcular um segundo número de sequência com base no número de sequência do quadro atual e no número de sequência do primeiro quadro de referência de acordo com uma fórmula (POC_Cur − POC_listX) ∗ (POC_listY0′ − POC_Cur) > 0 , em que POC_listY0′ representa o segundo número de sequência; e, quando a segunda lista de quadros de referência incluir o segundo número de sequência, determinar, como o valor de índice do segundo quadro de referência, um número de um quadro de referência representado pelo segundo número de sequência na segunda lista de quadros de referência.
[0039] De modo opcional, em outra possível implantação deste pedido,
a unidade de obtenção é configurada, especificamente, para: calcular um terceiro número de sequência com base no número de sequência do quadro atual e no número de sequência do primeiro quadro de referência de acordo com uma fórmula POC_listX ≠ POC_listY0′′, em que POC_listY0′′ representa o terceiro número de sequência; e determinar, como o valor de índice do segundo quadro de referência, um número de um quadro de referência representado pelo terceiro número de sequência na segunda lista de quadros de referência.
[0040] De acordo com um terceiro aspecto, um método de predição inter bidirecional é fornecido. Há uma pluralidade de implantações para o método de predição inter bidirecional.
[0041] Uma implantação é: analisar um fluxo de bits para obter um primeiro identificador, em que o primeiro identificador é usado para indicar se determina segundas informações de movimento com base em primeiras informações de movimento, as primeiras informações de movimento são informações de movimento de um bloco de imagem atual em uma primeira direção, e as segundas informações de movimento são informações de movimento do bloco de imagem atual em uma segunda direção; se um valor do primeiro identificador for um primeiro valor predefinido, obter as primeiras informações de movimento, e determinar as segundas informações de movimento com base nas primeiras informações de movimento; e determinar amostras de predição do bloco de imagem atual com base nas primeiras informações de movimento e nas segundas informações de movimento.
[0042] Outra implantação é: analisar um fluxo de bits para obter um segundo identificador, em que o segundo identificador é usado para indicar se calcula informações de movimento de um bloco de imagem atual usando-se um algoritmo de derivação de informações de movimento; se um valor do segundo identificador for um segundo valor predefinido, obter um terceiro identificador, em que o terceiro identificador é usado para indicar se determina segundas informações de movimento com base em primeiras informações de movimento, as primeiras informações de movimento são informações de movimento do bloco de imagem atual em uma primeira direção, e as segundas informações de movimento são informações de movimento do bloco de imagem atual em uma segunda direção; se um valor do terceiro identificador for um terceiro valor predefinido, obter as primeiras informações de movimento, e determinar as segundas informações de movimento com base nas primeiras informações de movimento; e determinar amostras de predição do bloco de imagem atual com base nas primeiras informações de movimento e nas segundas informações de operação.
[0043] Outra implantação é: analisar um fluxo de bits para obter um segundo identificador, em que o segundo identificador é usado para indicar se calcula informações de movimento de um bloco de imagem atual usando-se um algoritmo de derivação de informações de movimento; se um valor do segundo identificador for um segundo valor predefinido, obter primeiras informações de movimento, e determinar segundas informações de movimento com base nas primeiras informações de movimento, em que as primeiras informações de movimento são informações de movimento do bloco de imagem atual em uma primeira direção, e as segundas informações de movimento são informações de movimento do bloco de imagem atual em uma segunda direção; e determinar amostras de predição do bloco de imagem atual com base nas primeiras informações de movimento e nas segundas informações de movimento.
[0044] Outra implantação é: analisar um fluxo de bits para obter um quarto identificador, em que o quarto identificador é usado para indicar se calcula informações de movimento de um bloco de imagem atual usando-se um algoritmo de derivação de informações de movimento; se um valor do quarto identificador for um quarto valor predefinido, determinar um valor de índice de um primeiro quadro de referência e um valor de índice de um segundo quadro de referência com base em uma primeira lista de quadros de referência e em uma segunda lista de quadros de referência, em que a primeira lista de quadros de referência é uma lista de quadros de referência do bloco de imagem atual em uma primeira direção, a segunda lista de quadros de referência é uma lista de quadros de referência do bloco de imagem atual em uma segunda direção, o primeiro quadro de referência é um quadro de referência do bloco de imagem atual na primeira direção, e o segundo quadro de referência é um quadro de referência do bloco de imagem atual na segunda direção; obter um primeiro vetor de movimento diferencial e uma flag de primeiro preditor de vetor de movimento, e determinar segundas informações de movimento com base em primeiras informações de movimento, em que as primeiras informações de movimento incluem o valor de índice do primeiro quadro de referência, o primeiro vetor de movimento diferencial e a flag de primeiro preditor de vetor de movimento, e as segundas informações de movimento são informações de movimento do bloco de imagem atual na segunda direção; e determinar amostras de predição do bloco de imagem atual com base nas primeiras informações de movimento e nas segundas informações de movimento.
[0045] Outra implantação é: analisar um fluxo de bits para obter um primeiro identificador, em que o primeiro identificador é usado para indicar se determina segundas informações de movimento com base em primeiras informações de movimento, as primeiras informações de movimento são informações de movimento de um bloco de imagem atual em uma primeira direção, e as segundas informações de movimento são informações de movimento do bloco de imagem atual em uma segunda direção; se um valor do primeiro identificador for um oitavo valor predefinido, obter um quinto identificador, em que o quinto identificador é usado para indicar se determina as primeiras informações de movimento com base nas segundas informações de movimento; se um valor do quinto identificador for um quinto valor predefinido, obter as segundas informações de movimento, e determinar as primeiras informações de movimento com base nas segundas informações de movimento; e determinar amostras de predição do bloco de imagem atual com base nas primeiras informações de movimento e nas segundas informações de movimento.
[0046] Outra implantação é: analisar um fluxo de bits para obter um segundo identificador, em que o segundo identificador é usado para indicar se calcula informações de movimento de um bloco de imagem atual usando-se um algoritmo de derivação de informações de movimento; se um valor do segundo identificador for um segundo valor predefinido, obter um terceiro identificador, em que o terceiro identificador é usado para indicar se determina segundas informações de movimento com base em primeiras informações de movimento, as primeiras informações de movimento são informações de movimento do bloco de imagem atual em uma primeira direção, e as segundas informações de movimento são informações de movimento do bloco de imagem atual em uma segunda direção; se um valor do terceiro identificador for um sexto valor predefinido, obter as segundas informações de movimento, e determinar as primeiras informações de movimento com base nas segundas informações de movimento; e determinar amostras de predição do bloco de imagem atual com base nas primeiras informações de movimento e nas segundas informações de operação.
[0047] Para descrições específicas do primeiro identificador ao quarto identificador, consulte as descrições a seguir.
[0048] No método de predição inter bidirecional fornecido neste pedido, após um identificador ser obtido analisando-se o fluxo de bits, se determina que as segundas informações de movimento com base nas primeiras informações de movimento é determinada com base em um valor do identificador. Após ser determinado que as segundas informações de movimento precisam ser determinadas com base nas primeiras informações de movimento, as primeiras informações de movimento são obtidas e, então, as segundas informações de movimento são determinadas com base nas primeiras informações de movimento obtidas. Desse modo, o fluxo de bits precisa incluir apenas o identificador correspondente e as primeiras informações de movimento, e não precisa mais incluir as segundas informações de movimento. Em comparação ao estado da técnica em que o fluxo de bits inclui as informações de movimento de cada bloco de imagem em cada direção, o método de predição inter bidirecional fornecido neste pedido reduz, de maneira eficaz, as informações de movimento incluídas no fluxo de bits, e aperfeiçoa a utilização eficaz de recursos de transmissão, uma taxa de transmissão e uma taxa de codificação.
[0049] De acordo com um quarto aspecto, um aparelho de predição inter bidirecional é fornecido. O aparelho de predição inter bidirecional inclui uma unidade de obtenção e uma unidade de determinação.
[0050] De maneira específica, em uma implantação, a unidade de obtenção é configurada para: analisar um fluxo de bits para obter um primeiro identificador, em que o primeiro identificador é usado para indicar se determina segundas informações de movimento com base em primeiras informações de movimento, as primeiras informações de movimento são informações de movimento de um bloco de imagem atual em uma primeira direção, e as segundas informações de movimento são informações de movimento do bloco de imagem atual em uma segunda direção; e, se um valor do primeiro identificador for um primeiro valor predefinido, obter as primeiras informações de movimento. A unidade de determinação é configurada para: determinar as segundas informações de movimento com base nas primeiras informações de movimento obtidas pela unidade de obtenção, e determinar amostras de predição do bloco de imagem atual com base nas primeiras informações de movimento e nas segundas informações de movimento.
[0051] Em outra implantação, a unidade de obtenção é configurada para: analisar um fluxo de bits para obter um segundo identificador, em que o segundo identificador é usado para indicar se calcula informações de movimento de um bloco de imagem atual usando-se um algoritmo de derivação de informações de movimento; se um valor do segundo identificador for um segundo valor predefinido, obter um terceiro identificador, em que o terceiro identificador é usado para indicar se determina segundas informações de movimento com base em primeiras informações de movimento, as primeiras informações de movimento são informações de movimento do bloco de imagem atual em uma primeira direção, e as segundas informações de movimento são informações de movimento do bloco de imagem atual em uma segunda direção; e, se um valor do terceiro identificador for um terceiro valor predefinido, obter as primeiras informações de movimento. A unidade de determinação é configurada para: determinar as segundas informações de movimento com base nas primeiras informações de movimento obtidas pela unidade de obtenção, e determinar amostras de predição do bloco de imagem atual com base nas primeiras informações de movimento e nas segundas informações de movimento.
[0052] Em outra implantação, a unidade de obtenção é configurada para: analisar um fluxo de bits para obter um segundo identificador, em que o segundo identificador é usado para indicar se calcula informações de movimento de um bloco de imagem atual usando-se um algoritmo de derivação de informações de movimento; e, se um valor do segundo identificador for um segundo valor predefinido, obter primeiras informações de movimento. A unidade de determinação é configurada para: determinar segundas informações de movimento com base nas primeiras informações de movimento obtidas pela unidade de obtenção, em que as primeiras informações de movimento são informações de movimento do bloco de imagem atual em uma primeira direção, e as segundas informações de movimento são informações de movimento do bloco de imagem atual em uma segunda direção; e determinar amostras de predição do bloco de imagem atual com base nas primeiras informações de movimento e nas segundas informações de movimento.
[0053] Em outra implantação, a unidade de obtenção é configurada para analisar um fluxo de bits para obter um quarto identificador, em que o quarto identificador é usado para indicar se calcula informações de movimento de um bloco de imagem atual usando-se um algoritmo de derivação de informações de movimento. A unidade de determinação é configurada para: se um valor do quarto identificador obtido pela unidade de obtenção for um quarto valor predefinido, determinar um valor de índice de um primeiro quadro de referência e um valor de índice de um segundo quadro de referência com base em uma primeira lista de quadros de referência e em uma segunda lista de quadros de referência, em que a primeira lista de quadros de referência é uma lista de quadros de referência do bloco de imagem atual em uma primeira direção, a segunda lista de quadros de referência é uma lista de quadros de referência do bloco de imagem atual em uma segunda direção, o primeiro quadro de referência é um quadro de referência do bloco de imagem atual na primeira direção, e o segundo quadro de referência é um quadro de referência do bloco de imagem atual na segunda direção. A unidade de obtenção é configurada, ainda, para obter um primeiro vetor de movimento diferencial e uma flag de primeiro preditor de vetor de movimento. A unidade de determinação é configurada, ainda, para: determinar segundas informações de movimento com base em primeiras informações de movimento, em que as primeiras informações de movimento incluem o valor de índice do primeiro quadro de referência, o primeiro vetor de movimento diferencial, e a flag de primeiro preditor de vetor de movimento, e as segundas informações de movimento são informações de movimento do bloco de imagem atual na segunda direção; e determinar amostras de predição do bloco de imagem atual com base nas primeiras informações de movimento e nas segundas informações de movimento.
[0054] De acordo com um quinto aspecto, um terminal é fornecido. O terminal inclui um ou mais processadores, uma memória e uma interface de comunicações. A memória e a interface de comunicações são acopladas ao um ou mais processadores. A memória é configurada para armazenar código de programa de computador. O código de programa de computador inclui uma instrução. Quando o um ou mais processadores executam a instrução, o terminal realiza o método de predição inter bidirecional de acordo com qualquer um dentre o primeiro aspecto ou as possíveis implantações do primeiro aspecto, ou realiza o método de predição inter bidirecional de acordo com qualquer um dentre o terceiro aspecto ou as possíveis implantações do terceiro aspecto.
[0055] De acordo com um sexto aspecto, um decodificador de vídeo é fornecido, que inclui uma mídia de armazenamento não volátil e uma unidade de processamento central. A mídia de armazenamento não volátil armazena um programa executável. A unidade de processamento central é conectada à mídia de armazenamento não volátil, e executa o programa executável para implantar o método de predição inter bidirecional de acordo com qualquer um dentre o primeiro aspecto ou as possíveis implantações do primeiro aspecto, ou o método de predição inter bidirecional de acordo com qualquer um dentre o terceiro aspecto ou as possíveis implantações do terceiro aspecto.
[0056] De acordo com um sétimo aspecto, um decodificador é fornecido. O decodificador inclui o aparelho de predição inter bidirecional no segundo aspecto e um módulo de reconstrução, em que o módulo de reconstrução é configurado para determinar valores de amostra reconstruída de um bloco de imagem atual com base em amostras de predição obtidas pelo aparelho de predição inter bidirecional; ou o decodificador inclui o aparelho de predição inter bidirecional no quarto aspecto e um módulo de reconstrução, em que o módulo de reconstrução é configurado para determinar valores de amostra reconstruída de um bloco de imagem atual com base em amostras de predição obtidas pelo aparelho de predição inter bidirecional.
[0057] De acordo com um oitavo aspecto, uma mídia de armazenamento legível por computador é fornecida. A mídia de armazenamento legível por computador armazena uma instrução. Quando a instrução é rodada no terminal no quinto aspecto, o terminal é habilitado a realizar o método de predição inter bidirecional de acordo com qualquer um dentre o primeiro aspecto ou as possíveis implantações do primeiro aspecto, ou realizar o método de predição inter bidirecional de acordo com qualquer um dentre o terceiro aspecto ou as possíveis implantações do terceiro aspecto.
[0058] De acordo com um nono aspecto, um produto de programa de computador, que inclui uma instrução, é fornecido. Quando o produto de programa de computador é rodado no terminal no quinto aspecto, o terminal é habilitado a realizar o método de predição inter bidirecional de acordo com qualquer um dentre o primeiro aspecto ou as possíveis implantações do primeiro aspecto, ou realizar o método de predição inter bidirecional de acordo com qualquer um dentre o terceiro aspecto ou as possíveis implantações do terceiro aspecto.
[0059] Neste pedido, um nome do aparelho de predição inter bidirecional não impõe limitação em dispositivos ou módulos funcionais. Em implantação real, os dispositivos ou os módulos funcionais podem ter outros nomes. Contanto que as funções dos dispositivos ou dos módulos funcionais sejam similares àquelas neste pedido, os dispositivos ou os módulos funcionais são abrangidos pelo escopo das reivindicações neste pedido e tecnologias equivalentes ao mesmo.
[0060] Para descrições específicas do quinto aspecto ao nono aspecto e implantações do quinto aspecto ao nono aspecto, consulte as descrições detalhadas do primeiro aspecto e as implantações do primeiro aspecto ou as descrições detalhadas do terceiro aspecto e as implantações do terceiro aspecto. Além disso, para efeitos benéficos do quinto aspecto ao nono aspecto e as implantações do quinto aspecto ao nono aspecto, consulte a análise dos efeitos benéficos do primeiro aspecto e as implantações do primeiro aspecto ou análise dos efeitos benéficos do terceiro aspecto e as implantações do terceiro aspecto. Os detalhes não são descritos novamente neste documento.
[0061] Esses aspectos ou outros aspectos neste pedido são mais concisos e compreensíveis na descrição a seguir.
BREVE DESCRIÇÃO DOS DESENHOS
[0062] A Figura 1 é um diagrama estrutural esquemático de um sistema de codificação de vídeo, de acordo com uma modalidade deste pedido;
[0063] A Figura 2 é um diagrama estrutural esquemático de um codificador de vídeo, de acordo com uma modalidade deste pedido;
[0064] A Figura 3 é um diagrama estrutural esquemático de um decodificador de vídeo, de acordo com uma modalidade deste pedido;
[0065] A Figura 4 é um fluxograma esquemático de um método de predição inter bidirecional, de acordo com uma modalidade deste pedido;
[0066] A Figura 5 é um primeiro diagrama estrutural esquemático de um aparelho de predição inter bidirecional, de acordo com uma modalidade deste pedido; e
[0067] A Figura 6 é um segundo diagrama estrutural esquemático de um aparelho de predição inter bidirecional, de acordo com uma modalidade deste pedido.
DESCRIÇÃO DAS MODALIDADES
[0068] No relatório descritivo, nas reivindicações e nos desenhos anexos deste pedido, os termos "primeiro", "segundo", "terceiro", "quarto" e assim por diante se destinam a distinguir entre objetos diferentes, mas não indicam uma ordem particular.
[0069] Nas modalidades deste pedido, a palavra "exemplo" ou "por exemplo" é usada para representar o fornecimento de um exemplo, uma ilustração ou uma descrição. Qualquer modalidade ou esquema de projeto descrito como um "exemplo" ou "por exemplo" nas modalidades deste pedido não deve ser explicado como sendo mais preferencial ou tendo mais vantagens do que outra modalidade ou esquema de projeto. De maneira exata, o uso da palavra "exemplo" ou "por exemplo" ou similar se destina a apresentar um conceito relacionado de um modo específico.
[0070] A fim de facilitar o entendimento das modalidades deste pedido, os elementos relacionados nas modalidades deste pedido são descritos em primeiro lugar neste documento.
[0071] Codificação de imagem (picture encoding): um processo de compressão de uma sequência de imagens em um fluxo de bits.
[0072] Decodificação de imagem (picture decoding): um processo de restauração do fluxo de bits em uma imagem reconstruída de acordo com uma regra de sintaxe específica e um método de processamento específico.
[0073] Atualmente, um processo de codificação de imagem de vídeo é da seguinte forma: Um codificador primeiro reparte um quadro de imagem original em uma pluralidade de partes que não se sobrepõem uma à outra, em que cada parte pode ser usada como um bloco de imagem. Então, o codificador realiza operações, tais como predição (Prediction), transformada (Transform) e quantização (Quantization) em cada bloco de imagem, para obter um fluxo de bits que corresponde ao bloco de imagem, em que a predição é realizada para obter um bloco de predição do bloco de imagem, de modo que apenas uma diferença (ou denominada um resíduo ou um bloco residual) entre o bloco de imagem e o bloco de predição do bloco de imagem possa ser codificada e transmitida, para reduzir sobrecargas de transmissão. Por fim, o codificador envia o fluxo de bits que corresponde ao bloco de imagem a um decodificador.
[0074] De modo correspondente, após receber o fluxo de bits, o decodificador realiza um processo de decodificação de vídeo. De maneira específica, o decodificador realiza operações, tais como predição, quantização inversa e transformada inversa no fluxo de bits recebido para obter um bloco de imagem reconstruído (ou denominado um bloco de imagem após reconstrução). Esse processo é denominado um processo de reconstrução de imagem (ou picture reconstruction process). Então, o decodificador monta um bloco reconstruído de cada bloco de imagem na imagem original para obter uma imagem reconstruída da imagem original, e reproduz a imagem reconstruída.
[0075] Uma tecnologia de codificação de imagem de vídeo existente inclui predição intra e predição inter. A predição inter é predição concluída por codificação de bloco de imagem/decodificação de bloco de imagem usando-se uma correlação entre um quadro atual e um quadro de referência do quadro atual. O quadro atual pode ter um ou mais quadros de referência. De maneira específica, um bloco de imagem de predição de um bloco de imagem atual é gerado com base em amostras em um quadro de referência do bloco de imagem atual.
[0076] De modo geral, o bloco de imagem de predição do bloco de imagem atual pode ser gerado com base em apenas um bloco de imagem de referência, ou o bloco de imagem de predição do bloco de imagem atual pode ser gerado com base em pelo menos dois blocos de imagem de referência. A geração do bloco de imagem de predição do bloco de imagem atual com base em um bloco de imagem de referência é denominada predição unidirecional, e a geração do bloco de imagem de predição do bloco de imagem atual com base em pelo menos dois blocos de imagem de referência é denominada predição inter bidirecional. Os pelo menos dois blocos de imagem de referência em predição inter bidirecional podem ser de um mesmo quadro de referência ou quadros de referência diferentes. Em outras palavras, uma "direção", neste pedido, é uma definição generalizada. Uma direção, neste pedido, corresponde a um bloco de imagem de referência. A primeira direção e a segunda direção a seguir correspondem a diferentes blocos de imagem de referência. Os dois blocos de imagem de referência podem ser incluídos em um quadro de referência posterior/quadro de referência anterior do bloco de imagem atual; ou um bloco de imagem de referência pode ser incluído em um quadro de referência posterior do bloco de imagem atual, e o outro bloco de imagem de referência pode ser incluído em um quadro de referência anterior do bloco de imagem atual.
[0077] De modo opcional, a predição inter bidirecional pode ser predição inter realizada usando-se uma correlação entre um quadro de vídeo atual e um quadro de vídeo que é codificado e reproduzido antes do quadro de vídeo atual e uma correlação entre o quadro de vídeo atual e um quadro de vídeo que é codificado antes do quadro de vídeo atual e reproduzido após o quadro de vídeo atual.
[0078] Pode-se aprender que predição inter bidirecional inclui predição inter em duas direções que é geralmente denominada predição inter posterior e predição inter anterior. A predição inter posterior é predição inter realizada usando-se a correlação entre o quadro de vídeo atual e o quadro de vídeo que é codificado e reproduzido antes do quadro de vídeo atual. A predição inter anterior é predição inter realizada usando-se a correlação entre o quadro de vídeo atual e o quadro de vídeo que é codificado antes do quadro de vídeo atual e reproduzido após o quadro de vídeo atual.
[0079] A predição inter posterior corresponde a uma lista de quadros de referência posteriores L0, e a predição inter anterior corresponde a uma lista de quadros de referência anteriores L1. As duas listas de quadros de referência podem incluir uma mesma quantidade de quadros de referência ou quantidades diferentes de quadros de referência.
[0080] A compensação de movimento (Motion Compensation, MC) é um processo de predição do bloco de imagem atual usando-se um bloco de imagem de referência.
[0081] Na maioria das estruturas de codificação, uma sequência de vídeo inclui uma série de imagens (picture), uma imagem é dividida em pelo menos uma slice (slice), e cada slice é dividida em blocos (block) de imagem. A codificação/decodificação de vídeo é realizada por bloco de imagem. O processamento de codificação/decodificação pode ser realizado da esquerda para a direita e da parte superior para a inferior linha por linha iniciando a partir de uma posição de aresta superior-esquerda da imagem. Neste documento, o bloco de imagem pode ser um macrobloco (macro block, MB) em um padrão de codificação de vídeo H.264, ou pode ser uma unidade de codificação (Coding
Unit, CU) em um padrão de codificação de vídeo de alta eficiência (High Efficiency Video Coding, HEVC). Isso não é especificamente limitado nas modalidades deste pedido.
[0082] Neste pedido, um bloco de imagem que está sendo codificado/decodificado é denominado o bloco de imagem atual (bloco atual, current block), e uma imagem em que o bloco de imagem atual está localizado é denominada o quadro atual.
[0083] De modo geral, o quadro atual pode ser um quadro de predição unidirecional (quadro P), ou pode ser um quadro de predição bidirecional (quadro B). Quando o quadro atual for o quadro P, o quadro atual tem uma lista de quadros de referência. Quando o quadro atual for o quadro B, o quadro atual tem duas listas de quadros de referência, e as duas listas são geralmente denominadas L0 e L1, respectivamente. Cada lista de quadros de referência inclui pelo menos um quadro reconstruído que é usado como o quadro de referência do quadro atual. O quadro de referência é usado para fornecer uma amostra de referência para predição inter do quadro atual.
[0084] No quadro atual, um bloco de imagem vizinho (por exemplo, no lado esquerdo, superior ou direito do bloco atual) do bloco de imagem atual pode ter sido codificado/decodificado, e uma imagem reconstruída é obtida. O bloco de imagem vizinho é denominado o bloco de imagem reconstruído. Informações, tais como um modo de codificação e uma amostra reconstruída do bloco de imagem reconstruído estão disponíveis (available).
[0085] Um quadro que foi codificado/decodificado antes de o quadro atual ser codificado/decodificado é denominado um quadro reconstruído.
[0086] Um vetor de movimento (Motion Vector, MV) é um parâmetro importante em um processo de predição inter, e representa um deslocamento espacial de um bloco de imagem codificado em relação ao bloco de imagem atual. Normalmente, o vetor de movimento pode ser obtido usando-se um método de estimação de movimento (Motion Estimation, ME), tal como busca de movimento. Em uma tecnologia predição inter preliminar, o codificador transmite um vetor de movimento do bloco de imagem atual no fluxo de bits, de modo que o decodificador reproduza amostras de predição do bloco de imagem atual, para obter um bloco reconstruído. Para aperfeiçoar, de modo adicional, a eficiência de codificação, um método para codificar, de modo diferencial, o vetor de movimento usando-se um vetor de movimento de referência é fornecido posteriormente, de modo específico, apenas um vetor de movimento diferencial (Motion Vector Difference, MVD) é codificado.
[0087] Para possibilitar que o decodificador e o codificador usem um mesmo bloco de imagem de referência, o codificador precisa enviar informações de movimento de cada bloco de imagem ao decodificador no fluxo de bits. Se o codificador codificar diretamente um vetor de movimento de cada bloco de imagem, uma grande quantidade de recursos de transmissão é consumida. Visto que vetores de movimento de blocos de imagem espacialmente adjacentes estão fortemente correlacionados, o vetor de movimento do bloco de imagem atual pode ser predito com base em um vetor de movimento de um bloco de imagem vizinho codificado. Um vetor de movimento obtido através de predição é denominado um MVP, e uma diferença entre o vetor de movimento do bloco de imagem atual e o MVP é denominada o MVD.
[0088] No padrão de codificação de vídeo H.264, predição de quadro de múltipla referência é usada em um processo de estimação de movimento para aperfeiçoar a precisão de predição. De modo específico, um armazenamento temporário que armazena uma pluralidade de quadros reconstruídos é criado, e todos os quadros reconstruídos no armazenamento temporário são vasculhados em busca de um bloco de imagem de referência ideal para compensação de movimento, para melhor remover redundância temporal. No padrão de codificação de vídeo H.264, dois armazenamentos temporários são usados em predição inter: uma lista de quadros de referência 0 (lista de referência 0) e uma lista de quadros de referência 1 (lista de referência 1). Um quadro de referência em que um bloco de referência ideal em cada lista está localizado é marcado com um valor de índice, a saber, ref_idx_l0 e ref_idx_l1. Em cada lista de quadros de referência, as informações de movimento de um bloco de imagem de referência incluem um valor de índice de quadro de referência (ref_idx_l0 ou ref_idx_l1), uma flag de MVP e um MVD. O decodificador pode encontrar um bloco de imagem de referência correto em um quadro de referência selecionado com base no valor de índice de quadro de referência, na flag de MVP e no MVD.
[0089] Atualmente, modos de predição inter frequentemente usados no padrão HEVC são um modo de predição de vetor de movimento avançada (Advanced Motion Vector Prediction, AMVP), um modo mesclado (Merge) e um modo de predição de modelo de movimento não translacional.
[0090] No modo de AMVP, o codificador constrói uma lista de vetor de movimento candidato usando-se um vetor de movimento de um bloco de imagem codificado que é adjacente de modo espacial ou temporal ao bloco de imagem atual, e determina um vetor de movimento ideal na lista de vetor de movimento candidato como o MVP do bloco de imagem atual com base em um custo de distorção de taxa. Além disso, o codificador realiza busca de movimento em uma vizinhança centralizada no MVP para obter o vetor de movimento do bloco de imagem atual. O codificador transmite um valor de índice (a saber, a flag de MVP) do MVP na lista de vetor de movimento candidato, no valor de índice de quadro de referência e no MVD ao decodificador.
[0091] No modo mesclado, o codificador constrói uma lista de informações de movimento candidatas usando-se informações de movimento do bloco de imagem codificado que é adjacente de modo espacial ou temporal ao bloco de imagem atual, e determina informações de movimento ideais na lista de informações de movimento candidatas como informações de movimento do bloco de imagem atual com base no custo de distorção de taxa. O codificador transmite um valor de índice de uma posição das informações de movimento ideais na lista de informações de movimento candidatas ao decodificador.
[0092] No modo de predição de modelo de movimento não translacional, o codificador e o decodificador derivam informações de movimento de todos os sub-blocos do bloco de imagem atual usando-se um mesmo modelo de movimento, e realizam compensação de movimento com base nas informações de movimento de todos os sub-blocos para obter o bloco de imagem de predição. Isso aperfeiçoa a eficiência de predição. Um modelo de movimento frequentemente usado pelo codificador e pelo decodificador é um modelo afim de parâmetro 4, um modelo de transformada afim de parâmetro 6 ou um modelo bilinear de parâmetro 8.
[0093] Por exemplo, o modelo de transformada afim de parâmetro 4 pode ser representado usando-se vetores de movimento de duas amostras e coordenadas das duas amostras em relação a uma amostra na aresta superior- esquerda do bloco de imagem atual. Neste documento, uma amostra usada para representar um parâmetro de modelo de movimento é denominada um ponto de controle. Se a amostra na aresta superior-esquerda (0, 0) do bloco de imagem atual e uma amostra na aresta superior-direita (𝑊𝑊, 0) do bloco de imagem atual forem pontos de controle, e vetores de movimento das amostras na aresta superior-esquerda e na aresta superior-direita do bloco de imagem atual forem (𝑣𝑣𝑣𝑣0 , 𝑣𝑣𝑣𝑣0 ) e (𝑣𝑣𝑣𝑣1 , 𝑣𝑣𝑣𝑣1 ) respectivamente, informações de movimento de cada sub- bloco do bloco de imagem atual são obtidas de acordo com a fórmula (1) a seguir. Na fórmula (1) a seguir, (𝑥𝑥, 𝑦𝑦) é coordinates do sub-bloco em relação à amostra na aresta superior-esquerda do bloco de imagem atual, (𝑣𝑣𝑣𝑣, 𝑣𝑣𝑣𝑣) é um vetor de movimento do sub-bloco, e 𝑊𝑊 é a largura do bloco de imagem atual. 𝑣𝑣𝑣𝑣1 −𝑣𝑣𝑣𝑣0 𝑣𝑣𝑣𝑣1 −𝑣𝑣𝑣𝑣0 𝑣𝑣𝑣𝑣 = 𝑥𝑥 − 𝑦𝑦 + 𝑣𝑣𝑣𝑣0
𝑊𝑊 𝑊𝑊 � 𝑣𝑣𝑣𝑣1 −𝑣𝑣𝑣𝑣0 𝑣𝑣𝑣𝑣1 −𝑣𝑣𝑣𝑣0 (1) 𝑣𝑣𝑣𝑣 = 𝑥𝑥 + 𝑦𝑦 + 𝑣𝑣𝑣𝑣0
𝑊𝑊 𝑊𝑊
[0094] Por exemplo, o modelo de transformada afim de parâmetro 6 pode ser representado usando-se vetores de movimento de três amostras e coordenadas das três amostras em relação à amostra na aresta superior- esquerda do bloco de imagem atual. Se a amostra na aresta superior-esquerda (0, 0) do bloco de imagem atual, a amostra na aresta superior-direita (W, 0) do bloco de imagem atual e uma amostra na aresta inferior-esquerda (0, 𝐻𝐻 ) do bloco de imagem atual forem pontos de controle, e vetores de movimento das amostras na aresta superior-esquerda, na aresta superior-direita e na aresta inferior-esquerda do bloco de imagem atual forem ( 𝑣𝑣𝑣𝑣0 , 𝑣𝑣𝑣𝑣0 ), ( 𝑣𝑣𝑣𝑣1 , 𝑣𝑣𝑣𝑣1 ) e (𝑣𝑣𝑣𝑣2 , 𝑣𝑣𝑣𝑣2 ), respectivamente, as informações de movimento de cada sub-bloco do bloco de imagem atual são obtidas de acordo com a fórmula (2) a seguir. Na fórmula (2) a seguir, (𝑥𝑥, 𝑦𝑦) é a coordinates do sub-bloco em relação à amostra na aresta superior-esquerda do bloco de imagem atual, ( vx, vy ) é o vetor de movimento do sub-bloco, W e H são a largura e a altura do bloco de imagem atual, respectivamente. 𝑣𝑣𝑣𝑣1 −𝑣𝑣𝑣𝑣0 𝑣𝑣𝑣𝑣2 −𝑣𝑣𝑣𝑣0 𝑣𝑣𝑣𝑣 = 𝑥𝑥 + 𝑦𝑦 + 𝑣𝑣𝑣𝑣0
𝑊𝑊 𝐻𝐻 � 𝑣𝑣𝑣𝑣1 −𝑣𝑣𝑣𝑣0 𝑣𝑣𝑣𝑣2 −𝑣𝑣𝑣𝑣0 (2) 𝑣𝑣𝑣𝑣 = 𝑥𝑥 + 𝑦𝑦 + 𝑣𝑣𝑣𝑣0
𝑊𝑊 𝐻𝐻
[0095] Por exemplo, o modelo bilinear de parâmetro 8 pode ser representado usando-se vetores de movimento de quatro amostras e coordenadas das quatro amostras em relação à amostra na aresta superior- esquerda do bloco de imagem atual. Se a amostra na aresta superior-esquerda (0, 0) do bloco de imagem atual, a amostra na aresta superior-direita (𝑊𝑊, 0) do bloco de imagem atual, a amostra na aresta inferior-esquerda (0, 𝐻𝐻) do bloco de imagem atual e uma amostra na aresta inferior-direita (𝑊𝑊 , 𝐻𝐻 ) do bloco de imagem atual forem pontos de controle, e vetores de movimento das amostras na aresta superior-esquerda, na aresta superior-direita, na aresta inferior- esquerda e na aresta inferior-direita do bloco de imagem atual forem (𝑣𝑣𝑣𝑣0 , 𝑣𝑣𝑣𝑣0 ), (𝑣𝑣𝑣𝑣1 , 𝑣𝑣𝑣𝑣1 ), (𝑣𝑣𝑣𝑣2 , 𝑣𝑣𝑣𝑣2 ) e (𝑣𝑣𝑣𝑣3 , 𝑣𝑣𝑣𝑣3 ), respectivamente, as informações de movimento de cada sub-bloco do bloco de imagem atual são obtidas de acordo com a fórmula (3) a seguir. Na fórmula a seguir (3), (𝑥𝑥, 𝑦𝑦) é a coordinates do sub-bloco em relação à amostra na aresta superior-esquerda do bloco de imagem atual, (𝑣𝑣𝑣𝑣, 𝑣𝑣𝑣𝑣) é o vetor de movimento do sub-bloco, e 𝑊𝑊 e 𝐻𝐻 são a largura e a altura do bloco de imagem atual, respectivamente. 𝑣𝑣1𝑥𝑥 −𝑣𝑣0𝑥𝑥 𝑣𝑣2𝑥𝑥 −𝑣𝑣0𝑥𝑥 𝑣𝑣3𝑥𝑥 +𝑣𝑣0𝑥𝑥 −𝑣𝑣1𝑥𝑥 −𝑣𝑣2𝑥𝑥 𝑣𝑣𝑥𝑥 = 𝑥𝑥 + 𝑦𝑦 + 𝑥𝑥𝑥𝑥 + 𝑣𝑣0𝑥𝑥
𝑊𝑊 𝐻𝐻 𝑊𝑊𝑊𝑊 � 𝑣𝑣1𝑦𝑦 −𝑣𝑣0𝑦𝑦 𝑣𝑣2𝑦𝑦 −𝑣𝑣0𝑦𝑦 𝑣𝑣3𝑦𝑦 +𝑣𝑣0𝑦𝑦 −𝑣𝑣1𝑦𝑦 −𝑣𝑣2𝑦𝑦 (3) 𝑣𝑣𝑦𝑦 = 𝑥𝑥 + 𝑦𝑦 + 𝑥𝑥𝑥𝑥 + 𝑣𝑣0𝑦𝑦
𝑊𝑊 𝐻𝐻 𝑊𝑊𝑊𝑊
[0096] Pode-se aprender com facilidade que, em qualquer um dentre os modos de predição inter antecedentes, se a predição inter for predição inter bidirecional, o codificador precisa enviar informações de movimento de cada bloco de imagem em cada direção ao decodificador. Consequentemente, as informações de movimento ocupam uma quantidade relativamente grande de recursos de transmissão. Isso reduz a utilização eficaz de recursos de transmissão, uma taxa de transmissão e a eficiência de compressão de codificação.
[0097] A fim de solucionar o problema antecedente, este pedido fornece um método de predição inter bidirecional. Em predição inter bidirecional, um codificador envia informações de movimento de um bloco de imagem atual em uma primeira direção para um decodificador e, após receber as informações de movimento do bloco de imagem atual na primeira direção, o decodificador calcula informações de movimento do bloco de imagem atual em uma segunda direção com base nas informações de movimento do bloco de imagem atual na primeira direção. Desse modo, amostras de predição do bloco de imagem atual podem ser calculadas com base nas informações de movimento do bloco de imagem atual na primeira direção e nas informações de movimento do bloco de imagem atual na segunda direção.
[0098] O método de predição inter bidirecional fornecido neste pedido pode ser executado por um aparelho de predição inter bidirecional, um aparelho de codificação de vídeo, um codec de vídeo ou outro dispositivo que tenha uma função de codificação de vídeo.
[0099] O método de predição inter bidirecional fornecido neste pedido é aplicável a um sistema de codificação de vídeo. No sistema de codificação de vídeo, um codificador de vídeo 100 e um decodificador de vídeo 200 são configurados para calcular informações de movimento de um bloco de imagem atual de acordo com exemplos do método de predição inter bidirecional fornecido neste pedido. De maneira específica, as informações de movimento do bloco de imagem atual em uma segunda direção são calculadas com base em informações de movimento do bloco de imagem atual em uma primeira direção, de modo que amostras de predição do bloco de imagem atual sejam determinadas com base nas informações de movimento do bloco de imagem atual na primeira direção e nas informações de movimento do bloco de imagem atual na segunda direção. Desse modo, apenas as informações de movimento do bloco de imagem atual na primeira direção precisam ser transmitidas entre o codificador de vídeo 100 e o codificador de vídeo 200. Isso aperfeiçoa, de maneira eficaz, a utilização de recurso de transmissão e eficiência de compressão de codificação.
[0100] A Figura 1 mostra uma estrutura de um sistema de codificação de vídeo 1. Conforme mostrado na Figura 1, o sistema de codificação de vídeo 1 inclui um aparelho de origem 10 e um aparelho de destino 20. O aparelho de origem 10 gera dados de vídeo codificados. O aparelho de origem 10 também pode ser denominado um aparelho de codificação de vídeo ou um dispositivo de codificação de vídeo. O aparelho de destino 20 pode decodificar os dados de vídeo codificados gerados pelo aparelho de origem 10. O aparelho de destino 20 também pode ser denominado um aparelho de decodificação de vídeo ou um dispositivo de decodificação de vídeo. O aparelho de origem 10 e/ou o aparelho de destino 20 podem incluir pelo menos um processador e uma memória acoplada ao pelo menos um processador. A memória pode incluir, mas não é limitada a uma memória apenas leitura (Read-Only Memory, ROM), uma memória de acesso aleatório (Random Access Memory, RAM), uma memória apenas leitura programável apagável eletricamente (Electrically Erasable Programmable Read-Only Memory, EEPROM), uma memória flash ou qualquer outra mídia que possa ser configurada para armazenar código de programa necessário em uma forma de uma instrução ou uma estrutura de dados que possa ser acessada por um computador. Isso não é especificamente limitado neste pedido.
[0101] O aparelho de origem 10 e o aparelho de destino 20 podem incluir diversos aparelhos, incluindo um computador desktop, um aparelho de computação móvel, um computador do tipo notebook (por exemplo, laptop), um computador do tipo tablet, um decodificador de sinais, um aparelho de telefone portátil, tal como um telefone "inteligente", um televisor, uma câmera, um aparelho de exibição, um reprodutor de mídia digital, um console de vídeo game, um computador montado em veículo ou um aparelho similar.
[0102] O aparelho de destino 20 pode receber os dados de vídeo codificados do aparelho de origem 10 através de um enlace 30. O enlace 30 pode incluir uma ou mais mídias e/ou aparelhos que podem transferir os dados de vídeo codificados do aparelho de origem 10 para o aparelho de destino 20. Em um exemplo, o enlace 30 pode incluir uma ou mais mídias de comunicações que possibilitam que o aparelho de origem 10 transmita diretamente os dados de vídeo codificados ao aparelho de destino 20 em tempo real. Neste exemplo, o aparelho de origem 10 pode modular os dados de vídeo codificados de acordo com um padrão de comunicações (por exemplo, um protocolo de comunicações sem fio), e pode transmitir dados de vídeo modulados ao aparelho de destino 20. A uma ou mais mídias de comunicações podem incluir mídias de comunicações com e/ou sem fio, por exemplo, um espectro de radiofrequência (Radio Frequency, RF), ou um ou mais cabos de transmissão física. A uma ou mais mídias de comunicações podem constituir uma parte de uma rede baseada em pacote e a rede baseada em pacote é, por exemplo, uma rede de área local, uma rede de área ampla ou uma rede global (por exemplo, a internet). A uma ou mais mídias de comunicações podem incluir um roteador, um comutador, uma estação base ou outro dispositivo que implanta comunicação do aparelho de origem 10 para o aparelho de destino 20.
[0103] Em outro exemplo, os dados de vídeo codificados podem ser emitidos para um aparelho de armazenamento 40 através de uma interface de saída 140. De modo similar, os dados de vídeo codificados podem ser acessados a partir do aparelho de armazenamento 40 através de uma interface de entrada
240. O aparelho de armazenamento 40 pode incluir uma pluralidade de tipos de mídias de armazenamento de dados localmente acessíveis, tais como um disco Blu-ray, um disco de vídeo digital de alta densidade (Digital Video Disc, DVD), um disco compacto memória apenas leitura (Compact Disc Read-Only Memory, CD-ROM), uma memória flash ou outra mídia de armazenamento digital apropriada configurada para armazenar os dados de vídeo codificados.
[0104] Em outro exemplo, o aparelho de armazenamento 40 pode corresponder a um servidor de arquivos ou outro aparelho de armazenamento intermediário que armazena os dados de vídeo codificados gerados pelo aparelho de origem 10. Neste exemplo, o aparelho de destino 20 pode obter dados de vídeo armazenados a partir do aparelho de armazenamento 40 através de transmissão por streaming ou transferência por download. O servidor de arquivos pode ser qualquer tipo de servidor que possa armazenar os dados de vídeo codificados e transmitir os dados de vídeo codificados ao aparelho de destino 20. Por exemplo, o servidor de arquivos pode incluir um servidor de rede de alcance mundial (World Wide Web, Web) (por exemplo, usado para um site da web), um servidor de protocolo de transferência de arquivos (File Transfer Protocol, FTP), um aparelho de armazenamento ligado à rede (Network Attached Storage, NAS), e uma unidade de disco local.
[0105] O aparelho de destino 20 pode acessar os dados de vídeo codificados através de qualquer conexão de dados padrão (por exemplo, uma conexão com a internet). Um tipo exemplificativo da conexão de dados inclui um canal sem fio ou uma conexão com fio (por exemplo, um modem a cabo) que é adequada para acessar os dados de vídeo codificados armazenados no servidor de arquivos, ou uma combinação dos mesmos. Os dados de vídeo codificados podem ser transmitidos do servidor de arquivos em um modo streaming, através de transferência por download ou através de uma combinação dos mesmos.
[0106] O método de predição inter bidirecional, neste pedido, não é limitado a um cenário de aplicação sem fio. Por exemplo, o método de predição inter bidirecional, neste pedido, pode ser aplicado à codificação de vídeo para suportar uma pluralidade de aplicações de multimídia, tais como as seguintes aplicações: difusão de televisão pelo ar, transmissão de televisão a cabo, transmissão de televisão por satélite, transmissão de vídeo por streaming (por exemplo, através da internet), codificação de dados de vídeo armazenados em uma mídia de armazenamento de dados, decodificação de dados de vídeo armazenados em uma mídia de armazenamento de dados ou outra aplicação. Em alguns exemplos, o sistema de codificação de vídeo 1 pode ser configurado para suportar transmissão de vídeo unidirecional ou bidirecional, para suportar aplicações, tais como transmissão de vídeo por streaming, reprodução de vídeo, difusão de vídeo e/ou videotelefonia.
[0107] Deve-se observar que o sistema de codificação de vídeo 1, mostrado na Figura 1, é apenas um exemplo do sistema de codificação de vídeo, e não limita o sistema de codificação de vídeo neste pedido. O método de predição inter bidirecional, fornecido neste pedido, pode ser aplicável, também, a um cenário em que não há comunicação de dados entre um aparelho de codificação e um aparelho de decodificação. Em outros exemplos, dados de vídeo a serem codificados ou os dados de vídeo codificados podem ser recuperados de uma memória local, ou podem ser transmitidos no modo por streaming em uma rede, ou similares. O aparelho de codificação de vídeo pode codificar os dados de vídeo a serem codificados e armazenar os dados de vídeo codificados na memória. O aparelho de decodificação de vídeo também pode obter os dados de vídeo codificados da memória e decodificar os dados de vídeo codificados.
[0108] Na Figura 1, o aparelho de origem 10 inclui uma fonte de vídeo 101, um codificador de vídeo 102 e uma interface de saída 103. Em alguns exemplos, a interface de saída 103 pode incluir um regulador/demodulador (modem) e/ou um transmissor. A fonte de vídeo 101 pode incluir um aparelho de captura de vídeo (por exemplo, uma câmera), um arquivo de vídeo incluindo dados de vídeo previamente capturados, uma interface de entrada de vídeo para receber dados de vídeo a partir de um provedor de conteúdo de vídeo e/ou um sistema gráfico de computador para gerar dados de vídeo ou uma combinação das fontes de dados de vídeo antecedentes.
[0109] O codificador de vídeo 102 pode codificar dados de vídeo que são da fonte de vídeo 101. Em alguns exemplos, o aparelho de origem 10 transmite diretamente os dados de vídeo codificados ao aparelho de destino 20 através da interface de saída 103. Em outros exemplos, os dados de vídeo codificados podem ser armazenados, de modo alternativo, no aparelho de armazenamento 40, de modo que o aparelho de destino 20 acesse, subsequentemente, os dados de vídeo codificados para decodificação e/ou reprodução.
[0110] Em um exemplo na Figura 1, o aparelho de destino 20 inclui um aparelho de exibição 201, um decodificador de vídeo 202 e uma interface de entrada 203. Em alguns exemplos, a interface de entrada 203 inclui um receptor e/ou um modem. A interface de entrada 203 pode receber os dados de vídeo codificados através do enlace 30 e/ou a partir do aparelho de armazenamento
40. O aparelho de exibição 201 pode ser integrado ao aparelho de destino 20 ou pode ser disposto fora do aparelho de destino 20. Geralmente, o aparelho de exibição 201 exibe dados de vídeo decodificados. O aparelho de exibição 201 pode incluir uma pluralidade de tipos de aparelhos de exibição, por exemplo, uma tela de cristal líquido, uma tela de plasma, uma tela de diodo emissor de luz orgânica ou um aparelho de exibição de outro tipo.
[0111] De modo opcional, o codificador de vídeo 102 e o decodificador de vídeo 202 podem ser integrados, respectivamente, a um codificador de áudio e a um decodificador de áudio, e podem incluir uma unidade de multiplexador- demultiplexador apropriada ou outro hardware e software, para codificar tanto um áudio quanto um vídeo em um fluxo de dados comum ou fluxos de dados separados.
[0112] O codificador de vídeo 102 e o decodificador de vídeo 202 podem incluir pelo menos um microprocessador, um processador de sinal digital (Digital Signal Processor, DSP), um circuito integrado de aplicação específica (Application-Specific Integrated Circuit, ASIC), um arranjo de portas programável em campo (Field Programmable Gate Array, FPGA), lógica discreta, hardware ou qualquer combinação dos mesmos. Se o método de predição inter bidirecional fornecido neste pedido for implantado usando-se software, uma instrução usada para o software pode ser armazenada em uma mídia de armazenamento legível por computador não volátil apropriada, e pelo menos um processador pode ser usado para executar a instrução no hardware para implantar este pedido. Qualquer um dentre o conteúdo antecedente (que inclui o hardware, o software, uma combinação do hardware e do software e similares) pode ser considerado como o pelo menos um processador. O codificador de vídeo 102 pode ser incluído em um codificador, o decodificador de vídeo 202 pode ser incluído em um decodificador, e o codificador ou o decodificador pode ser uma parte de um codificador/decodificador (codec) combinado em um aparelho correspondente.
[0113] O codificador de vídeo 102 e o decodificador de vídeo 202, neste pedido, podem realizar operações de acordo com um padrão de compressão de vídeo (por exemplo, HEVC), ou podem realizar operações de acordo com outro padrão industrial. Isso não é especificamente limitado neste pedido.
[0114] O codificador de vídeo 102 é configurado para: realizar estimação de movimento bidirecional em um bloco de imagem atual, para determinar informações de movimento do bloco de imagem atual em uma primeira direção, e calcular informações de movimento do bloco de imagem atual em uma segunda direção com base nas informações de movimento do bloco de imagem atual na primeira direção. Desse modo, o codificador de vídeo 102 determina um bloco de imagem de predição do bloco de imagem atual com base nas informações de movimento do bloco de imagem atual na primeira direção e nas informações de movimento do bloco de imagem atual na segunda direção. De modo adicional, o codificador de vídeo 102 realiza operações, tais como transformada e quantização em um resíduo entre o bloco de imagem atual e o bloco de imagem de predição do bloco de imagem atual para gerar um fluxo de bits, e envia o fluxo de bits ao decodificador de vídeo 202. O fluxo de bits inclui as informações de movimento do bloco de imagem atual na primeira direção e informações de indicação que são usadas para indicar a determinação das segundas informações de movimento com base nas primeiras informações de movimento. As informações de indicação podem ser representadas usando-se diferentes identificadores. Para um método para representar as informações de indicação, consulte as descrições a seguir.
[0115] De modo opcional, um método usado pelo codificador de vídeo 102 para calcular as informações de movimento do bloco de imagem atual na segunda direção com base nas informações de movimento do bloco de imagem atual na primeira direção pode ser: O codificador de vídeo 102 determina um vetor de movimento do bloco de imagem atual na segunda direção com base em um vetor de movimento do bloco de imagem atual na primeira direção; ou o codificador de vídeo 102 determina um vetor de movimento diferencial do bloco de imagem atual na segunda direção com base em um vetor de movimento diferencial do bloco de imagem atual na primeira direção, e determina um vetor de movimento do bloco de imagem atual na segunda direção com base no vetor de movimento diferencial do bloco de imagem atual na segunda direção e em um vetor de movimento predito do bloco de imagem atual na segunda direção.
[0116] Consulte a Figura 4 a seguir. O decodificador de vídeo 202 é configurado para: obter o fluxo de bits, e analisar o fluxo de bits para obter as informações de indicação usadas para indicar a determinação das segundas informações de movimento com base nas primeiras informações de movimento (S400), em outras palavras, determinar a derivação e cálculo, com base em informações de movimento em uma direção, de informações de movimento em outra direção, em que as primeiras informações de movimento são informações de movimento do bloco de imagem atual na primeira direção, as segundas informações de movimento são informações de movimento do bloco de imagem atual na segunda direção, e a primeira direção e a segunda direção, neste documento, são diferentes; obter as primeiras informações de movimento (S401); determinar as segundas informações de movimento com base nas primeiras informações de movimento obtidas (S402); e determinar amostras de predição do bloco de imagem atual com base nas primeiras informações de movimento e nas segundas informações de movimento (S403).
[0117] Um método usado pelo decodificador de vídeo 202 para calcular as informações de movimento do bloco de imagem atual na segunda direção com base nas informações de movimento do bloco de imagem atual na primeira direção pode ser: O decodificador de vídeo 202 determina o vetor de movimento do bloco de imagem atual na segunda direção com base no vetor de movimento do bloco de imagem atual na primeira direção; ou o decodificador de vídeo 202 determina o vetor de movimento diferencial do bloco de imagem atual na segunda direção com base no vetor de movimento diferencial do bloco de imagem atual na primeira direção, e determina o vetor de movimento do bloco de imagem atual na segunda direção com base no vetor de movimento diferencial do bloco de imagem atual na segunda direção e no vetor de movimento predito do bloco de imagem atual na segunda direção.
[0118] A Figura 2 é um diagrama estrutural esquemático do codificador de vídeo 102, de acordo com uma modalidade deste pedido. Conforme mostrado na Figura 2, o codificador de vídeo 102 é configurado para emitir um vídeo para uma entidade de pós-processamento 41. A entidade de pós- processamento 41 representa um exemplo de uma entidade de vídeo com a capacidade de processar os dados de vídeo codificados que são do codificador de vídeo 102, por exemplo, um elemento de rede de conhecimento de mídia (MANE) ou um aparelho de splicing/um aparelho de edição. Em alguns casos, a entidade de pós-processamento 41 pode ser um exemplo de uma entidade de rede. Em alguns sistemas de codificação de vídeo, a entidade de pós- processamento 41 e o codificador de vídeo 102 podem ser componentes de aparelhos separados. Em outros casos, as funções descritas em relação à entidade de pós-processamento 41 podem ser realizadas por um mesmo aparelho incluindo o codificador de vídeo 102. Em um exemplo, a entidade de pós-processamento 41 é um exemplo do aparelho de armazenamento 40 na Figura 1.
[0119] O codificador de vídeo 102 pode derivar e calcular as informações de movimento do bloco de imagem atual na segunda direção com base nas informações de movimento do bloco de imagem atual na primeira direção e, ainda, determinar o bloco de imagem de predição do bloco de imagem atual com base nas informações de movimento do bloco de imagem atual na primeira direção e nas informações de movimento do bloco de imagem atual na segunda direção, para concluir codificação preditiva inter bidirecional.
[0120] Conforme mostrado na Figura 2, o codificador de vídeo 102 inclui um transformador 301, um quantizador 302, um codificador de entropia 303, um filtro 306, uma memória 307, uma unidade de processamento de predição 308 e um somador 312. A unidade de processamento de predição 308 inclui um preditor intra 309 e um preditor inter 310. Para reconstruir um bloco de imagem, o codificador de vídeo 102 inclui, ainda, um quantizador inverso 304, um transformador inverso 305 e um somador 311. O filtro 306 é especificado para representar um ou mais filtros de laço, por exemplo, um filtro de desbloqueio, um filtro de laço adaptativo e um filtro de desvio adaptativo de amostra.
[0121] A memória 307 pode armazenar dados de vídeo codificados por um componente do codificador de vídeo 102. Os dados de vídeo armazenados na memória 307 podem ser obtidos a partir da fonte de vídeo 101. A memória 307 pode ser uma memória de imagem de referência que armazena dados de vídeo de referência usados pelo codificador de vídeo 102 para codificar os dados de vídeo em um modo de codificação intra ou inter. A memória 307 pode ser uma memória dinâmica de acesso aleatório (dynamic RAM, DRAM)
incluindo uma DRAM síncrona (synchronous DRAM, SDRAM), uma RAM magnetorresistiva (magnetoresistive RAM, MRAM), uma RAM resistiva (resistive RAM, RRAM) ou um aparelho de memória de outro tipo.
[0122] O codificador de vídeo 102 recebe dados de vídeo e armazena os dados de vídeo em uma memória de dados de vídeo. Uma unidade de partição particiona os dados de vídeo em diversos blocos de imagem, e esses blocos de imagem podem ser partidos em blocos ainda menores, por exemplo, partição de bloco de imagem com base em uma estrutura de quadtree ou uma estrutura de árvore binária. A partição pode incluir, ainda, partição em slices (slice), tiles (tile), ou outras unidades maiores. O codificador de vídeo 102 é geralmente um componente para codificar um bloco de imagem em uma slice de vídeo a ser codificada. A slice pode ser partida em uma pluralidade de blocos de imagem (e pode ser partida em conjuntos de bloco de imagem que são denominados os tiles).
[0123] O preditor intra 309 na unidade de processamento de predição 308 pode realizar codificação preditiva intra no bloco de imagem atual em relação a um ou mais blocos de imagem vizinhos em um quadro ou slice que é igual àquela do bloco de imagem atual, para remover redundância espacial. O preditor inter 310 na unidade de processamento de predição 308 pode realizar codificação preditiva inter no bloco de imagem atual em relação a um ou mais blocos de imagem de predição em uma ou mais imagens de referência, para remover redundância temporal.
[0124] A unidade de processamento de predição 308 pode fornecer blocos de imagem codificados intra e codificados inter obtidos para o somador 310 para gerar um bloco residual, e fornecer o bloco residual para o somador 309 para reconstruir um bloco codificado usado como uma imagem de referência.
[0125] Após a unidade de processamento de predição 308 gerar o bloco de imagem de predição do bloco de imagem atual através de predição inter e predição intra, o codificador de vídeo 102 gera o bloco de imagem residual subtraindo-se o bloco de imagem de predição do bloco de imagem atual a ser codificado. O somador 312 representa um ou mais componentes que realizam essa operação de subtração. Os dados de vídeo residuais no bloco residual podem ser incluídos em uma ou mais unidades de transformada (transform unit, TU), e aplicados ao transformador 301. O transformador 301 transforma os dados de vídeo residuais em um coeficiente de transformada residual através de transformada, tal como transformada discreta de cosseno (discrete cosine transform, DCT) ou transformada conceitualmente similar. O transformador 301 pode converter os dados de vídeo residuais de um domínio de valor de amostra para um domínio de transformada, por exemplo, um domínio de frequência.
[0126] O transformador 301 pode enviar o coeficiente de transformada obtido ao quantizador 302. O quantizador 302 quantiza o coeficiente de transformada para reduzir, de modo adicional, uma taxa de bits. Em alguns exemplos, o quantizador 302 pode realizar varredura, de modo adicional, em uma matriz incluindo um coeficiente de transformada quantizado. De maneira alternativa, o codificador de entropia 303 pode realizar varredura.
[0127] Após a quantização, o codificador de entropia 303 realiza codificação de entropia no coeficiente de transformada quantizado. Por exemplo, o codificador de entropia 303 pode realizar codificação de comprimento variável de contexto adaptativo (context-adaptive variable-length coding, CAVLC), codificação aritmética binária de contexto adaptativo (context based adaptive binary arithmetic coding, CABAC) ou outro método ou tecnologia de codificação de entropia. Após o codificador de entropia 303 realizar codificação de entropia, um fluxo de bits codificado pode ser enviado ao decodificador de vídeo 202, ou pode ser arquivado para envio subsequente ou recuperação subsequente pelo decodificador de vídeo 202. O codificador de entropia 303 pode realizar, ainda, codificação de entropia em um elemento sintático do bloco de imagem atual a ser codificado.
[0128] O quantizador inverso 304 e o transformador inverso 305 realizam, respectivamente, quantização inversa e transformada inversa, para reconstruir o bloco residual no domínio de amostra, por exemplo, para ser usado, subsequentemente, como um bloco de referência da imagem de referência. O somador 311 adiciona um bloco residual reconstruído ao bloco de imagem de predição gerado pelo preditor inter 310 ou pelo preditor intra 309, para gerar um bloco de imagem reconstruído. Um bloco de imagem de predição de um bloco de imagem pode ser obtido processando-se (processamento tal como interpolação) um bloco de imagem de referência do bloco de imagem.
[0129] Deve-se entender que outras variantes estruturais do codificador de vídeo 102 podem ser usadas para codificar um fluxo de vídeo. Por exemplo, para alguns blocos de imagem ou quadros de imagem, o codificador de vídeo 102 pode quantizar diretamente um sinal residual e, de modo correspondente, o processamento pelo transformador 301 e pelo transformador inverso 305 não é necessário. De maneira alternativa, para alguns blocos de imagem ou quadros de imagem, o codificador de vídeo 102 não gera dados residuais e, de modo correspondente, o processamento pelo transformador 301, pelo quantizador 302, pelo quantizador inverso 304 e pelo transformador inverso 305 não é necessário. De maneira alternativa, o codificador de vídeo 102 pode armazenar diretamente o bloco de imagem reconstruído como o bloco de referência, e o processamento pelo filtro 306 não é necessário. De maneira alternativa, o quantizador 302 e o quantizador inverso 304 no codificador de vídeo 102 podem ser combinados.
[0130] A Figura 3 é um diagrama estrutural esquemático do decodificador de vídeo 202, de acordo com uma modalidade deste pedido. Conforme mostrado na Figura 3, o decodificador de vídeo 202 inclui um decodificador de entropia 401, um quantizador inverso 402, um transformador inverso 403, um filtro 404, uma memória 405, uma unidade de processamento de predição 406 e um somador 409. A unidade de processamento de predição 406 inclui um preditor intra 407 e um preditor inter 408. Em alguns exemplos, o decodificador de vídeo 202 pode realizar um processo de decodificação que é praticamente inverso ao processo de codificação descrito em relação ao codificador de vídeo 102 na Figura 2.
[0131] No processo de decodificação, o decodificador de vídeo 202 recebe o fluxo de bits do codificador de vídeo 102. O decodificador de vídeo 202 pode receber dados de vídeo de uma entidade de rede 42 e, de modo opcional, pode, ainda, armazenar os dados de vídeo em uma memória de dados de vídeo (que não é mostrada na figura). A memória de dados de vídeo pode armazenar dados de vídeo que devem ser decodificados por um componente do decodificador de vídeo 202, por exemplo, o fluxo de bits codificado. Os dados de vídeo armazenados na memória de dados de vídeo podem ser obtidos, por exemplo, de uma fonte de vídeo local, tal como o aparelho de armazenamento 40 ou uma câmera através de comunicação por rede com ou sem fio, ou acessando-se uma mídia física de armazenamento de dados. Embora a memória de dados de vídeo não seja mostrada na Figura 3, a memória de dados de vídeo e a memória 405 podem ser uma mesma memória, ou podem ser memórias separadamente configuradas. A memória de dados de vídeo e a memória 405 podem ser constituídas, cada uma, por qualquer um dentre uma pluralidade de tipos de aparelhos de memória, por exemplo, uma memória dinâmica de acesso aleatório (DRAM) incluindo uma DRAM síncrona (SDRAM), uma RAM magnetorresistiva (MRAM), uma RAM resistiva (RRAM) ou um aparelho de memória de outro tipo. Em vários exemplos, a memória de dados de vídeo pode ser integrada em um chip em conjunto com outros componentes do decodificador de vídeo 202, ou pode ser disposta fora do chip em relação a esses componentes.
[0132] A entidade de rede 42 pode ser, por exemplo, um servidor, um MANE, um editor/fatiador de vídeo ou outro aparelho similar configurado para implantar uma ou mais dentre as tecnologias descritas acima. A entidade de rede 42 pode ou não incluir um codificador de vídeo, por exemplo, o codificador de vídeo 102. Antes de a entidade de rede 42 enviar o fluxo de bits ao decodificador de vídeo 202, a entidade de rede 42 pode implantar uma parte das tecnologias descritas neste pedido. Em alguns sistemas de decodificação de vídeo, a entidade de rede 42 e o decodificador de vídeo 202 podem ser componentes de aparelhos separados. Em outros casos, funções descritas em relação à entidade de rede 42 podem ser realizadas por um mesmo aparelho incluindo o decodificador de vídeo 202. Em alguns casos, a entidade de rede 42 pode ser um exemplo do aparelho de armazenamento 40 na Figura 1.
[0133] O decodificador de entropia 401 do decodificador de vídeo 202 realiza decodificação de entropia no fluxo de bits para gerar um coeficiente quantizado e alguns elementos sintáticos. O decodificador de entropia 401 encaminha os elementos sintáticos ao filtro 404. O decodificador de vídeo 202 pode receber elementos sintáticos/um elemento sintático em um nível de slice de vídeo e/ou em um nível de bloco de imagem. Neste pedido, em um exemplo, o elemento sintático, neste documento, pode incluir informações de indicação relacionadas ao bloco de imagem atual, e as informações de indicação são usadas para indicar a determinação das segundas informações de movimento com base nas primeiras informações de movimento. Além disso, em alguns exemplos, o codificador de vídeo 102 pode enviar um sinal para notificar um elemento sintático específico que indica se determina as segundas informações de movimento com base nas primeiras informações de movimento.
[0134] O quantizador inverso 402 realiza quantização inversa, em outras palavras, desquantiza, o coeficiente de transformada quantizado fornecido no fluxo de bits e decodificado pelo decodificador de entropia 401. Um processo de quantização inversa pode incluir: determinar um grau de quantização a ser aplicado usando-se um parâmetro de quantização calculado pelo codificador de vídeo 102 para cada bloco de imagem na slice de vídeo e, de modo similar, determinar um grau de quantização inversa a ser aplicado. O transformador inverso 403 realiza transformada inversa, por exemplo, DCT inversa, transformada de número inteiro inversa ou um processo de transformada inversa conceitualmente similar, no coeficiente de transformada, para gerar um bloco residual de domínio de amostra.
[0135] Após a unidade de processamento de predição 406 gerar o bloco de imagem de predição para o bloco de imagem atual ou um bloco de imagem de predição para um sub-bloco do bloco de imagem atual, o decodificador de vídeo 202 soma o bloco residual do transformador inverso 403 e o bloco de imagem de predição correspondente gerado pela unidade de processamento de predição 406, para obter um bloco reconstruído, em outras palavras, um bloco de imagem decodificado. O somador 409 (que também é denominado um reconstrutor 409) representa um componente que realiza essa operação de soma. Quando necessário, um filtro (em um laço de decodificação ou após um laço de decodificação) pode ser usado, de modo adicional, para suavizar amostras, ou a qualidade de vídeo pode ser aperfeiçoada de outro modo. O filtro 404 pode ser um ou mais filtros de laço, por exemplo, um filtro de desbloqueio, um filtro de laço adaptativo (ALF) e um filtro de desvio adaptativo de amostra (SAO).
[0136] Deve-se entender que outras variantes estruturais do decodificador de vídeo 202 podem ser usadas para decodificar o fluxo de bits. Por exemplo, para alguns blocos de imagem ou quadros de imagem, o decodificador de entropia 401 do decodificador de vídeo 202 não obtém o coeficiente quantizado através de decodificação e, de modo correspondente, o processamento pelo quantizador inverso 402 e pelo transformador inverso 403 não é necessário. Por exemplo, o quantizador inverso 402 e o transformador inverso 403 no decodificador de vídeo 202 podem ser combinados.
[0137] Com base no sistema de codificação de vídeo 1, mostrado na
Figura 1, no codificador de vídeo 102, mostrado na Figura 2, e no decodificador de vídeo 202, mostrado na Figura 3, o conteúdo a seguir descreve, em detalhes, o método de predição inter bidirecional fornecido neste pedido.
[0138] A Figura 4 é um fluxograma esquemático de um método de predição inter bidirecional, de acordo com uma modalidade deste pedido. O método, mostrado na Figura 4, é realizado por um aparelho de predição inter bidirecional. O aparelho de predição inter bidirecional pode ser o decodificador de vídeo 202 na Figura 1. A Figura 4 é descrita usando-se um exemplo em que o aparelho de predição inter bidirecional é o decodificador de vídeo 202.
[0139] Conforme mostrado na Figura 4, o método de predição inter bidirecional, nesta modalidade deste pedido, pode incluir as etapas a seguir.
[0140] S400: O decodificador de vídeo 202 analisa um fluxo de bits obtido, e obtém informações de indicação.
[0141] De modo opcional, o decodificador de vídeo 202 analisa o fluxo de bits, e determina, com base em um valor de um elemento sintático no fluxo de bits, um modo de predição inter usado para realizar predição inter em um bloco de imagem atual em um quadro atual. Quando o modo de predição inter for um modo de predição inter bidirecional, o decodificador de vídeo 202 obtém as informações de indicação.
[0142] O decodificador de vídeo 202 pode receber o fluxo de bits codificado enviado pelo codificador de vídeo 102, ou pode obter o fluxo de bits codificado a partir de um aparelho de armazenamento 40.
[0143] De modo opcional, o decodificador de vídeo 202, nesta modalidade deste pedido, determina, com base em um valor de um elemento sintático inter_pred_idc, o modo de predição inter usado para realizar predição inter no bloco de imagem atual no quadro atual. Pode-se aprender, a partir da descrição antecedente, que predição inter inclui predição inter unidirecional e predição inter bidirecional. De modo opcional, quando o valor do elemento sintático inter_pred_idc for 0, o decodificador de vídeo 202 determina que o modo de predição inter usado para realizar predição inter no bloco de imagem atual no quadro atual é predição inter posterior. Quando o valor do elemento sintático inter_pred_idc for 1, o decodificador de vídeo 202 determina que o modo de predição inter usado para realizar predição inter no bloco de imagem atual no quadro atual é predição inter anterior. Quando o valor do elemento sintático inter_pred_idc for 2, o decodificador de vídeo 202 determina que o modo de predição inter usado para realizar predição inter no bloco de imagem atual no quadro atual é predição inter bidirecional.
[0144] De modo opcional, após determinar que o valor do elemento sintático inter_pred_idc é 2, o decodificador de vídeo 202 obtém informações de indicação usadas para indicar a determinação de segundas informações de movimento com base em primeiras informações de movimento. As primeiras informações de movimento são informações de movimento do bloco de imagem atual em uma primeira direção, as segundas informações de movimento são informações de movimento do bloco de imagem atual em uma segunda direção, e a primeira direção e a segunda direção são diferentes.
[0145] Um bloco de imagem, neste pedido, pode ser uma unidade básica para realizar codificação de vídeo ou decodificação de vídeo, por exemplo, uma unidade de codificação (Coding Unit, CU), ou pode ser uma unidade básica para realizar uma operação de predição, por exemplo, uma unidade de predição (Prediction Unit, PU). Isso não é especificamente limitado nesta modalidade deste pedido.
[0146] Se o bloco de imagem for a unidade básica para realizar codificação de vídeo ou decodificação de vídeo, o bloco de imagem atual, nesta modalidade deste pedido, inclui pelo menos um sub-bloco. De modo correspondente, as primeiras informações de movimento incluem informações de movimento de cada um dentre o pelo menos um sub-bloco no bloco de imagem atual na primeira direção, as segundas informações de movimento incluem informações de movimento de cada um dentre o pelo menos um sub- bloco no bloco de imagem atual na segunda direção, e as informações de indicação são usadas para indicar a determinação de informações de movimento de um sub-bloco na segunda direção com base em informações de movimento do sub-bloco na primeira direção.
[0147] O decodificador de vídeo 202 pode obter as informações de indicação de uma pluralidade de modos.
[0148] Em uma primeira implantação, o decodificador de vídeo 202 analisa um primeiro identificador. Quando um valor do primeiro identificador for um primeiro valor predefinido, o decodificador de vídeo 202 determina analisar as primeiras informações de movimento, e determina as segundas informações de movimento com base nas primeiras informações de movimento. Em outras palavras, o decodificador de vídeo 202 obtém as informações de indicação. Quando o valor do primeiro identificador for um oitavo valor predefinido, o decodificador de vídeo 202 analisa o fluxo de bits para obter um quinto identificador. Quando um valor do quinto identificador for um quinto valor predefinido, o decodificador de vídeo 202 determina analisar as segundas informações de movimento, e calcula as primeiras informações de movimento com base nas segundas informações de movimento. Quando o valor do quinto identificador for um nono valor predefinido, o decodificador de vídeo 202 obtém as primeiras informações de movimento e as segundas informações de movimento. O primeiro valor predefinido e o quinto valor predefinido podem ser iguais, ou podem ser diferentes. Isso não é especificamente limitado nesta modalidade deste pedido.
[0149] Por exemplo, o primeiro identificador é mv_derived_flag_l0, o quinto identificador é mv_derived_flag_l1, tanto o primeiro valor predefinido quanto o quinto valor predefinido são 1, e tanto o oitavo valor predefinido quanto o nono valor predefinido são 0. O decodificador de vídeo 202 primeiro analisa mv_derived_flag_l0. Quando um valor de mv_derived_flag_l0 for 1, o decodificador de vídeo 202 analisa as primeiras informações de movimento, e determina as segundas informações de movimento com base nas primeiras informações de movimento. Quando o valor de mv_derived_flag_l0 for 0, o decodificador de vídeo 202 analisa mv_derived_flag_l1. Quando um valor de mv_derived_flag_l1 for 1, o decodificador de vídeo 202 analisa as segundas informações de movimento, e calcula as primeiras informações de movimento com base nas segundas informações de movimento. Quando o valor de mv_derived_flag_l0 e o valor de mv_derived_flag_l1 forem 0, o decodificador de vídeo 202 analisa as primeiras informações de movimento e as segundas informações de movimento.
[0150] Em uma segunda implantação, o decodificador de vídeo 202 analisa um segundo identificador. Quando um valor do segundo identificador for um segundo valor predefinido, o decodificador de vídeo 202 determina calcular informações de movimento do bloco de imagem atual usando-se um algoritmo de derivação de informações de movimento. Então, o decodificador de vídeo 202 analisa um terceiro identificador. Quando um valor do terceiro identificador é um terceiro valor predefinido, o decodificador de vídeo 202 determina analisar as primeiras informações de movimento, e determina as segundas informações de movimento com base nas primeiras informações de movimento. Em outras palavras, o decodificador de vídeo 202 obtém as informações de indicação. Quando o valor do terceiro identificador for um sexto valor predefinido, o decodificador de vídeo 202 determina analisar as segundas informações de movimento, e calcula as primeiras informações de movimento com base nas segundas informações de movimento.
[0151] Por exemplo, o segundo identificador é derived_mv_flag, o terceiro identificador é derived_mv_direction, o terceiro valor predefinido é 1, e o sexto valor predefinido é 0. O decodificador de vídeo 202 primeiro analisa derived_mv_flag. Quando um valor de derived_mv_flag for 1, o decodificador de vídeo 202 determina calcular as informações de movimento do bloco de imagem atual usando-se o algoritmo de derivação de informações de movimento. Quando o valor de derived_mv_flag for 0, o decodificador de vídeo 202 analisa as primeiras informações de movimento e as segundas informações de movimento. Quando um valor de derived_mv_direction for 1, o decodificador de vídeo 202 analisa as primeiras informações de movimento, e determina as segundas informações de movimento com base nas primeiras informações de movimento. Quando o valor de derived_mv_direction for 0, o decodificador de vídeo 202 analisa as segundas informações de movimento, e calcula as primeiras informações de movimento com base nas segundas informações de movimento.
[0152] Em uma terceira implantação, o decodificador de vídeo 202 analisa um segundo identificador. Quando um valor do segundo identificador for um segundo valor predefinido, o decodificador de vídeo 202 determina calcular informações de movimento do bloco de imagem atual usando-se um algoritmo de derivação de informações de movimento. Então, o decodificador de vídeo 202 determina, com base em uma direção derivada predefinida, analisar as primeiras informações de movimento, e determina as segundas informações de movimento com base nas primeiras informações de movimento. Em outras palavras, o decodificador de vídeo 202 obtém as informações de indicação. Em outras palavras, nesta implantação, "determinar as segundas informações de movimento com base nas primeiras informações de movimento" é predefinido.
Quando o valor do segundo identificador for um sétimo valor predefinido, o decodificador de vídeo 202 analisa as primeiras informações de movimento e as segundas informações de movimento.
[0153] Por exemplo, o segundo identificador é derived_mv_flag, o segundo valor predefinido é 1, e o sétimo valor predefinido é 0. O decodificador de vídeo 202 analisa derived_mv_flag. Quando um valor de derived_mv_flag for 1, o decodificador de vídeo 202 determina calcular as informações de movimento do bloco de imagem atual usando-se o algoritmo de derivação de informações de movimento. De modo adicional, o decodificador de vídeo 202 determina analisar as primeiras informações de movimento, e determina as segundas informações de movimento com base nas primeiras informações de movimento. Quando o valor de derived_mv_flag for 0, o decodificador de vídeo 202 analisa as primeiras informações de movimento e as segundas informações de movimento.
[0154] Em uma quarta implantação, o decodificador de vídeo 202 analisa um quarto identificador (por exemplo, mv_derived_flag_l0). Quando um valor do quarto identificador for um quarto valor predefinido, o decodificador de vídeo 202 determina calcular informações de movimento do bloco de imagem atual usando-se um algoritmo de derivação de informações de movimento, e calcula uma variável derived_ref_num com base em uma primeira lista de quadros de referência e em uma segunda lista de quadros de referência. A variável representa uma quantidade de pares de quadros de referência espelhados/lineares que podem ser constituídos por um primeiro quadro de referência e um segundo quadro de referência. Quando a quantidade de pares de quadros de referência for 1, o decodificador de vídeo 202 determina diretamente valores de índice de quadro de referência. Então, o decodificador de vídeo 202 determina, com base em uma direção derivada predefinida, analisar as primeiras informações de movimento, e determina as segundas informações de movimento com base nas primeiras informações de movimento. Em outras palavras, o decodificador de vídeo 202 obtém as informações de indicação. A primeira lista de quadros de referência é uma lista de quadros de referência do bloco de imagem atual na primeira direção, a segunda lista de quadros de referência é uma lista de quadros de referência do bloco de imagem atual na segunda direção, o primeiro quadro de referência é um quadro de referência do bloco de imagem atual na primeira direção, e o segundo quadro de referência é um quadro de referência do bloco de imagem atual na segunda direção. Um valor de índice de quadro de referência, nesta modalidade deste pedido, é um número de um quadro de referência em uma lista de quadros de referência correspondente.
[0155] Por exemplo, um número de sequência do quadro atual é 4, a primeira lista de quadros de referência é {2, 0}, a segunda lista de quadros de referência é {6, 7}, e é determinado, com base na condição B ou na condição C a seguir, que um quadro de referência cujo número de sequência é 2 na primeira lista de quadros de referência e um quadro de referência cujo número de sequência é 6 na segunda lista de quadros de referência podem constituir um par de quadros de referência. Nesse caso, tanto um valor de índice do primeiro quadro de referência quanto um valor de índice do segundo quadro de referência são 0.
[0156] Por exemplo, o número de sequência do quadro atual é 4, a primeira lista de quadros de referência é {2, 0}, a segunda lista de quadros de referência é {6, 7}, e é determinado, com base na condição B ou na condição C a seguir, que o quadro de referência cujo número de sequência é 2 na primeira lista de quadros de referência e o quadro de referência cujo número de sequência é 6 na segunda lista de quadros de referência podem constituir o par de quadros de referência, e que um quadro de referência cujo número de sequência é 0 na primeira lista de quadros de referência e um quadro de referência cujo número de sequência é 7 na segunda lista de quadros de referência também podem constituir um par de quadros de referência. Nesse caso, o decodificador de vídeo 202 precisa analisar o valor de índice de quadro de referência.
[0157] De modo adicional, ao determinar que o modo de predição inter é o modo de predição inter bidirecional, o decodificador de vídeo 202 pode determinar adicionalmente se as informações de atributo do quadro atual satisfazem uma condição predefinida. Desse modo, quando as informações de atributo do quadro atual satisfizerem a condição predefinida, o decodificador de vídeo 202 obtém as informações de indicação. De modo específico, um processo da etapa S401 pode ser, especificamente: O decodificador de vídeo 202 obtém as informações de indicação ao determinar que o modo de predição inter é o modo de predição inter bidirecional e que as informações de atributo do quadro atual satisfazem uma primeira condição predefinida.
[0158] As informações de atributo do quadro atual incluem pelo menos um dentre um número de sequência, um ID de nível temporal (Temporal Level ID, TID) ou uma quantidade de quadros de referência. O fluxo de bits obtido pelo decodificador de vídeo 202 inclui um conjunto de parâmetro de sequência (Sequence Parameter Set, SPS), um conjunto de parâmetro de imagem (Picture Parameter Set, PPS), um cabeçalho de slice (slice header) ou um cabeçalho de segmento de slice (slice segment header) e dados de imagem codificados. Então, o decodificador de vídeo 202 analisa o fluxo de bits para obter as informações de atributo do quadro atual.
[0159] A condição predefinida inclui pelo menos uma dentre as seguintes condições:
[0160] Condição A: O bloco de imagem atual tem pelo menos dois quadros de referência.
[0161] Condição B: O número de sequência do quadro atual, um número de sequência do primeiro quadro de referência e um número de sequência do segundo quadro de referência satisfazem a seguinte fórmula: POC_Cur − POC_listX = POC_listY − POC_Cur
[0162] Na fórmula antecedente, POC_Cur representa o número de sequência do quadro atual, POC_listX representa o número de sequência do primeiro quadro de referência, POC_listY representa o número de sequência do segundo quadro de referência, o primeiro quadro de referência é o quadro de referência do bloco de imagem atual na primeira direção, e o segundo quadro de referência é o quadro de referência do bloco de imagem atual na segunda direção.
[0163] Condição C: O número de sequência do quadro atual, o número de sequência do primeiro quadro de referência e o número de sequência do segundo quadro de referência satisfazem a seguinte fórmula: (POC_Cur − POC_listX) ∗ (POC_listY − POC_Cur) > 0
[0164] Na fórmula antecedente, POC_Cur representa o número de sequência do quadro atual, POC_listX representa o número de sequência do primeiro quadro de referência, POC_listY representa o número de sequência do segundo quadro de referência, o primeiro quadro de referência é o quadro de referência do bloco de imagem atual na primeira direção, e o segundo quadro de referência é o quadro de referência do bloco de imagem atual na segunda direção.
[0165] Condição D: O TID do quadro atual é maior do que ou igual a um valor predefinido.
[0166] A condição predefinida, nesta modalidade deste pedido, pode ser predefinida, ou pode ser especificada em uma sintaxe de camada superior, por exemplo, em um conjunto de parâmetro, tal como o SPS, o PPS, o cabeçalho de slice (slice header) ou o cabeçalho de segmento de slice (slice segment header). Isso não é especificamente limitado nesta modalidade deste pedido.
[0167] De maneira específica, para a condição B (ou a condição C), o decodificador de vídeo 202 obtém um número de sequência de quadro de referência de cada uma dentre a primeira lista de quadros de referência e a segunda lista de quadros de referência, e determina se o número de sequência de quadro de referência obtido e o número de sequência do quadro atual satisfazem a condição B ou a condição C. As informações de indicação são obtidas quando a condição B (ou a condição C) é satisfeita.
[0168] Nesta modalidade deste pedido, um método usado pelo decodificador de vídeo 202 para obter as informações de indicação ao determinar que o modo de predição inter é o modo de predição inter bidirecional e que as informações de atributo do quadro atual satisfazem a condição predefinida é igual a um método usado pelo decodificador de vídeo 202 para obter as informações de indicação ao determinar que o modo de predição inter é o modo de predição inter bidirecional.
[0169] Com base nas descrições antecedentes, a Tabela 1 é uma tabela de sintaxe usada quando o decodificador de vídeo 202 obtém, ao determinar que o modo de predição inter é o modo de predição inter bidirecional e que as informações de atributo do quadro atual satisfazem a condição predefinida, as informações de indicação na primeira implantação. prediction_unit() é uma estrutura de sintaxe de um bloco de imagem de predição, e descreve um método para determinar informações de movimento de cada sub- bloco no bloco de imagem atual.
[0170] Na Tabela 1, x0 e y0 indicam, respectivamente, um desvio de coordenada horizontal e um desvio de coordenada vertical de um sub-bloco no bloco de imagem atual em relação à aresta superior-esquerda do bloco de imagem atual, nPbW indica a largura do bloco de imagem atual, e nPbH indica a altura do bloco de imagem atual. Quando um valor de inter_pred_idc[x0][y0] for PRED_L0, isso indica que predição inter de um sub-bloco atual é predição posterior. Quando o valor de inter_pred_idc[x0][y0] for PRED_L1, isso indica que a predição inter do sub-bloco atual é predição anterior. Quando o valor de inter_pred_idc[x0][y0] for PRED_BI, isso indica que a predição inter do sub-bloco atual é predição bidirecional.
[0171] Para predição inter bidirecional (ou seja, inter_pred_idc[x0][y0]==PRED_BI), se a condição (condições) predefinida for satisfeita, mv_derived_flag_l0[x0][y0] é analisado. Se o valor de mv_derived_flag_l0 não for o primeiro valor predefinido, mv_derived_flag_l1[x0][y0] é analisado. Quando o valor de mv_derived_flag_l0 for o primeiro valor predefinido ou o valor de mv_derived_flag_l1[x0][y0] for o quinto valor predefinido, informações de movimento do sub-bloco do bloco de imagem atual são determinadas, de modo específico, um valor de índice de quadro de referência ref_idx_l0[x0][y0], uma flag de preditor de vetor de movimento mvp_l0_flag[x0][y0] e um vetor de movimento diferencial mvd_coding( x0, y0, 0) são determinados. Tabela 1 prediction_unit(x0, y0, nPbW, nPbH) { … /* motion vector coding */ if( slice_type==B ) inter_pred_idc[x0][y0] if( inter_pred_idc[x0][y0]==PRED_L0 ) { if( num_ref_idx_l0_active_minus1 > 0 ) ref_idx_l0[x0][y0] mvd_coding( x0, y0, 0 ) mvp_l0_flag[x0][y0] } if( inter_pred_idc[x0][y0]==PRED_L1 ) { if( num_ref_idx_l1_active_minus1 > 0 ) ref_idx_l1[x0][y0]
mvd_coding( x0, y0, 1) mvp_l1_flag[x0][y0] } if( inter_pred_idc[x0][y0]==PRED_BI ) { if( conditions ) { mv_derived_flag_l0[x0][y0] if( !mv_derived_flag_l0[x0][y0]) { mv_derived_flag_l1[x0][y0] } if( !mv_derived_flag_l0[x0][y0]) { if( num_ref_idx_l0_active_minus1 > 0 ) ref_idx_l0[x0][y0] mvd_coding( x0, y0, 0 ) mvp_l0_flag[x0][y0] } if( !mv_derived_flag_l1[x0][y0]) { if( num_ref_idx_l1_active_minus1 > 0 ) ref_idx_l1[x0][y0] mvd_coding(x0, y0, 0 ) mvp_l1_flag[x0][y0] } }
[0172] Com base nas descrições antecedentes, a Tabela 2 é uma tabela de sintaxe usada quando o decodificador de vídeo 202 obtém, ao determinar que o modo de predição inter é o modo de predição inter bidirecional e que as informações de atributo do quadro atual satisfazem a condição predefinida, as informações de indicação usando-se a terceira implantação.
[0173] Na Tabela 2, para predição inter bidirecional (em outras palavras, inter_pred_idc[x0][y0]==PRED_BI), se a condição (condições) predefinida for satisfeita, derived_mv_flag[x0][y0] é analisado. Quando um valor de derived_mv_flag[x0][y0] for o segundo valor predefinido, as informações de movimento do sub-bloco do bloco de imagem atual são determinadas, de modo específico, um valor de índice de quadro de referência ref_idx_lx[x0][y0], uma flag de preditor de vetor de movimento mvp_lx_flag[x0][y0] e um vetor de movimento diferencial mvd_coding( x0, y0, x) são determinados. Tabela 2 prediction_unit(x0, y0, nPbW, nPbH) { … /* motion vector coding */ if( slice_type==B ) inter_pred_idc[x0][y0] if( inter_pred_idc[x0][y0]==PRED_L0 ) { if( num_ref_idx_l0_active_minus1 > 0 ) ref_idx_l0[x0][y0] mvd_coding( x0, y0, 0 ) mvp_l0_flag[x0][y0] } if( inter_pred_idc[x0][y0]==PRED_L1 ) { if( num_ref_idx_l1_active_minus1 > 0 ) ref_idx_l1[x0][y0] mvd_coding( x0, y0, 1) mvp_l1_flag[x0][y0] } if( inter_pred_idc[x0][y0]==PRED_BI ) { if( conditions ) { derived_mv_flag[ x0 ][ y0 ] if( derived_mv_flag[x0][y0] ) { if( num_ref_idx_lx_active_minus1 > 0 ) ref_idx_lx[ x0 ][ y0 ] mvd_coding( x0, y0, x ) mvp_lx_flag[ x0 ][ y0 ] } else { … } }
[0174] Com base nas descrições antecedentes, a Tabela 3 é uma tabela de sintaxe usada quando o decodificador de vídeo 202 obtém, ao determinar que o modo de predição inter é o modo de predição inter bidirecional e que as informações de atributo do quadro atual satisfazem a primeira condição predefinida, as informações de indicação usando-se a quarta implantação.
[0175] Na Tabela 3, para predição inter bidirecional (em outras palavras, inter_pred_idc[x0][y0]==PRED_BI), se a condição (condições) predefinida for satisfeita, derived_mv_flag[x0][y0] é analisado. Quando o valor de derived_mv_flag[x0][y0] for o quarto valor predefinido, derived_ref_num é determinado, e quando um valor de derived_ref_num for maior do que 1, as informações de movimento do sub-bloco no bloco de imagem atual são determinadas, de modo específico, o valor de índice de quadro de referência ref_idx_lx[x0][y0], a flag de preditor de vetor de movimento mvp_lx_flag[x0][y0] e o vetor de movimento diferencial mvd_coding( x0, y0, x) são determinados. Tabela 3 prediction_unit(x0, y0, nPbW, nPbH) { … /* motion vector coding */ if( slice_type==B ) inter_pred_idc[x0][y0] if( inter_pred_idc[x0][y0]==PRED_L0 ) { if( num_ref_idx_l0_active_minus1 > 0 ) ref_idx_l0[x0][y0] mvd_coding( x0, y0, 0 ) mvp_l0_flag[x0][y0] } if( inter_pred_idc[x0][y0]==PRED_L1 ) { if( num_ref_idx_l1_active_minus1 > 0 ) ref_idx_l1[x0][y0] mvd_coding( x0, y0, 1) mvp_l1_flag[x0][y0] } if( inter_pred_idc[x0][y0]==PRED_BI ) { if( conditions ) { derived_mv_flag[x0][y0] if( derived_mv_flag[x0][y0] ) { if( num_ref_idx_lx_active_minus1 > 0 && derived_ref_num > 1)
ref_idx_lx[x0][y0] mvd_coding(x0, y0, x ) mvp_lx_flag[x0][y0] } else { … } }
[0176] O primeiro identificador, o segundo identificador, o terceiro identificador e o quarto identificador podem ser, todos, predefinidos, ou podem ser especificados na sintaxe de camada superior, por exemplo, no conjunto de parâmetro, tal como no SPS, no PPS, no cabeçalho de slice (slice header) ou no cabeçalho de segmento de slice (slice segment header). Isso não é especificamente limitado nesta modalidade deste pedido.
[0177] O decodificador de vídeo 202 obtém as informações de indicação ao determinar que o modo de predição inter é o modo de predição inter bidirecional e que as informações de atributo do quadro atual satisfazem a condição predefinida. Isso aperfeiçoa, de maneira eficaz, uma taxa de decodificação do decodificador de vídeo 202, e reduz redundância de informações.
[0178] S401: O decodificador de vídeo 202 obtém as primeiras informações de movimento.
[0179] De modo opcional, o decodificador de vídeo 202 analisa o fluxo de bits para obter o valor de índice do primeiro quadro de referência, uma flag de primeiro preditor de vetor de movimento, e um primeiro vetor de movimento diferencial, em outras palavras, para obter as primeiras informações de movimento. A flag de primeiro preditor de vetor de movimento é usado para indicar um valor de índice de um primeiro vetor de movimento predito em uma lista de primeiro vetor de movimento candidato, o primeiro vetor de movimento predito é um vetor de movimento predito do bloco de imagem atual na primeira direção, o primeiro vetor de movimento diferencial é uma diferença entre o primeiro vetor de movimento predito e um primeiro vetor de movimento, e o primeiro vetor de movimento é um vetor de movimento do bloco de imagem atual na primeira direção.
[0180] Em cada uma dentre as tabelas de sintaxe mostradas na
Tabela 1 à Tabela 3, o decodificador de vídeo 202 determina informações de movimento do sub-bloco no bloco de imagem atual na primeira direção.
[0181] S402: O decodificador de vídeo 202 determina as segundas informações de movimento com base nas primeiras informações de movimento.
[0182] Em uma primeira implantação, um método usado pelo decodificador de vídeo 202 para determinar as segundas informações de movimento é: O decodificador de vídeo 202 seleciona o valor de índice do primeiro quadro de referência a partir das primeiras informações de movimento, e determina o número de sequência do primeiro quadro de referência com base no valor de índice do primeiro quadro de referência e na primeira lista de quadros de referência; calcula o número de sequência do segundo quadro de referência com base no número de sequência do quadro atual e no número de sequência do primeiro quadro de referência de acordo com uma fórmula predefinida; determina o valor de índice do segundo quadro de referência com base no número de sequência do segundo quadro de referência e na segunda lista de quadros de referência; e determina as segundas informações de movimento com base nas primeiras informações de movimento e no valor de índice do segundo quadro de referência.
[0183] Neste documento, a fórmula predefinida pode ser POC_listY = 2 ∗ POC_Cur − POC_listX. POC_Cur representa o número de sequência do quadro atual, POC_listX representa o número de sequência do primeiro quadro de referência, e POC_listY representa o número de sequência do segundo quadro de referência.
[0184] Por exemplo, se o número de sequência do quadro atual for 4, o número de sequência do primeiro quadro de referência for 2, a segunda lista de quadros de referência for [6, 8], e for determinado, de acordo com a fórmula POC_listY = 2 ∗ POC_Cur − POC_listX , que o número de sequência do segundo quadro de referência é 6, o decodificador de vídeo 202 determina que o valor de índice ref_lY_idx do segundo quadro de referência é 0.
[0185] De modo opcional, a fórmula predefinida pode ser, alternativamente, (POC_Cur − POC_listX) ∗ (POC_listY − POC_Cur) > 0 . Deve-se observar que, se uma pluralidade de números de sequência de quadro de referência na segunda lista de quadros de referência satisfizer a fórmula, o decodificador de vídeo 202 primeiro seleciona um quadro de referência com um mínimo abs((POC_listY − POC_Cur) − (POC_Cur − POC_listX)) e, então, seleciona um quadro de referência com um mínimo abs(POC_listY − POC_Cur), para determinar o valor de índice do segundo quadro de referência. abs é uma função de valor absoluto.
[0186] Por exemplo, se o número de sequência do quadro atual for 4, o número de sequência do primeiro quadro de referência for 2, a segunda lista de quadros de referência for [5, 7, 8], e for determinado, de acordo com a fórmula (POC_Cur − POC_listX) ∗ (POC_listY − POC_Cur) > 0, que o número de sequência do segundo quadro de referência é 5, o decodificador de vídeo 202 determina que o valor de índice ref_lY_idx do segundo quadro de referência é 0.
[0187] De modo opcional, a fórmula predefinida pode ser, alternativamente, POC_listX ≠ POC_listY . Deve-se observar que, se uma pluralidade de números de sequência de quadro de referência na segunda lista de quadros de referência satisfizer a fórmula, o decodificador de vídeo 202 primeiro seleciona um quadro de referência com um mínimo abs((POC_listY − POC_Cur) − (POC_Cur − POC_listX)) e, então, seleciona um quadro de referência com um mínimo abs(POC_listY − POC_Cur), para determinar o valor de índice do segundo quadro de referência. abs é uma função de valor absoluto.
[0188] Por exemplo, se o número de sequência do quadro atual for 4, o número de sequência do primeiro quadro de referência for 2, a segunda lista de quadros de referência for [3, 2, 1, 0], e for determinado, de acordo com a fórmula POC_listX ≠ POC_listY, que o número de sequência do segundo quadro de referência é 3, o decodificador de vídeo 202 determina que o valor de índice ref_lY_idx do segundo quadro de referência é 0.
[0189] De modo opcional, a fórmula predefinida pode ser, alternativamente, POC_listY0 = 2 ∗ POC_Cur − POC_listX , (POC_Cur − POC_listX) ∗ (POC_listY0′ − POC_Cur) > 0 e POC_listX ≠ POC_listY0′′ . Nesse caso, um método usado pelo decodificador de vídeo 202 para determinar o valor de índice do segundo quadro de referência é, especificamente: calcular um primeiro número de sequência com base no número de sequência do quadro atual e no número de sequência do primeiro quadro de referência usando-se a fórmula POC_listY0 = 2 ∗ POC_Cur − POC_listX , em que POC_Cur representa o número de sequência do quadro atual, POC_listX representa o número de sequência do primeiro quadro de referência, e POC_listY0 representa o primeiro número de sequência; e, quando a segunda lista de quadros de referência incluir o primeiro número de sequência, determinar, como o valor de índice do segundo quadro de referência, um número de um quadro de referência representado pelo primeiro número de sequência na segunda lista de quadros de referência; ou, quando a segunda lista de quadros de referência não incluir o primeiro número de sequência, calcular um segundo número de sequência com base no número de sequência do quadro atual e no número de sequência do primeiro quadro de referência usando-se (POC_Cur − POC_listX) ∗ (POC_listY0′ − POC_Cur) > 0 , em que POC_listY0′ representa o segundo número de sequência e, quando a segunda lista de quadros de referência incluir o segundo número de sequência, determinar, como o valor de índice do segundo quadro de referência, um número de um quadro de referência representado pelo segundo número de sequência na segunda lista de quadros de referência ou, quando a segunda lista de quadros de referência não incluir o segundo número de sequência, calcular um terceiro número de sequência com base no número de sequência do quadro atual e no número de sequência do primeiro quadro de referência usando-se a fórmula POC_listX ≠ POC_listY0′′, em que POC_listY0′′ representa o terceiro número de sequência, e determinar, como o valor de índice do segundo quadro de referência, um número do quadro de referência representado pelo terceiro número de sequência na segunda lista de quadros de referência.
[0190] Em uma segunda implantação, um método usado pelo decodificador de vídeo 202 para determinar as segundas informações de movimento é: O decodificador de vídeo 202 analisa o fluxo de bits para obter o valor de índice do segundo quadro de referência, e determina as segundas informações de movimento com base nas primeiras informações de movimento e no valor de índice do segundo quadro de referência. O valor de índice do segundo quadro de referência pode ser predefinido, ou pode ser especificado no conjunto de parâmetro, por exemplo, no SPS, no PPS, no cabeçalho de slice (slice header) ou no cabeçalho de segmento de slice (slice segment header). Isso não é especificamente limitado nesta modalidade deste pedido.
[0191] Pode-se aprender que, tanto na primeira implantação quanto na segunda implantação, o decodificador de vídeo 202 determina as segundas informações de movimento com base nas primeiras informações de movimento e no valor de índice do segundo quadro de referência.
[0192] De modo opcional, o decodificador de vídeo 202 pode calcular todas as informações de movimento do bloco de imagem atual na segunda direção, ou pode calcular uma parte das informações de movimento do bloco de imagem atual na segunda direção.
[0193] O conteúdo a seguir descreve um processo em que o decodificador de vídeo 202 determina as segundas informações de movimento com base nas primeiras informações de movimento e no valor de índice do segundo quadro de referência.
[0194] De modo opcional, um método usado pelo decodificador de vídeo 202 para determinar as segundas informações de movimento com base nas primeiras informações de movimento e no valor de índice do segundo quadro de referência pode ser: obter o valor de índice do primeiro quadro de referência nas primeiras informações de movimento, e determinar o número de sequência do primeiro quadro de referência com base no valor de índice do primeiro quadro de referência e na primeira lista de quadros de referência; obter o valor de índice do segundo quadro de referência, e determinar o número de sequência do segundo quadro de referência com base no valor de índice do segundo quadro de referência e na segunda lista de quadros de referência; determinar o primeiro vetor de movimento (o vetor de movimento do bloco de imagem atual na primeira direção) com base no primeiro vetor de movimento diferencial e na flag de primeiro preditor de vetor de movimento que estão nas primeiras informações de movimento; e derivar um segundo vetor de movimento nas segundas informações de movimento de acordo com a seguinte fórmula: POC_Cur − POC_listY mv_lY = × mv_lX POC_Cur − POC_listX
[0195] Na fórmula antecedente, mv_lY representa o segundo vetor de movimento, POC_Cur representa o número de sequência do quadro atual, POC_listX representa o número de sequência do primeiro quadro de referência, POC_listY representa o número de sequência do segundo quadro de referência, mv_lX representa o primeiro vetor de movimento, e o segundo vetor de movimento é um vetor de movimento do bloco de imagem atual na segunda direção.
[0196] O decodificador de vídeo 202 constrói uma lista de informações de movimento candidatas de um modo que é igual ao modo em que o codificador constrói a lista de informações de movimento candidatas no modo de AMVP ou no modo mesclado, e determina o primeiro vetor de movimento predito na lista de informações de movimento candidatas com base na flag de predição de primeiro vetor de movimento. Desse modo, o decodificador de vídeo 202 pode determinar uma soma do primeiro vetor de movimento predito e do primeiro vetor de movimento diferencial como o primeiro vetor de movimento.
[0197] De modo opcional, quando o primeiro quadro de referência for um quadro de referência posterior do bloco de imagem atual e o segundo quadro de referência for um quadro de referência anterior do bloco de imagem atual ou, quando o primeiro quadro de referência for um quadro de referência anterior do bloco de imagem atual e o segundo quadro de referência for um quadro de referência posterior do bloco de imagem atual ou, quando o primeiro quadro de referência e o segundo quadro de referência forem, cada um, um quadro de referência posterior do bloco de imagem atual ou, quando o primeiro quadro de referência e o segundo quadro de referência forem, cada um, um quadro de referência anterior do bloco de imagem atual, o decodificador de vídeo 202 pode definir diretamente mv_lY = −mv_lX.
[0198] Por exemplo, tanto "o primeiro quadro de referência é um quadro de referência posterior do bloco de imagem atual e o segundo quadro de referência é um quadro de referência anterior do bloco de imagem atual" quanto "o primeiro quadro de referência é um quadro de referência anterior do bloco de imagem atual e o segundo quadro de referência é um quadro de referência posterior do bloco de imagem atual" podem ser representados usando-se a fórmula (POC_Cur − POC_listX) ∗ (POC_listY − POC_Cur) > 0 , ou podem ser representados usando-se a fórmula POC_listY = 2 ∗ POC_Cur − POC_listX.
[0199] Tanto "o primeiro quadro de referência e o segundo quadro de referência são, cada um, um quadro de referência posterior do bloco de imagem atual" quanto "o primeiro quadro de referência e o segundo quadro de referência são, cada um, um quadro de referência anterior do bloco de imagem atual" podem ser representados usando-se uma fórmula (POC_Cur − POC_listX) ∗ (POC_listY − POC_Cur) < 0.
[0200] De modo opcional, um método usado pelo decodificador de vídeo 202 para determinar as segundas informações de movimento com base nas primeiras informações de movimento e no valor de índice do segundo quadro de referência pode ser: obter o valor de índice do primeiro quadro de referência e o primeiro vetor de movimento diferencial que estão nas primeiras informações de movimento, e determinar o número de sequência do primeiro quadro de referência com base no valor de índice do primeiro quadro de referência e na primeira lista de quadros de referência; obter o valor de índice do segundo quadro de referência, determinar o número de sequência do segundo quadro de referência com base no valor de índice do segundo quadro de referência e na segunda lista de quadros de referência, e determinar um segundo vetor de movimento predito com base no valor de índice do segundo quadro de referência e em uma lista de segundo vetor de movimento predito candidato, em que o segundo vetor de movimento predito é um vetor de movimento predito do bloco de imagem atual na segunda direção; derivar um segundo vetor de movimento diferencial nas segundas informações de movimento de acordo com a seguinte fórmula: POC_Cur − POC_listY mvd_lY = × mvd_lX POC_Cur − POC_listX em que mvd_lY representa o segundo vetor de movimento diferencial, POC_Cur representa o número de sequência do quadro atual, POC_listX representa o número de sequência do primeiro quadro de referência, POC_listY representa o número de sequência do segundo quadro de referência, e mvd_lX representa o primeiro vetor de movimento diferencial; e determinar um segundo vetor de movimento com base no segundo vetor de movimento predito e no segundo vetor de movimento diferencial, em que o segundo vetor de movimento é um vetor de movimento do bloco de imagem atual na segunda direção.
[0201] De modo opcional, quando o primeiro quadro de referência for um quadro de referência posterior do bloco de imagem atual e o segundo quadro de referência for um quadro de referência anterior do bloco de imagem atual ou, quando o primeiro quadro de referência for um quadro de referência anterior do bloco de imagem atual e o segundo quadro de referência for um quadro de referência posterior do bloco de imagem atual ou, quando o primeiro quadro de referência e o segundo quadro de referência forem, cada um, um quadro de referência posterior do bloco de imagem atual ou, quando o primeiro quadro de referência e o segundo quadro de referência forem, cada um, um quadro de referência anterior do bloco de imagem atual, o decodificador de vídeo 202 pode definir diretamente mvd_lY = −mvd_lX.
[0202] Por exemplo, se (POC_Cur − POC_listX) ∗ (POC_listY − POC_Cur) > 0 , POC_listY = 2 ∗ POC_Cur − POC_listX , ou (POC_Cur − POC_listX) ∗ (POC_listY − POC_Cur) < 0 , o decodificador de vídeo 202 define diretamente mvd_ lY = −mvd_ lX.
[0203] S403: O decodificador de vídeo 202 determina amostras de predição do bloco de imagem atual com base nas primeiras informações de movimento e nas segundas informações de movimento.
[0204] De modo opcional, o decodificador de vídeo 202 determina o primeiro vetor de movimento e o segundo vetor de movimento na etapa S402. Desse modo, o decodificador de vídeo 202 pode determinar um primeiro bloco de imagem de referência com base no primeiro vetor de movimento e na primeira lista de quadros de referência, e determinar um segundo bloco de imagem de referência com base no segundo vetor de movimento e na segunda lista de quadros de referência. De modo adicional, o decodificador de vídeo 202 determina as amostras de predição do bloco de imagem atual com base no primeiro bloco de imagem de referência e no segundo bloco de imagem de referência. Em outras palavras, o decodificador de vídeo 202 conclui um processo de compensação de movimento.
[0205] Para um método usado pelo decodificador de vídeo 202 para determinar as amostras de predição do bloco de imagem atual com base no primeiro bloco de imagem de referência e no segundo bloco de imagem de referência, consulte qualquer método existente. Isso não é especificamente limitado nesta modalidade deste pedido.
[0206] No método de predição inter bidirecional fornecido nesta modalidade deste pedido, o decodificador de vídeo 202 pode obter apenas as primeiras informações de movimento do fluxo de bits codificado. Após obter as primeiras informações de movimento, o decodificador de vídeo 202 calcula as segundas informações de movimento com base nas primeiras informações de movimento, e determina, de modo adicional, as amostras de predição do bloco de imagem atual com base nas primeiras informações de movimento e nas segundas informações de movimento. De acordo com o método fornecido neste pedido, as informações de movimento de cada bloco de imagem em todas as direções não precisam mais ser transmitidas, o que é diferente da técnica anterior. Isso reduz, de maneira eficaz, uma quantidade de informações de movimento transmitidas, e aperfeiçoa a utilização eficaz de recursos de transmissão, uma taxa de transmissão e a eficiência de compressão de codificação.
[0207] O método de predição inter bidirecional, mostrado na Figura 4, é descrito para o bloco de imagem atual, ou seja, pode-se entender que a predição inter é realizada no bloco de imagem atual com base no modo de AMVP.
[0208] É fácil entender que o método de predição inter bidirecional fornecido neste pedido também é aplicável a um modo de predição de modelo de movimento não translacional, por exemplo, um modelo de movimento de transformada afim de parâmetro 4, um modelo de movimento de transformada afim de parâmetro 6 ou um modelo de movimento bilinear de parâmetro 8. Neste cenário, o bloco de imagem atual inclui o pelo menos um sub-bloco, e as informações de movimento do bloco de imagem atual incluem as informações de movimento de cada um dentre todos os sub-blocos do bloco de imagem atual. Um método usado pelo decodificador de vídeo 202 para determinar as informações de movimento (as informações de movimento na primeira direção e as informações de movimento na segunda direção) de cada sub-bloco é similar a um método usado pelo decodificador de vídeo 202 para determinar as informações de movimento do bloco de imagem atual.
[0209] No modo de predição de modelo de movimento não translacional, o decodificador de vídeo 202 calcula um vetor de movimento do iésimo ponto de controle na segunda direção com base em um vetor de movimento do iésimo ponto de controle na primeira direção de acordo com a seguinte fórmula: POC_Cur − POC_listY mvi_lY = × mvi_l𝑋𝑋 POC_Cur − POC_listX
[0210] Na fórmula antecedente, mvi_lY representa o vetor de movimento do iésimo ponto de controle na segunda direção, mvi_l𝑿𝑿 representa o vetor de movimento do iésimo ponto de controle na primeira direção, POC_Cur representa o número de sequência do quadro atual, POC_listX representa o número de sequência do primeiro quadro de referência, e POC_listY representa o número de sequência do segundo quadro de referência.
[0211] De modo correspondente, o decodificador de vídeo 202 calcula um vetor de movimento diferencial do iésimo ponto de controle na segunda direção com base em um vetor de movimento diferencial do iésimo ponto de controle na primeira direção usando-se a seguinte fórmula: POC_Cur − POC_listY mvdi_lY = × mvdi_l𝑋𝑋 POC_Cur − POC_listX
[0212] Na fórmula antecedente, mvdi_lY representa o vetor de movimento diferencial do iésimo ponto de controle na segunda direção, mvdi_l𝑿𝑿 representa o vetor de movimento diferencial do iésimo ponto de controle na primeira direção, POC_Cur representa o número de sequência do quadro atual, POC_listX representa o número de sequência do primeiro quadro de referência, e POC_listY representa o número de sequência do segundo quadro de referência.
[0213] Em comparação ao decodificador de vídeo 202, o codificador de vídeo 102, nas modalidades deste pedido, realiza estimação de movimento bidirecional no bloco de imagem atual, para determinar as informações de movimento do bloco de imagem atual na primeira direção, e calcula as informações de movimento do bloco de imagem atual na segunda direção com base nas informações de movimento do bloco de imagem atual na primeira direção. Desse modo, o codificador de vídeo 102 determina o bloco de imagem de predição do bloco de imagem atual com base nas informações de movimento do bloco de imagem atual na primeira direção e nas informações de movimento do bloco de imagem atual na segunda direção. Então, o codificador de vídeo 102 realiza operações, tais como transformada e quantização em um resíduo entre o bloco de imagem atual e o bloco de imagem de predição do bloco de imagem atual para gerar o fluxo de bits, e envia o fluxo de bits ao decodificador de vídeo
202. O fluxo de bits inclui as informações de movimento do bloco de imagem atual na primeira direção.
[0214] Para um método usado pelo codificador de vídeo 102 para calcular as informações de movimento do bloco de imagem atual na segunda direção com base nas informações de movimento do bloco de imagem atual na primeira direção, consulte o método usado pelo decodificador de vídeo 202 para determinar as segundas informações de movimento com base nas primeiras informações de movimento, em outras palavras, consulte as descrições na etapa S402. Os detalhes não são descritos novamente neste pedido.
[0215] Em conclusão, de acordo com o método de predição inter bidirecional fornecido neste pedido, durante predição inter bidirecional, informações de movimento de cada bloco de imagem em todas as direções não precisam mais ser transmitidas, e apenas informações de movimento em uma direção precisam ser transmitidas. Isso reduz, de maneira eficaz, uma quantidade de informações de movimento transmitidas, e aperfeiçoa a utilização eficaz de recursos de transmissão, uma taxa de transmissão e a eficiência de compressão de codificação.
[0216] Uma modalidade deste pedido fornece um aparelho de predição inter bidirecional. O aparelho de predição inter bidirecional pode ser um decodificador de vídeo. De maneira específica, o aparelho de predição inter bidirecional é configurado para realizar as etapas realizadas pelo decodificador de vídeo 202 no método antecedente de predição inter bidirecional. O aparelho de predição inter bidirecional, fornecido nesta modalidade deste pedido, pode incluir módulos para etapas correspondentes.
[0217] Nas modalidades deste pedido, o aparelho de predição inter bidirecional pode ser dividido em módulos funcionais com base nos exemplos do método antecedente. Por exemplo, cada módulo funcional pode ser obtido através de divisão com base em uma função correspondente, ou duas ou mais funções podem ser integradas em um módulo de processamento. O módulo integrado pode ser implantado em uma forma de hardware, ou pode ser implantado em uma forma de um módulo funcional de software. Nas modalidades deste pedido, a divisão de módulo é um exemplo, e é apenas uma divisão de função lógica. Em implantação real, outro modo de divisão pode ser usado.
[0218] Quando cada módulo funcional é obtido através de divisão com base em uma função correspondente, a Figura 5 é um possível diagrama estrutural esquemático do aparelho de predição inter bidirecional nas modalidades antecedentes. Conforme mostrado na Figura 5, um aparelho de predição inter bidirecional 5 inclui uma unidade de obtenção 50 e uma unidade de determinação 51.
[0219] A unidade de obtenção 50 é configurada para auxiliar o aparelho de predição inter bidirecional a realizar S400, S401 e similares na modalidade antecedente, e/ou é usada em outro processo da tecnologia descrita neste relatório descritivo.
[0220] A unidade de determinação 51 é configurada para auxiliar o aparelho de predição inter bidirecional a realizar S402, S403 e similares na modalidade antecedente, e/ou é usada em outro processo da tecnologia descrita neste relatório descritivo.
[0221] Todo o conteúdo relacionado das etapas nas modalidades do método antecedente pode ser citado em descrições de módulos funcionais correspondentes. Os detalhes não são descritos novamente neste documento.
[0222] Certamente, o aparelho de predição inter bidirecional fornecido nesta modalidade deste pedido inclui, mas sem limitação, os módulos antecedentes. Por exemplo, o aparelho de predição inter bidirecional pode incluir, ainda, uma unidade de armazenamento 52.
[0223] A unidade de armazenamento 52 pode ser configurada para armazenar código de programa e dados do aparelho de predição inter bidirecional.
[0224] Quando uma unidade integrada é usada, a Figura 6 é um diagrama estrutural esquemático do aparelho de predição inter bidirecional fornecido nas modalidades deste pedido. Conforme mostrado na Figura 6, um aparelho de predição inter bidirecional 6 inclui um módulo de processamento 60 e um módulo de comunicações 61. O módulo de processamento 60 é configurado para controlar e gerenciar uma ação do aparelho de predição inter bidirecional, por exemplo, realizar etapas executadas pela unidade de obtenção 50 e pela unidade de determinação 51, e/ou configurado para realizar outro processo da tecnologia descrita neste relatório descritivo. O módulo de comunicações 61 é configurado para auxiliar interação entre o aparelho de predição inter bidirecional e outro dispositivo. Conforme mostrado na Figura 6, o aparelho de predição inter bidirecional pode incluir, ainda, um módulo de armazenamento 62. O módulo de armazenamento 62 é configurado para armazenar código de programa e dados do aparelho de predição inter bidirecional, por exemplo, armazenar conteúdo armazenado pela unidade de armazenamento 52.
[0225] O módulo de processamento 60 pode ser um processador ou um controlador, por exemplo, pode ser uma unidade de processamento central (Central Processing Unit, CPU), um processador de propósito geral, um processador de sinal digital (Digital Signal Processor, DSP), um ASIC, um FPGA ou outro dispositivo lógico programável, um dispositivo lógico de transistor, um componente de hardware ou qualquer combinação dos mesmos. O processador ou o controlador pode implantar ou executar vários blocos lógicos, módulos e circuitos exemplificativos descritos com referência ao conteúdo revelado neste pedido. O processador pode ser, alternativamente, uma combinação para implantar uma função de computação, por exemplo, uma combinação que inclui um ou mais microprocessadores, ou uma combinação de um DSP e um microprocessador. O módulo de comunicações 61 pode ser um transceptor, um circuito de RF, uma interface de comunicações ou similares. O módulo de armazenamento 62 pode ser uma memória.
[0226] Todo o conteúdo relacionado dos cenários nas modalidades do método antecedente pode ser citado em descrições de função de módulos funcionais correspondentes. Os detalhes não são descritos novamente neste documento.
[0227] Tanto o aparelho de predição inter bidirecional 5 quanto o aparelho de predição inter bidirecional 6 podem realizar o método de predição inter bidirecional, mostrado na Figura 4. De maneira específica, o aparelho de predição inter bidirecional 5 e o aparelho de predição inter bidirecional 6 podem ser aparelhos de decodificação de vídeo ou outros dispositivos que têm uma função de codificação de vídeo. O aparelho de predição inter bidirecional 5 e o aparelho de predição inter bidirecional 6 podem ser configurados para realizar predição de imagem em um processo de decodificação.
[0228] Este pedido fornece, ainda, um terminal. O terminal inclui um ou mais processadores, uma memória e uma interface de comunicações. A memória e a interface de comunicações são acopladas ao um ou mais processadores. A memória é configurada para armazenar código de programa de computador. O código de programa de computador inclui uma instrução. Quando o um ou mais processadores executam a instrução, o terminal realiza o método de predição inter bidirecional nas modalidades deste pedido.
[0229] O terminal, neste documento, pode ser um dispositivo de exibição de vídeo, um smartphone, um computador portátil ou outro dispositivo que possa processar ou reproduzir um vídeo.
[0230] Este pedido fornece, ainda, um decodificador de vídeo, que inclui uma mídia de armazenamento não volátil e uma unidade de processamento central. A mídia de armazenamento não volátil armazena um programa executável. A unidade de processamento central é conectada à mídia de armazenamento não volátil, e executa o programa executável para realizar o método de predição inter bidirecional nas modalidades deste pedido.
[0231] Este pedido fornece, ainda, um decodificador. O decodificador inclui o aparelho de predição inter bidirecional (o aparelho de predição inter bidirecional 5 ou o aparelho de predição inter bidirecional 6) nas modalidades deste pedido, e um módulo de reconstrução. O módulo de reconstrução é configurado para determinar valores de amostra reconstruída de um bloco de imagem atual com base em amostras de predição obtidas pelo aparelho de predição inter bidirecional.
[0232] Outra modalidade deste pedido fornece, ainda, uma mídia de armazenamento legível por computador. A mídia de armazenamento legível por computador inclui um ou mais fragmentos de código de programa. O um ou mais fragmentos de código de programa incluem uma instrução. Quando um processador de um terminal executa o código de programa, o terminal realiza o método de predição inter bidirecional mostrado na Figura 4.
[0233] Em outra modalidade deste pedido, um produto de programa de computador é fornecido de modo adicional. O produto de programa de computador inclui uma instrução executável por computador. A instrução executável por computador é armazenada em uma mídia de armazenamento legível por computador. Pelo menos um processador de um terminal pode ler a instrução executável por computador a partir da mídia de armazenamento legível por computador. O pelo menos um processador executa a instrução executável por computador, para possibilitar que o terminal realize as etapas executadas pelo decodificador de vídeo 202 no método de predição inter bidirecional mostrado na Figura 4.
[0234] Todas ou algumas dentre as modalidades antecedentes podem ser implantadas usando-se software, hardware, firmware ou qualquer combinação dos mesmos. Quando um programa de software é usado para implantar as modalidades, as modalidades podem ser implantadas, de maneira completa ou parcial, em uma forma de um produto de programa de computador. O produto de programa de computador inclui uma ou mais instruções de computador. Quando as instruções de programa de computador são carregadas e executadas em um computador, os procedimentos ou funções, de acordo com as modalidades deste pedido, são geradas inteira ou parcialmente.
[0235] O computador pode ser um computador de propósito geral, um computador de propósito especial, uma rede de computadores ou outro aparelho programável. As instruções de computador podem ser armazenadas em uma mídia de armazenamento legível por computador, ou podem ser transmitidas a partir de uma mídia de armazenamento legível por computador para outra mídia de armazenamento legível por computador. Por exemplo, as instruções de computador podem ser transmitidas a partir de um site da web, computador, servidor ou central de dados para outro site da web, computador, servidor ou central de dados de um modo com fio (por exemplo, um cabo coaxial, uma fibra óptica ou uma linha de assinante digital (DSL)) ou sem fio (por exemplo, infravermelho, rádio ou micro-ondas). A mídia de armazenamento legível por computador pode ser qualquer mídia utilizável acessível por um computador, ou um dispositivo de armazenamento de dados, tal como um servidor ou uma central de dados, que integra uma ou mais mídias utilizáveis. A mídia utilizável pode ser uma mídia magnética (por exemplo, um disquete, um disco rígido ou uma fita magnética), uma mídia óptica (por exemplo, um DVD), uma mídia semicondutora (por exemplo, uma unidade de estado sólido (Solid State Disk, SSD)), ou similares.
[0236] As descrições antecedentes sobre as implantações permitem que uma pessoa versada na técnica entenda claramente que, com o propósito de descrição conveniente e breve, a divisão dos módulos funcionais antecedentes é considerada como um exemplo para ilustração. Em aplicação real, as funções antecedentes podem ser alocadas para diferentes módulos funcionais e implantadas com base em uma exigência, ou seja, uma estrutura interna de um aparelho é dividida em diferentes módulos funcionais para implantar todas ou algumas das funções descritas acima.
[0237] Nas diversas modalidades fornecidas neste pedido, deve-se entender que o aparelho e o método revelados podem ser implantados de outros modos. Por exemplo, a modalidade de aparelho descrita é apenas um exemplo. Por exemplo, a divisão de unidade ou módulo é apenas divisão de função lógica e pode ser outra divisão na implantação real. Por exemplo, uma pluralidade de unidades ou componentes pode ser combinada ou integrada em outro aparelho, ou alguns recursos podem ser ignorados ou não realizados. Além disso, os acoplamentos mútuos ou acoplamentos diretos ou conexões de comunicação exibidos ou discutidos podem ser implantados usando-se algumas interfaces. Os acoplamentos indiretos ou conexões de comunicação entre os aparelhos ou unidades podem ser implantados em forma elétrica, mecânica ou outras formas.
[0238] As unidades descritas como partes separadas podem ou não ser fisicamente separadas, e partes exibidas como unidades podem ser uma ou mais unidades físicas, podem ser localizadas em um local, ou podem ser distribuídas em diferentes locais. Algumas ou todas as unidades podem ser selecionadas com base em exigências reais para alcançar os objetivos das soluções das modalidades.
[0239] Além disso, as unidades funcionais, nas modalidades deste pedido, podem ser integradas em uma unidade de processamento, ou cada uma dentre as unidades pode existir sozinha fisicamente, ou duas ou mais unidades são integradas em uma unidade. A unidade integrada pode ser implantada em uma forma de hardware, ou pode ser implantada em uma forma de uma unidade funcional de software.
[0240] Quando a unidade integrada é implantada na forma de uma unidade funcional de software e comercializada ou usada como um produto independente, a unidade integrada pode ser armazenada em uma mídia de armazenamento legível. Com base em tal entendimento, as soluções técnicas nas modalidades deste pedido contribuem, de modo essencial ou em parte, para a técnica anterior, ou todas ou algumas das soluções técnicas podem ser implantadas em uma forma de um produto de software. O produto de software é armazenado em uma mídia de armazenamento e inclui diversas instruções para instruir um dispositivo (que pode ser um microcomputador de único chip, um chip ou similar) ou um processador (processor) para que realize todas ou algumas dentre as etapas dos métodos descritos nas modalidades deste pedido. A mídia de armazenamento antecedente inclui: qualquer mídia que possa armazenar código de programa, tal como uma unidade flash USB, um disco rígido removível, uma memória apenas de leitura (Read-Only Memory, ROM), uma memória de acesso aleatório (Random Access Memory, RAM), um disco magnético ou um disco óptico.
[0241] As descrições antecedentes são apenas implantações específicas deste pedido, e não se destinam a limitar o escopo de proteção deste pedido.
Qualquer variação ou substituição dentro do escopo técnico revelado neste pedido deve ser abrangida pelo escopo de proteção deste pedido.
Portanto, o escopo de proteção deste pedido deve estar submetido ao escopo de proteção das reivindicações.

Claims (53)

REIVINDICAÇÕES
1. Método de predição inter bidirecional, compreendendo: obter informações de indicação; obter primeiras informações de movimento; quando as informações de indicação forem usadas para indicar determinação de segundas informações de movimento com base nas primeiras informações de movimento, determinar as segundas informações de movimento com base nas primeiras informações de movimento, em que as primeiras informações de movimento são informações de movimento de um bloco de imagem atual em uma primeira direção, e as segundas informações de movimento são informações de movimento do bloco de imagem atual em uma segunda direção; e determinar amostras de predição do bloco de imagem atual com base nas primeiras informações de movimento e nas segundas informações de movimento.
2. Método, de acordo com a reivindicação 1, em que a determinação das segundas informações de movimento com base nas primeiras informações de movimento compreende especificamente: obter um valor de índice de um primeiro quadro de referência nas primeiras informações de movimento, e determinar um número de sequência do primeiro quadro de referência com base no valor de índice do primeiro quadro de referência e em uma primeira lista de quadros de referência, em que o primeiro quadro de referência é um quadro de referência do bloco de imagem atual na primeira direção, e o valor de índice do primeiro quadro de referência é um número do primeiro quadro de referência na primeira lista de quadros de referência; obter um valor de índice de um segundo quadro de referência, e determinar um número de sequência do segundo quadro de referência com base no valor de índice do segundo quadro de referência e em uma segunda lista de quadros de referência, em que o segundo quadro de referência é um quadro de referência do bloco de imagem atual na segunda direção, e o valor de índice do segundo quadro de referência é um número do segundo quadro de referência na segunda lista de quadros de referência; determinar um primeiro vetor de movimento com base em um primeiro vetor de movimento diferencial e em uma flag de preditor de primeiro vetor de movimento que estão nas primeiras informações de movimento, em que o primeiro vetor de movimento é um vetor de movimento do bloco de imagem atual na primeira direção; e derivar um segundo vetor de movimento nas segundas informações de movimento de acordo com a seguinte fórmula: POC_Cur − POC_listY mv_lY = × mv_lX POC_Cur − POC_listX em que mv_lY representa o segundo vetor de movimento, POC_Cur representa um número de sequência de um quadro atual, POC_listX representa o número de sequência do primeiro quadro de referência, POC_listY representa o número de sequência do segundo quadro de referência, mv_lX representa o primeiro vetor de movimento, e o segundo vetor de movimento é um vetor de movimento do bloco de imagem atual na segunda direção.
3. Método, de acordo com a reivindicação 1, em que a determinação das segundas informações de movimento com base nas primeiras informações de movimento compreende especificamente: obter um valor de índice de um primeiro quadro de referência nas primeiras informações de movimento, em que o primeiro quadro de referência é um quadro de referência do bloco de imagem atual na primeira direção, e o valor de índice do primeiro quadro de referência é um número do primeiro quadro de referência em uma primeira lista de quadros de referência; obter um valor de índice de um segundo quadro de referência, em que o segundo quadro de referência é um quadro de referência do bloco de imagem atual na segunda direção, e o valor de índice do segundo quadro de referência é um número do segundo quadro de referência em uma segunda lista de quadros de referência; determinar um primeiro vetor de movimento com base em um primeiro vetor de movimento diferencial e em uma flag de preditor de primeiro vetor de movimento que estão nas primeiras informações de movimento, em que o primeiro vetor de movimento é um vetor de movimento do bloco de imagem atual na primeira direção; e quando o primeiro quadro de referência for um quadro de referência posterior do bloco de imagem atual e o segundo quadro de referência for um quadro de referência anterior do bloco de imagem atual, ou quando o primeiro quadro de referência for um quadro de referência anterior do bloco de imagem atual e o segundo quadro de referência for um quadro de referência posterior do bloco de imagem atual, ou quando o primeiro quadro de referência e o segundo quadro de referência forem, cada um, um quadro de referência posterior do bloco de imagem atual, ou quando o primeiro quadro de referência e o segundo quadro de referência forem, cada um, um quadro de referência anterior do bloco de imagem atual, derivar um segundo vetor de movimento nas segundas informações de movimento de acordo com a seguinte fórmula: mv_lY = −mv_lX em que mv_lY representa o segundo vetor de movimento, mv_lX representa o primeiro vetor de movimento, e o segundo vetor de movimento é um vetor de movimento do bloco de imagem atual na segunda direção.
4. Método, de acordo com a reivindicação 1, em que a determinação das segundas informações de movimento com base nas primeiras informações de movimento compreende especificamente: obter um valor de índice de um primeiro quadro de referência e um primeiro vetor de movimento diferencial que estão nas primeiras informações de movimento, e determinar um número de sequência do primeiro quadro de referência com base no valor de índice do primeiro quadro de referência e em uma primeira lista de quadros de referência, em que o primeiro quadro de referência é um quadro de referência do bloco de imagem atual na primeira direção, e o valor de índice do primeiro quadro de referência é um número do primeiro quadro de referência na primeira lista de quadros de referência; obter um valor de índice de um segundo quadro de referência, determinar um número de sequência do segundo quadro de referência com base no valor de índice do segundo quadro de referência e em uma segunda lista de quadros de referência, e determinar um segundo vetor de movimento predito com base no valor de índice do segundo quadro de referência e em uma segunda lista de vetores de movimento preditos candidatos, em que o segundo vetor de movimento predito é um vetor de movimento predito do bloco de imagem atual na segunda direção, o segundo quadro de referência é um quadro de referência do bloco de imagem atual na segunda direção, e o valor de índice do segundo quadro de referência é um número do segundo quadro de referência na segunda lista de quadros de referência; calcular um segundo vetor de movimento diferencial nas segundas informações de movimento de acordo com a seguinte fórmula: POC_Cur − POC_listY mvd_lY = × mvd_lX POC_Cur − POC_listX em que mvd_lY representa o segundo vetor de movimento diferencial, POC_Cur representa um número de sequência de um quadro atual, POC_listX representa o número de sequência do primeiro quadro de referência, POC_listY representa o número de sequência do segundo quadro de referência, e mvd_lX representa o primeiro vetor de movimento diferencial; e determinar um segundo vetor de movimento com base no segundo vetor de movimento predito e no segundo vetor de movimento diferencial, em que o segundo vetor de movimento é um vetor de movimento do bloco de imagem atual na segunda direção.
5. Método, de acordo com a reivindicação 1, em que a determinação das segundas informações de movimento com base nas primeiras informações de movimento compreende especificamente: obter um valor de índice de um primeiro quadro de referência e um primeiro vetor de movimento que estão nas primeiras informações de movimento, em que o primeiro quadro de referência é um quadro de referência do bloco de imagem atual na primeira direção, e o valor de índice do primeiro quadro de referência é um número do primeiro quadro de referência em uma primeira lista de quadros de referência; obter um valor de índice de um segundo quadro de referência, e determinar um segundo vetor de movimento predito com base no valor de índice do segundo quadro de referência e em uma segunda lista de vetores de movimento preditos candidatos, em que o segundo vetor de movimento predito é um vetor de movimento predito do bloco de imagem atual na segunda direção, o segundo quadro de referência é um quadro de referência do bloco de imagem atual na segunda direção, e o valor de índice do segundo quadro de referência é um número do segundo quadro de referência em uma segunda lista de quadros de referência; quando o primeiro quadro de referência for um quadro de referência posterior do bloco de imagem atual e o segundo quadro de referência for um quadro de referência anterior do bloco de imagem atual, ou quando o primeiro quadro de referência for um quadro de referência anterior do bloco de imagem atual e o segundo quadro de referência for um quadro de referência posterior do bloco de imagem atual, ou quando o primeiro quadro de referência e o segundo quadro de referência forem, cada um, um quadro de referência posterior do bloco de imagem atual, ou quando o primeiro quadro de referência e o segundo quadro de referência forem, cada um, um quadro de referência anterior do bloco de imagem atual, calcular um segundo vetor de movimento diferencial nas segundas informações de movimento de acordo com a seguinte fórmula: mvd_lY = −mvd_lX em que mvd_lY representa o segundo vetor de movimento diferencial, e mvd_lX representa um primeiro vetor de movimento diferencial; e determinar um segundo vetor de movimento com base no segundo vetor de movimento predito e no segundo vetor de movimento diferencial, em que o segundo vetor de movimento é um vetor de movimento do bloco de imagem atual na segunda direção.
6. Método, de acordo com qualquer uma das reivindicações 2 a 5, em que a obtenção de um valor de índice de um segundo quadro de referência compreende especificamente: calcular um primeiro número de sequência com base no número de sequência do quadro atual e no número de sequência do primeiro quadro de referência de acordo com uma fórmula POC_listY0 = 2 ∗ POC_Cur − POC_listX , em que POC_Cur representa o número de sequência do quadro atual, POC_listX representa o número de sequência do primeiro quadro de referência, e POC_listY0 representa o primeiro número de sequência; e quando a segunda lista de quadros de referência compreender o primeiro número de sequência, determinar, como o valor de índice do segundo quadro de referência, um número de um quadro de referência representado pelo primeiro número de sequência na segunda lista de quadros de referência.
7. Método, de acordo com qualquer uma das reivindicações 2 a 5, em que a obtenção de um valor de índice de um segundo quadro de referência compreende especificamente: calcular um segundo número de sequência com base no número de sequência do quadro atual e no número de sequência do primeiro quadro de referência de acordo com uma fórmula (POC_Cur − POC_listX) ∗ (POC_listY0′ − POC_Cur) > 0, em que POC_listY0′ representa o segundo número de sequência; e quando a segunda lista de quadros de referência compreender o segundo número de sequência, determinar, como o valor de índice do segundo quadro de referência, um número de um quadro de referência representado pelo segundo número de sequência na segunda lista de quadros de referência.
8. Método, de acordo com qualquer uma das reivindicações 2 a 5, em que a obtenção de um valor de índice de um segundo quadro de referência compreende especificamente: calcular um terceiro número de sequência com base no número de sequência do quadro atual e no número de sequência do primeiro quadro de referência de acordo com uma fórmula POC_listX ≠ POC_listY0′′ , em que POC_listY0′′ representa o terceiro número de sequência; e determinar, como o valor de índice do segundo quadro de referência, um número de um quadro de referência representado pelo terceiro número de sequência na segunda lista de quadros de referência.
9. Método de predição inter bidirecional, compreendendo: analisar um fluxo de bits para obter um primeiro identificador, em que o primeiro identificador é usado para indicar se determina segundas informações de movimento com base em primeiras informações de movimento, as primeiras informações de movimento são informações de movimento de um bloco de imagem atual em uma primeira direção, e as segundas informações de movimento são informações de movimento do bloco de imagem atual em uma segunda direção; se um valor do primeiro identificador for um primeiro valor predefinido, obter as primeiras informações de movimento, e determinar as segundas informações de movimento com base nas primeiras informações de movimento; e determinar amostras de predição do bloco de imagem atual com base nas primeiras informações de movimento e nas segundas informações de movimento; ou analisar um fluxo de bits para obter um segundo identificador, em que o segundo identificador é usado para indicar se calcula informações de movimento de um bloco de imagem atual usando-se um algoritmo de derivação de informações de movimento; se um valor do segundo identificador for um segundo valor predefinido, obter um terceiro identificador, em que o terceiro identificador é usado para indicar se determina segundas informações de movimento com base em primeiras informações de movimento, as primeiras informações de movimento são informações de movimento do bloco de imagem atual em uma primeira direção, e as segundas informações de movimento são informações de movimento do bloco de imagem atual em uma segunda direção; se um valor do terceiro identificador for um terceiro valor predefinido, obter as primeiras informações de movimento, e determinar as segundas informações de movimento com base nas primeiras informações de movimento; e determinar amostras de predição do bloco de imagem atual com base nas primeiras informações de movimento e nas segundas informações de movimento; ou analisar um fluxo de bits para obter um segundo identificador, em que o segundo identificador é usado para indicar se calcula informações de movimento de um bloco de imagem atual usando-se um algoritmo de derivação de informações de movimento; se um valor do segundo identificador for um segundo valor predefinido, obter primeiras informações de movimento, e determinar segundas informações de movimento com base nas primeiras informações de movimento, em que as primeiras informações de movimento são informações de movimento do bloco de imagem atual em uma primeira direção, e as segundas informações de movimento são informações de movimento do bloco de imagem atual em uma segunda direção; e determinar amostras de predição do bloco de imagem atual com base nas primeiras informações de movimento e nas segundas informações de movimento; ou analisar um fluxo de bits para obter um quarto identificador, em que o quarto identificador é usado para indicar se calcula informações de movimento de um bloco de imagem atual usando-se um algoritmo de derivação de informações de movimento; se um valor do quarto identificador for um quarto valor predefinido, determinar um valor de índice de um primeiro quadro de referência e um valor de índice de um segundo quadro de referência com base em uma primeira lista de quadros de referência e em uma segunda lista de quadros de referência, em que a primeira lista de quadros de referência é uma lista de quadros de referência do bloco de imagem atual em uma primeira direção, a segunda lista de quadros de referência é uma lista de quadros de referência do bloco de imagem atual em uma segunda direção, o primeiro quadro de referência é um quadro de referência do bloco de imagem atual na primeira direção, e o segundo quadro de referência é um quadro de referência do bloco de imagem atual na segunda direção; obter um primeiro vetor de movimento diferencial e uma flag de preditor de primeiro vetor de movimento, e determinar segundas informações de movimento com base em primeiras informações de movimento, em que as primeiras informações de movimento compreendem o valor de índice do primeiro quadro de referência, o primeiro vetor de movimento diferencial, e a flag de preditor de primeiro vetor de movimento, e as segundas informações de movimento são informações de movimento do bloco de imagem atual na segunda direção; e determinar amostras de predição do bloco de imagem atual com base nas primeiras informações de movimento e nas segundas informações de movimento.
10. Aparelho de predição inter bidirecional, compreendendo: uma unidade de obtenção, configurada para: obter informações de indicação, e obter primeiras informações de movimento; e uma unidade de determinação, configurada para: quando as informações de indicação forem usadas para indicar determinação de segundas informações de movimento com base nas primeiras informações de movimento, determinar as segundas informações de movimento com base nas primeiras informações de movimento obtidas pela unidade de obtenção, e determinar amostras de predição do bloco de imagem atual com base nas primeiras informações de movimento e nas segundas informações de movimento, em que as primeiras informações de movimento são informações de movimento do bloco de imagem atual em uma primeira direção, e as segundas informações de movimento são informações de movimento do bloco de imagem atual em uma segunda direção.
11. Aparelho, de acordo com a reivindicação 10, em que a unidade de determinação é especificamente configurada para: obter um valor de índice de um primeiro quadro de referência nas primeiras informações de movimento, e determinar um número de sequência do primeiro quadro de referência com base no valor de índice do primeiro quadro de referência e em uma primeira lista de quadros de referência, em que o primeiro quadro de referência é um quadro de referência do bloco de imagem atual na primeira direção, e o valor de índice do primeiro quadro de referência é um número do primeiro quadro de referência na primeira lista de quadros de referência; obter um valor de índice de um segundo quadro de referência, e determinar um número de sequência do segundo quadro de referência com base no valor de índice do segundo quadro de referência e em uma segunda lista de quadros de referência, em que o segundo quadro de referência é um quadro de referência do bloco de imagem atual na segunda direção, e o valor de índice do segundo quadro de referência é um número do segundo quadro de referência na segunda lista de quadros de referência; determinar um primeiro vetor de movimento com base em um primeiro vetor de movimento diferencial e em uma flag de preditor de primeiro vetor de movimento que estão nas primeiras informações de movimento, em que o primeiro vetor de movimento é um vetor de movimento do bloco de imagem atual na primeira direção; e derivar um segundo vetor de movimento nas segundas informações de movimento de acordo com a seguinte fórmula: POC_Cur − POC_listY mv_lY = × mv_lX POC_Cur − POC_listX em que mv_lY representa o segundo vetor de movimento, POC_Cur representa um número de sequência de um quadro atual, POC_listX representa o número de sequência do primeiro quadro de referência, POC_listY representa o número de sequência do segundo quadro de referência, mv_lX representa o primeiro vetor de movimento, e o segundo vetor de movimento é um vetor de movimento do bloco de imagem atual na segunda direção.
12. Aparelho, de acordo com a reivindicação 10, em que a unidade de determinação é especificamente configurada para: obter um valor de índice de um primeiro quadro de referência nas primeiras informações de movimento, em que o primeiro quadro de referência é um quadro de referência do bloco de imagem atual na primeira direção, e o valor de índice do primeiro quadro de referência é um número do primeiro quadro de referência em uma primeira lista de quadros de referência; obter um valor de índice de um segundo quadro de referência, em que o segundo quadro de referência é um quadro de referência do bloco de imagem atual na segunda direção, e o valor de índice do segundo quadro de referência é um número do segundo quadro de referência em uma segunda lista de quadros de referência; determinar um primeiro vetor de movimento com base em um primeiro vetor de movimento diferencial e em uma flag de preditor de primeiro vetor de movimento que estão nas primeiras informações de movimento, em que o primeiro vetor de movimento é um vetor de movimento do bloco de imagem atual na primeira direção; e quando o primeiro quadro de referência for um quadro de referência posterior do bloco de imagem atual e o segundo quadro de referência for um quadro de referência anterior do bloco de imagem atual, ou quando o primeiro quadro de referência for um quadro de referência anterior do bloco de imagem atual e o segundo quadro de referência for um quadro de referência posterior do bloco de imagem atual, ou quando o primeiro quadro de referência e o segundo quadro de referência forem, cada um, um quadro de referência posterior do bloco de imagem atual, ou quando o primeiro quadro de referência e o segundo quadro de referência forem, cada um, um quadro de referência anterior do bloco de imagem atual, calcular um segundo vetor de movimento nas segundas informações de movimento de acordo com a seguinte fórmula: mv_lY = −mv_lX em que mv_lY representa o segundo vetor de movimento, mv_lX representa o primeiro vetor de movimento, e o segundo vetor de movimento é um vetor de movimento do bloco de imagem atual na segunda direção.
13. Aparelho, de acordo com a reivindicação 10, em que a unidade de determinação é especificamente configurada para: obter um valor de índice de um primeiro quadro de referência e um primeiro vetor de movimento diferencial que estão nas primeiras informações de movimento, e determinar um número de sequência do primeiro quadro de referência com base no valor de índice do primeiro quadro de referência e em uma primeira lista de quadros de referência, em que o primeiro quadro de referência é um quadro de referência do bloco de imagem atual na primeira direção, e o valor de índice do primeiro quadro de referência é um número do primeiro quadro de referência na primeira lista de quadros de referência; obter um valor de índice de um segundo quadro de referência, determinar um número de sequência do segundo quadro de referência com base no valor de índice do segundo quadro de referência e em uma segunda lista de quadros de referência, e determinar um segundo vetor de movimento predito com base no valor de índice do segundo quadro de referência e em uma segunda lista de vetores de movimento preditos candidatos, em que o segundo vetor de movimento predito é um vetor de movimento predito do bloco de imagem atual na segunda direção, o segundo quadro de referência é um quadro de referência do bloco de imagem atual na segunda direção, e o valor de índice do segundo quadro de referência é um número do segundo quadro de referência na segunda lista de quadros de referência; calcular um segundo vetor de movimento diferencial nas segundas informações de movimento de acordo com a seguinte fórmula: POC_Cur − POC_listY mvd_lY = × mvd_lX POC_Cur − POC_listX em que mvd_lY representa o segundo vetor de movimento diferencial, POC_Cur representa um número de sequência de um quadro atual, POC_listX representa o número de sequência do primeiro quadro de referência, POC_listY representa o número de sequência do segundo quadro de referência, e mvd_lX representa o primeiro vetor de movimento diferencial; e determinar um segundo vetor de movimento com base no segundo vetor de movimento predito e no segundo vetor de movimento diferencial, em que o segundo vetor de movimento é um vetor de movimento do bloco de imagem atual na segunda direção.
14. Aparelho, de acordo com a reivindicação 10, em que a unidade de determinação é especificamente configurada para: obter um valor de índice de um primeiro quadro de referência e um primeiro vetor de movimento que estão nas primeiras informações de movimento, em que o primeiro quadro de referência é um quadro de referência do bloco de imagem atual na primeira direção, e o valor de índice do primeiro quadro de referência é um número do primeiro quadro de referência em uma primeira lista de quadros de referência; obter um valor de índice de um segundo quadro de referência, e determinar um segundo vetor de movimento predito com base no valor de índice do segundo quadro de referência e em uma segunda lista de vetores de movimento preditos candidatos, em que o segundo vetor de movimento predito é um vetor de movimento predito do bloco de imagem atual na segunda direção, o segundo quadro de referência é um quadro de referência do bloco de imagem atual na segunda direção, e o valor de índice do segundo quadro de referência é um número do segundo quadro de referência em uma segunda lista de quadros de referência; quando o primeiro quadro de referência for um quadro de referência posterior do bloco de imagem atual e o segundo quadro de referência for um quadro de referência anterior do bloco de imagem atual, ou quando o primeiro quadro de referência for um quadro de referência anterior do bloco de imagem atual e o segundo quadro de referência for um quadro de referência posterior do bloco de imagem atual, ou quando o primeiro quadro de referência e o segundo quadro de referência forem, cada um, um quadro de referência posterior do bloco de imagem atual, ou quando o primeiro quadro de referência e o segundo quadro de referência forem, cada um, um quadro de referência anterior do bloco de imagem atual, calcular um segundo vetor de movimento diferencial nas segundas informações de movimento de acordo com a seguinte fórmula: mvd_lY = −mvd_lX em que mvd_lY representa o segundo vetor de movimento diferencial, e mvd_lX representa um primeiro vetor de movimento diferencial; e determinar um segundo vetor de movimento com base no segundo vetor de movimento predito e no segundo vetor de movimento diferencial, em que o segundo vetor de movimento é um vetor de movimento do bloco de imagem atual na segunda direção.
15. Aparelho, de acordo com qualquer uma das reivindicações 11 a 14, em que a unidade de obtenção é especificamente configurada para: calcular um primeiro número de sequência com base no número de sequência do quadro atual e no número de sequência do primeiro quadro de referência de acordo com uma fórmula POC_listY0 = 2 ∗ POC_Cur − POC_listX , em que POC_Cur representa o número de sequência do quadro atual, POC_listX representa o número de sequência do primeiro quadro de referência, e POC_listY0 representa o primeiro número de sequência; e quando a segunda lista de quadros de referência compreender o primeiro número de sequência, determinar, como o valor de índice do segundo quadro de referência, um número de um quadro de referência representado pelo primeiro número de sequência na segunda lista de quadros de referência.
16. Aparelho, de acordo com qualquer uma das reivindicações 11 a 14, em que a unidade de obtenção é especificamente configurada para: calcular um segundo número de sequência com base no número de sequência do quadro atual e no número de sequência do primeiro quadro de referência de acordo com uma fórmula (POC_Cur − POC_listX) ∗ (POC_listY0′ − POC_Cur) > 0, em que POC_listY0′ representa o segundo número de sequência; e quando a segunda lista de quadros de referência compreender o segundo número de sequência, determinar, como o valor de índice do segundo quadro de referência, um número de um quadro de referência representado pelo segundo número de sequência na segunda lista de quadros de referência.
17. Aparelho, de acordo com qualquer uma das reivindicações 11 a 14, em que a unidade de obtenção é especificamente configurada para: calcular um terceiro número de sequência com base no número de sequência do quadro atual e no número de sequência do primeiro quadro de referência de acordo com uma fórmula POC_listX ≠ POC_listY0′′ , em que POC_listY0′′ representa o terceiro número de sequência; e determinar, como o valor de índice do segundo quadro de referência, um número de um quadro de referência representado pelo terceiro número de sequência na segunda lista de quadros de referência.
18. Aparelho de predição inter bidirecional, compreendendo: uma unidade de obtenção, configurada para: analisar um fluxo de bits para obter um primeiro identificador, em que o primeiro identificador é usado para indicar se determina segundas informações de movimento com base em primeiras informações de movimento, as primeiras informações de movimento são informações de movimento de um bloco de imagem atual em uma primeira direção, e as segundas informações de movimento são informações de movimento do bloco de imagem atual em uma segunda direção; e se um valor do primeiro identificador for um primeiro valor predefinido, obter as primeiras informações de movimento; e uma unidade de determinação, configurada para: determinar as segundas informações de movimento com base nas primeiras informações de movimento obtidas pela unidade de obtenção, e determinar amostras de predição do bloco de imagem atual com base nas primeiras informações de movimento e nas segundas informações de movimento; ou uma unidade de obtenção, configurada para: analisar um fluxo de bits para obter um segundo identificador, em que o segundo identificador é usado para indicar se calcula informações de movimento de um bloco de imagem atual usando-se um algoritmo de derivação de informações de movimento; se um valor do segundo identificador for um segundo valor predefinido, obter um terceiro identificador, em que o terceiro identificador é usado para indicar se determina segundas informações de movimento com base em primeiras informações de movimento, as primeiras informações de movimento são informações de movimento do bloco de imagem atual em uma primeira direção, e as segundas informações de movimento são informações de movimento do bloco de imagem atual em uma segunda direção; e se um valor do terceiro identificador for um terceiro valor predefinido, obter as primeiras informações de movimento; e uma unidade de determinação, configurada para: determinar as segundas informações de movimento com base nas primeiras informações de movimento obtidas pela unidade de obtenção, e determinar amostras de predição do bloco de imagem atual com base nas primeiras informações de movimento e nas segundas informações de movimento; ou uma unidade de obtenção, configurada para: analisar um fluxo de bits para obter um segundo identificador, em que o segundo identificador é usado para indicar se calcula informações de movimento de um bloco de imagem atual usando-se um algoritmo de derivação de informações de movimento; e se um valor do segundo identificador for um segundo valor predefinido, obter primeiras informações de movimento; e uma unidade de determinação, configurada para: determinar segundas informações de movimento com base nas primeiras informações de movimento obtidas pela unidade de obtenção, em que as primeiras informações de movimento são informações de movimento do bloco de imagem atual em uma primeira direção, e as segundas informações de movimento são informações de movimento do bloco de imagem atual em uma segunda direção; e determinar amostras de predição do bloco de imagem atual com base nas primeiras informações de movimento e nas segundas informações de movimento; ou uma unidade de obtenção, configurada para analisar um fluxo de bits para obter um quarto identificador, em que o quarto identificador é usado para indicar se calcula informações de movimento de um bloco de imagem atual usando-se um algoritmo de derivação de informações de movimento; e uma unidade de determinação, configurada para: se um valor do quarto identificador obtido pela unidade de obtenção for um quarto valor predefinido, determinar um valor de índice de um primeiro quadro de referência e um valor de índice de um segundo quadro de referência com base em uma primeira lista de quadros de referência e em uma segunda lista de quadros de referência, em que a primeira lista de quadros de referência é uma lista de quadros de referência do bloco de imagem atual em uma primeira direção, a segunda lista de quadros de referência é uma lista de quadros de referência do bloco de imagem atual na segunda direção, o primeiro quadro de referência é um quadro de referência do bloco de imagem atual na primeira direção, o segundo quadro de referência é um quadro de referência do bloco de imagem atual na segunda direção, a unidade de obtenção é adicionalmente configurada para obter um primeiro vetor de movimento diferencial e uma flag de preditor de primeiro vetor de movimento, e a unidade de determinação é adicionalmente configurada para: determinar segundas informações de movimento com base em primeiras informações de movimento, em que as primeiras informações de movimento compreendem o valor de índice do primeiro quadro de referência, o primeiro vetor de movimento diferencial, e a flag de preditor de primeiro vetor de movimento, e as segundas informações de movimento são informações de movimento do bloco de imagem atual na segunda direção; e determinar amostras de predição do bloco de imagem atual com base nas primeiras informações de movimento e nas segundas informações de movimento.
19. Terminal, em que o terminal compreende um ou mais processadores, uma memória, e uma interface de comunicações; e a memória e a interface de comunicações são conectadas ao um ou mais processadores, o terminal se comunica com outro dispositivo através da interface de comunicações, a memória é configurada para armazenar código de programa de computador, o código de programa de computador compreende uma instrução, e quando o um ou mais processadores executam a instrução, o terminal realiza o método de predição inter bidirecional conforme definido em qualquer uma das reivindicações 1 a 8, ou realiza o método de predição inter bidirecional conforme definido na reivindicação 9.
20. Produto de programa de computador compreendendo uma instrução, em que quando o produto de programa de computador roda em um terminal, o terminal é habilitado a realizar o método de predição inter bidirecional conforme definido em qualquer uma das reivindicações 1 a 8, ou realizar o método de predição inter bidirecional conforme definido na reivindicação 9.
21. Mídia de armazenamento legível por computador, compreendendo uma instrução, em que quando a instrução é rodada em um terminal, o terminal é habilitado a realizar o método de predição inter bidirecional conforme definido em qualquer uma das reivindicações 1 a 8, ou realizar o método de predição inter bidirecional conforme definido na reivindicação 9.
22. Decodificador de vídeo, compreendendo uma mídia de armazenamento não volátil e uma unidade de processamento central, em que a mídia de armazenamento não volátil armazena um programa executável, a unidade de processamento central é conectada à mídia de armazenamento não volátil, e quando a unidade de processamento central executa o programa executável, o decodificador de vídeo realiza o método de predição inter bidirecional conforme definido em qualquer uma das reivindicações 1 a 8, ou realiza o método de predição inter bidirecional conforme definido na reivindicação 9.
23. Decodificador, em que o decodificador compreende o aparelho de predição inter bidirecional conforme definido em qualquer uma das reivindicações 10 a 17 e um módulo de reconstrução, em que o módulo de reconstrução é configurado para determinar valores de amostra reconstruída de um bloco de imagem atual com base em amostras de predição obtidas pelo aparelho de predição inter bidirecional; ou o decodificador compreende o aparelho de predição inter bidirecional conforme definido na reivindicação 18 e um módulo de reconstrução, em que o módulo de reconstrução é configurado para determinar valores de amostra reconstruída de um bloco de imagem atual com base em amostras de predição obtidas pelo aparelho de predição inter bidirecional.
24. Método de decodificação, em que o método é aplicado à predição inter bidirecional, e o método compreende: obter um primeiro identificador; obter um primeiro vetor de movimento diferencial de um bloco de imagem atual; e quando um valor do primeiro identificador for um primeiro valor predefinido, determinar um segundo vetor de movimento diferencial do bloco de imagem atual com base no primeiro vetor de movimento diferencial, em que o primeiro vetor de movimento diferencial pertence a informações de movimento do bloco de imagem atual em uma primeira direção, e o segundo vetor de movimento diferencial pertence a informações de movimento do bloco de imagem atual em uma segunda direção.
25. Método, de acordo com a reivindicação 24, em que a determinação de um segundo vetor de movimento diferencial do bloco de imagem atual com base no primeiro vetor de movimento diferencial compreende: obter o segundo vetor de movimento diferencial de acordo com a seguinte fórmula: mvd_lY = −mvd_lX em que mvd_lY representa o segundo vetor de movimento diferencial, e mvd_lX representa o primeiro vetor de movimento diferencial.
26. Método, de acordo com a reivindicação 24 ou 25, em que o método compreende adicionalmente: obter um primeiro vetor de movimento predito e um segundo vetor de movimento predito; determinar um primeiro vetor de movimento com base no primeiro vetor de movimento predito e no primeiro vetor de movimento diferencial; determinar um segundo vetor de movimento com base no segundo vetor de movimento predito e no segundo vetor de movimento diferencial; e determinar amostras de predição do bloco de imagem atual com base no primeiro vetor de movimento e no segundo vetor de movimento; em que o primeiro vetor de movimento predito e o primeiro vetor de movimento correspondem à primeira direção, e o segundo vetor de movimento predito e o segundo vetor de movimento correspondem à segunda direção.
27. Método, de acordo com a reivindicação 26, em que o bloco de imagem atual compreende uma primeira lista de quadros de referência na primeira direção e uma segunda lista de quadros de referência na segunda direção, e a determinação de amostras de predição do bloco de imagem atual com base no primeiro vetor de movimento e no segundo vetor de movimento compreende: obter um índice de quadro de referência da primeira lista de quadros de referência e um índice de quadro de referência da segunda lista de quadros de referência; determinar um primeiro bloco de imagem de referência com base no índice de quadro de referência da primeira lista de quadros de referência, no primeiro vetor de movimento, e na primeira lista de quadros de referência; determinar um segundo bloco de imagem de referência com base no índice de quadro de referência da segunda lista de quadros de referência, no segundo vetor de movimento, e na segunda lista de quadros de referência; e determinar as amostras de predição do bloco de imagem atual com base no primeiro bloco de imagem de referência e no segundo bloco de imagem de referência.
28. Método, de acordo com qualquer uma das reivindicações 24 a 27, em que antes da obtenção de um primeiro identificador, o método compreende adicionalmente: determinar que um número de sequência de um quadro atual no qual o bloco de imagem atual está localizado satisfaz uma condição predefinida, em que a condição predefinida compreende uma condição de que o número de sequência do quadro atual esteja entre um número de sequência de um primeiro quadro de referência e um número de sequência de um segundo quadro de referência, o primeiro quadro de referência pertence à primeira lista de quadros de referência, e o segundo quadro de referência pertence à segunda lista de quadros de referência.
29. Método, de acordo com qualquer uma das reivindicações 24 a 28, em que o método compreende adicionalmente: quando o valor do primeiro identificador for um segundo valor predefinido, analisar um fluxo de bits para obter o segundo vetor de movimento.
30. Método, de acordo com a reivindicação 29, em que antes da obtenção de um primeiro identificador, o método compreende adicionalmente: determinar que o número de sequência do quadro atual no qual o bloco de imagem atual está localizado não satisfaz a condição predefinida, em que a condição predefinida compreende a condição de que o número de sequência do quadro atual esteja entre o número de sequência do primeiro quadro de referência e o número de sequência do segundo quadro de referência, o primeiro quadro de referência pertence à primeira lista de quadros de referência, e o segundo quadro de referência pertence à segunda lista de quadros de referência.
31. Aparelho de predição inter bidirecional, compreendendo: uma unidade de obtenção, configurada para: obter um primeiro identificador, e obter um primeiro vetor de movimento diferencial de um bloco de imagem atual; e uma unidade de determinação, configurada para: quando um valor do primeiro identificador for um primeiro valor predefinido, determinar um segundo vetor de movimento diferencial do bloco de imagem atual com base no primeiro vetor de movimento diferencial, em que o primeiro vetor de movimento diferencial pertence a informações de movimento do bloco de imagem atual em uma primeira direção, e o segundo vetor de movimento diferencial pertence a informações de movimento do bloco de imagem atual em uma segunda direção.
32. Aparelho, de acordo com a reivindicação 31, em que a unidade de determinação é especificamente configurada para obter o segundo vetor de movimento diferencial de acordo com a seguinte fórmula: mvd_lY = −mvd_lX em que mvd_lY representa o segundo vetor de movimento diferencial, e mvd_lX representa o primeiro vetor de movimento diferencial.
33. Aparelho, de acordo com a reivindicação 31 ou 32, em que a unidade de obtenção é especificamente configurada para obter um primeiro vetor de movimento predito e um segundo vetor de movimento predito; e a unidade de determinação é especificamente configurada para: determinar um primeiro vetor de movimento com base no primeiro vetor de movimento predito e no primeiro vetor de movimento diferencial, determinar um segundo vetor de movimento com base no segundo vetor de movimento predito e no segundo vetor de movimento diferencial, e determinar amostras de predição do bloco de imagem atual com base no primeiro vetor de movimento e no segundo vetor de movimento, em que o primeiro vetor de movimento predito e o primeiro vetor de movimento correspondem à primeira direção, e o segundo vetor de movimento predito e o segundo vetor de movimento correspondem à segunda direção.
34. Aparelho, de acordo com a reivindicação 33, em que o bloco de imagem atual compreende uma primeira lista de quadros de referência na primeira direção e uma segunda lista de quadros de referência na segunda direção; a unidade de obtenção é especificamente configurada para obter um índice de quadro de referência da primeira lista de quadros de referência e um índice de quadro de referência da segunda lista de quadros de referência; e a unidade de determinação é especificamente configurada para: determinar um primeiro bloco de imagem de referência com base no índice de quadro de referência da primeira lista de quadros de referência, no primeiro vetor de movimento, e na primeira lista de quadros de referência, determinar um segundo bloco de imagem de referência com base no índice de quadro de referência da segunda lista de quadros de referência, no segundo vetor de movimento, e na segunda lista de quadros de referência, e determinar as amostras de predição do bloco de imagem atual com base no primeiro bloco de imagem de referência e no segundo bloco de imagem de referência.
35. Aparelho, de acordo com qualquer uma das reivindicações 31 a 34, em que a unidade de obtenção é adicionalmente especificamente configurada para: antes de obter o primeiro identificador, determinar que um número de sequência de um quadro atual no qual o bloco de imagem atual está localizado satisfaz uma condição predefinida, em que a condição predefinida compreende uma condição de que o número de sequência do quadro atual esteja entre um número de sequência de um primeiro quadro de referência e um número de sequência de um segundo quadro de referência, o primeiro quadro de referência pertence à primeira lista de quadros de referência, e o segundo quadro de referência pertence à segunda lista de quadros de referência.
36. Método de codificação, em que o método é aplicado à predição inter bidirecional, e o método compreende: determinar um primeiro vetor de movimento diferencial de um bloco de imagem atual; determinar um primeiro identificador, em que quando um valor do primeiro identificador for um primeiro valor predefinido, o primeiro identificador é usado para indicar que um segundo vetor de movimento diferencial do bloco de imagem atual pode ser determinado com base no primeiro vetor de movimento diferencial, em que o primeiro vetor de movimento diferencial pertence a informações de movimento do bloco de imagem atual em uma primeira direção, e o segundo vetor de movimento diferencial pertence a informações de movimento do bloco de imagem atual em uma segunda direção; e codificar o primeiro identificador e o primeiro vetor de movimento diferencial em um fluxo de bits.
37. Método, de acordo com a reivindicação 36, em que um segundo vetor de movimento diferencial do bloco de imagem atual poder ser determinado com base no primeiro vetor de movimento diferencial compreende: obter o segundo vetor de movimento diferencial de acordo com a seguinte fórmula: mvd_lY = −mvd_lX em que mvd_lY representa o segundo vetor de movimento diferencial, e mvd_lX representa o primeiro vetor de movimento diferencial.
38. Método, de acordo com a reivindicação 36 ou 37, em que a determinação de um primeiro vetor de movimento diferencial de um bloco de imagem atual compreende: determinar um primeiro vetor de movimento, e obter um primeiro vetor de movimento predito; e determinar o primeiro vetor de movimento diferencial com base no primeiro vetor de movimento e no primeiro vetor de movimento predito.
39. Método, de acordo com a reivindicação 38, em que o método compreende adicionalmente: obter um segundo vetor de movimento predito; determinar um segundo vetor de movimento com base no segundo vetor de movimento predito e no segundo vetor de movimento diferencial; e determinar amostras de predição do bloco de imagem atual com base no primeiro vetor de movimento e no segundo vetor de movimento; em que o primeiro vetor de movimento predito e o primeiro vetor de movimento correspondem à primeira direção, e o segundo vetor de movimento predito e o segundo vetor de movimento correspondem à segunda direção.
40. Método, de acordo com a reivindicação 39, em que o bloco de imagem atual compreende uma primeira lista de quadros de referência na primeira direção e uma segunda lista de quadros de referência na segunda direção, e a determinação de amostras de predição do bloco de imagem atual com base no primeiro vetor de movimento e no segundo vetor de movimento compreende: obter um índice de quadro de referência da primeira lista de quadros de referência e um índice de quadro de referência da segunda lista de quadros de referência; determinar um primeiro bloco de imagem de referência com base no índice de quadro de referência da primeira lista de quadros de referência, no primeiro vetor de movimento, e na primeira lista de quadros de referência; determinar um segundo bloco de imagem de referência com base no índice de quadro de referência da segunda lista de quadros de referência, no segundo vetor de movimento, e na segunda lista de quadros de referência; e determinar as amostras de predição do bloco de imagem atual com base no primeiro bloco de imagem de referência e no segundo bloco de imagem de referência.
41. Método, de acordo com qualquer uma das reivindicações 36 a 40, em que antes da codificação do primeiro identificador em um fluxo de bits, o método compreende adicionalmente: determinar que um número de sequência de um quadro atual no qual o bloco de imagem atual está localizado satisfaz uma condição predefinida, em que a condição predefinida compreende uma condição de que o número de sequência do quadro atual esteja entre um número de sequência de um primeiro quadro de referência e um número de sequência de um segundo quadro de referência, o primeiro quadro de referência pertence à primeira lista de quadros de referência, e o segundo quadro de referência pertence à segunda lista de quadros de referência.
42. Método, de acordo com qualquer uma das reivindicações 36 a 41, compreendendo: quando o valor do primeiro identificador for um segundo valor predefinido, determinar o segundo vetor de movimento diferencial do bloco de imagem atual, e codificar o segundo vetor de movimento diferencial no fluxo de bits.
43. Método, de acordo com qualquer uma das reivindicações 36 a 40, em que antes da codificação do primeiro identificador em um fluxo de bits, o método compreende adicionalmente: determinar que um número de sequência de um quadro atual no qual o bloco de imagem atual está localizado não satisfaz uma condição predefinida, em que a condição predefinida compreende uma condição de que o número de sequência do quadro atual esteja entre um número de sequência de um primeiro quadro de referência e um número de sequência de um segundo quadro de referência, o primeiro quadro de referência pertence à primeira lista de quadros de referência, e o segundo quadro de referência pertence à segunda lista de quadros de referência.
44. Aparelho de predição inter bidirecional, compreendendo: uma unidade de obtenção, configurada para determinar um primeiro vetor de movimento diferencial de um bloco de imagem atual; uma unidade de determinação, configurada para determinar um primeiro identificador, em que quando um valor do primeiro identificador for um primeiro valor predefinido, o primeiro identificador é usado para indicar que um segundo vetor de movimento diferencial do bloco de imagem atual pode ser determinado com base no primeiro vetor de movimento diferencial, em que o primeiro vetor de movimento diferencial pertence a informações de movimento do bloco de imagem atual em uma primeira direção, e o segundo vetor de movimento diferencial pertence a informações de movimento do bloco de imagem atual em uma segunda direção; e uma unidade de codificação, configurada para codificar o primeiro identificador e o primeiro vetor de movimento diferencial em um fluxo de bits.
45. Aparelho, de acordo com a reivindicação 44, em que a unidade de determinação é especificamente configurada para obter o segundo vetor de movimento diferencial de acordo com a seguinte fórmula: mvd_lY = −mvd_lX em que mvd_lY representa o segundo vetor de movimento diferencial, e mvd_lX representa o primeiro vetor de movimento diferencial.
46. Aparelho, de acordo com a reivindicação 44 ou 45, em que a unidade de obtenção é especificamente configurada para: determinar um primeiro vetor de movimento, e obter um primeiro vetor de movimento predito; e determinar o primeiro vetor de movimento diferencial com base no primeiro vetor de movimento e no primeiro vetor de movimento predito.
47. Aparelho, de acordo com a reivindicação 46, em que a unidade de obtenção é adicionalmente configurada para: obter um segundo vetor de movimento predito, e determinar um segundo vetor de movimento com base no segundo vetor de movimento predito e no segundo vetor de movimento diferencial; e o aparelho compreende adicionalmente uma unidade de predição, configurada para determinar amostras de predição do bloco de imagem atual com base no primeiro vetor de movimento e no segundo vetor de movimento; em que o primeiro vetor de movimento predito e o primeiro vetor de movimento correspondem à primeira direção, e o segundo vetor de movimento predito e o segundo vetor de movimento correspondem à segunda direção.
48. Aparelho, de acordo com a reivindicação 47, em que o bloco de imagem atual compreende uma primeira lista de quadros de referência na primeira direção e uma segunda lista de quadros de referência na segunda direção, e a unidade de predição é especificamente configurada para: obter um índice de quadro de referência da primeira lista de quadros de referência e um índice de quadro de referência da segunda lista de quadros de referência; determinar um primeiro bloco de imagem de referência com base no índice de quadro de referência da primeira lista de quadros de referência, no primeiro vetor de movimento, e na primeira lista de quadros de referência; determinar um segundo bloco de imagem de referência com base no índice de quadro de referência da segunda lista de quadros de referência, no segundo vetor de movimento, e na segunda lista de quadros de referência; e determinar as amostras de predição do bloco de imagem atual com base no primeiro bloco de imagem de referência e no segundo bloco de imagem de referência.
49. Aparelho, de acordo com qualquer uma das reivindicações 44 a 48, em que o aparelho compreende uma unidade de julgamento, configurada para: antes de a unidade de codificação codificar o primeiro identificador no fluxo de bits, determinar que um número de sequência de um quadro atual no qual o bloco de imagem atual está localizado satisfaz uma condição predefinida, em que a condição predefinida compreende uma condição de que o número de sequência do quadro atual esteja entre um número de sequência de um primeiro quadro de referência e um número de sequência de um segundo quadro de referência, o primeiro quadro de referência pertence à primeira lista de quadros de referência, e o segundo quadro de referência pertence à segunda lista de quadros de referência.
50. Aparelho, de acordo com qualquer uma das reivindicações 44 a 49, em que a unidade de obtenção é adicionalmente configurada para: quando o valor do primeiro identificador for um segundo valor predefinido, determinar o segundo vetor de movimento diferencial do bloco de imagem atual, e codificar o segundo vetor de movimento diferencial no fluxo de bits.
51. Aparelho, de acordo com qualquer uma das reivindicações 44 a 48, em que o aparelho compreende uma unidade de julgamento, configurada para: antes de a unidade de codificação codificar o primeiro identificador no fluxo de bits, determinar que um número de sequência de um quadro atual no qual o bloco de imagem atual está localizado não satisfaz uma condição predefinida, em que a condição predefinida compreende uma condição de que o número de sequência do quadro atual esteja entre um número de sequência de um primeiro quadro de referência e um número de sequência de um segundo quadro de referência, o primeiro quadro de referência pertence à primeira lista de quadros de referência, e o segundo quadro de referência pertence à segunda lista de quadros de referência.
52. Mídia de armazenamento, em que a mídia de armazenamento compreende o fluxo de bits gerado usando-se o método conforme definido em qualquer uma das reivindicações 24 a 30 ou o fluxo de bits obtido através de decodificação usando-se o método conforme definido em qualquer uma das reivindicações 36 a 43.
53. Aparelho de processamento de imagem, compreendendo um processador, uma memória, uma interface de comunicações, e um barramento, em que o processador é conectado à memória e à interface de comunicações usando-se o barramento; a memória é configurada para armazenar uma instrução; e o processador é configurado para executar a instrução, e quando o processador executa a instrução armazenada na memória, o processador é habilitado a realizar o método de codificação conforme definido em qualquer uma das reivindicações 24 a 30 ou o método de decodificação conforme definido em qualquer uma das reivindicações 36 a 43.
BR112020018923-5A 2018-03-29 2019-01-11 Método e aparelho de predição inter bidirecional BR112020018923A2 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201810274457.X 2018-03-29
CN201810274457.XA CN110324637B (zh) 2018-03-29 2018-03-29 一种双向帧间预测方法及装置
PCT/CN2019/071471 WO2019184556A1 (zh) 2018-03-29 2019-01-11 一种双向帧间预测方法及装置

Publications (1)

Publication Number Publication Date
BR112020018923A2 true BR112020018923A2 (pt) 2020-12-29

Family

ID=68062196

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112020018923-5A BR112020018923A2 (pt) 2018-03-29 2019-01-11 Método e aparelho de predição inter bidirecional

Country Status (14)

Country Link
US (3) US11350122B2 (pt)
EP (1) EP3771211A4 (pt)
JP (2) JP7143435B2 (pt)
KR (2) KR102525178B1 (pt)
CN (6) CN112040244B (pt)
AU (1) AU2019240981B2 (pt)
BR (1) BR112020018923A2 (pt)
CA (1) CA3095220C (pt)
MX (1) MX2020010174A (pt)
PH (1) PH12020551544A1 (pt)
RU (1) RU2762262C1 (pt)
SG (1) SG11202009509VA (pt)
WO (1) WO2019184556A1 (pt)
ZA (1) ZA202006408B (pt)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112040244B (zh) 2018-03-29 2021-06-29 华为技术有限公司 一种双向帧间预测方法及装置
CN113709488B (zh) * 2020-06-30 2023-02-28 杭州海康威视数字技术股份有限公司 一种编解码方法、装置及其设备
CN114071159B (zh) * 2020-07-29 2023-06-30 Oppo广东移动通信有限公司 帧间预测方法、编码器、解码器及计算机可读存储介质
CN116320428A (zh) * 2021-12-20 2023-06-23 维沃移动通信有限公司 帧间预测方法及终端

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ES2354253T3 (es) * 2002-10-04 2011-03-11 Lg Electronics Inc. Método para extraer vectores de movimiento de modo directo.
CN1225127C (zh) * 2003-09-12 2005-10-26 中国科学院计算技术研究所 一种用于视频编码的编码端/解码端双向预测方法
US8917769B2 (en) 2009-07-03 2014-12-23 Intel Corporation Methods and systems to estimate motion based on reconstructed reference frames at a video decoder
KR20110071047A (ko) * 2009-12-20 2011-06-28 엘지전자 주식회사 비디오 신호 디코딩 방법 및 장치
EP2528332A4 (en) 2010-01-19 2015-08-05 Samsung Electronics Co Ltd METHOD AND DEVICE FOR CODING / DECODING PICTURES USING A MOTION VECTOR OF A PREVIOUS BLOCK AS A MOTION VECTOR OF THE PRESENT BLOCK
JP5281597B2 (ja) * 2010-02-04 2013-09-04 日本電信電話株式会社 動きベクトル予測方法,動きベクトル予測装置および動きベクトル予測プログラム
US9503743B2 (en) * 2010-05-12 2016-11-22 Thomson Licensing Methods and apparatus for uni-prediction of self-derivation of motion estimation
CN105744282B (zh) * 2010-05-26 2018-10-23 Lg电子株式会社 用于处理视频信号的方法和设备
US9398308B2 (en) * 2010-07-28 2016-07-19 Qualcomm Incorporated Coding motion prediction direction in video coding
US9148666B2 (en) * 2011-02-09 2015-09-29 Lg Electronics Inc. Method for storing motion information and method for inducing temporal motion vector predictor using same
US9288501B2 (en) * 2011-03-08 2016-03-15 Qualcomm Incorporated Motion vector predictors (MVPs) for bi-predictive inter mode in video coding
WO2013006386A1 (en) 2011-07-01 2013-01-10 General Instrument Corporation Motion vector prediction design simplification
CN107277533B (zh) * 2011-10-28 2020-04-24 三星电子株式会社 帧间预测的方法及其装置和运动补偿的方法及其装置
JP2013106312A (ja) * 2011-11-16 2013-05-30 Jvc Kenwood Corp 画像符号化装置、画像符号化方法及び画像符号化プログラム
CN103188490A (zh) * 2011-12-29 2013-07-03 朱洪波 视频编码中的合并补偿模式
WO2013109124A1 (ko) 2012-01-19 2013-07-25 삼성전자 주식회사 쌍방향 예측 및 블록 병합을 제한하는 비디오 부호화 방법 및 장치, 비디오 복호화 방법 및 장치
WO2013157791A1 (ko) 2012-04-15 2013-10-24 삼성전자 주식회사 인터 예측의 참조영상을 결정하는 방법과 그 장치
RU2647674C1 (ru) 2012-07-02 2018-03-16 Самсунг Электроникс Ко., Лтд. Способ и устройство для кодирования видео и способ и устройство для декодирования видео, определяющие список опорных изображений внешнего прогнозирования в зависимости от размера блока
JP6120707B2 (ja) * 2013-07-08 2017-04-26 ルネサスエレクトロニクス株式会社 動画像符号化装置およびその動作方法
CN104427345B (zh) * 2013-09-11 2019-01-08 华为技术有限公司 运动矢量的获取方法、获取装置、视频编解码器及其方法
CN111193930B (zh) * 2013-12-16 2021-11-30 浙江大学 一种前向双假设编码图像块的编解码方法和装置
GB2524476B (en) 2014-03-14 2016-04-27 Canon Kk Method, device and computer program for optimizing transmission of motion vector related information when transmitting a video stream
EP3202143B8 (en) 2014-11-18 2019-09-25 MediaTek Inc. Method of bi-prediction video coding based on motion vectors from uni-prediction and merge candidate
US10200711B2 (en) * 2015-03-27 2019-02-05 Qualcomm Incorporated Motion vector derivation in video coding
EP3316580A4 (en) * 2015-10-13 2018-09-26 Samsung Electronics Co., Ltd. Method and device for encoding or decoding image
CN109076213A (zh) * 2016-04-28 2018-12-21 Lg 电子株式会社 基于间预测模式的图像处理方法及其装置
CN109196864B (zh) 2016-05-24 2023-07-11 韩国电子通信研究院 图像编码/解码方法和用于所述方法的记录介质
US10462462B2 (en) * 2016-09-29 2019-10-29 Qualcomm Incorporated Motion vector difference coding technique for video coding
US20180192071A1 (en) * 2017-01-05 2018-07-05 Mediatek Inc. Decoder-side motion vector restoration for video coding
CN112040244B (zh) * 2018-03-29 2021-06-29 华为技术有限公司 一种双向帧间预测方法及装置

Also Published As

Publication number Publication date
EP3771211A1 (en) 2021-01-27
KR20230054916A (ko) 2023-04-25
CN117528116A (zh) 2024-02-06
CN117560506A (zh) 2024-02-13
CN112040244A (zh) 2020-12-04
CN113315975A (zh) 2021-08-27
JP7143435B2 (ja) 2022-09-28
ZA202006408B (en) 2022-09-28
US11838535B2 (en) 2023-12-05
US11350122B2 (en) 2022-05-31
EP3771211A4 (en) 2021-05-05
JP2021519548A (ja) 2021-08-10
US20220256184A1 (en) 2022-08-11
US20220286703A1 (en) 2022-09-08
CN117560505A (zh) 2024-02-13
WO2019184556A1 (zh) 2019-10-03
JP2022179516A (ja) 2022-12-02
SG11202009509VA (en) 2020-10-29
CN112040244B (zh) 2021-06-29
CA3095220A1 (en) 2019-10-03
CA3095220C (en) 2023-12-12
KR102525178B1 (ko) 2023-04-21
CN110324637B (zh) 2023-11-17
KR20200131317A (ko) 2020-11-23
US20210021853A1 (en) 2021-01-21
AU2019240981A1 (en) 2020-10-15
RU2762262C1 (ru) 2021-12-17
CN110324637A (zh) 2019-10-11
KR102622150B1 (ko) 2024-01-05
AU2019240981B2 (en) 2023-02-02
PH12020551544A1 (en) 2021-06-07
CN113315975B (zh) 2022-12-06
US11924458B2 (en) 2024-03-05
MX2020010174A (es) 2020-10-28

Similar Documents

Publication Publication Date Title
BR112021005357A2 (pt) aprimoramentos em preditor de vetor de movimento baseado em histórico
EP3672249A1 (en) Inter frame prediction method and device and codec for video images
BR112020014654A2 (pt) compensação de movimento afim em codificação de vídeo
BR112014019444B1 (pt) Restrição de unidades de predição em fatias b para interpredição unidirecional
BR112020018923A2 (pt) Método e aparelho de predição inter bidirecional
BR112013021612B1 (pt) Método e dispositivo para decodificar dados de vídeo de acordo com um modo de fusão, método e dispositivo para codificar dados de vídeo de acordo com um modo de fusão e memória legível por computador
JP7148612B2 (ja) ビデオデータインター予測の方法、装置、ビデオエンコーダ、ビデオデコーダ及びプログラム
KR102606146B1 (ko) 모션 벡터 예측 방법 및 관련 장치
US11659161B2 (en) Reference frame obtaining method and apparatus applied to bidirectional inter prediction
BR112021003965A2 (pt) método e aparelho de obtenção de vetor de movimento, dispositivo de computador, e meio de armazenamento
BR112021004429A2 (pt) método de decodificação e aparelho de decodificação para predizer informações de movimento
EP3840384A1 (en) Construction method for candidate motion information list, inter-frame prediction method, and apparatus
RU2795934C2 (ru) Способ и устройство двунаправленного интер-предсказания
RU2818520C2 (ru) Способ и устройство двунаправленного интер-предсказания

Legal Events

Date Code Title Description
B350 Update of information on the portal [chapter 15.35 patent gazette]
B154 Notification of filing of divisional application [chapter 15.50 patent gazette]

Free format text: O PEDIDO FOI DIVIDIDO NO BR122023008920-0 PROTOCOLO 870230038913 EM 10/05/2023 09:35.O PEDIDO FOI DIVIDIDO NO BR122023008923-5 PROTOCOLO 870230038929 EM 10/05/2023 10:09.O PEDIDO FOI DIVIDIDO NO BR122023008929-4 PROTOCOLO 870230038940 EM 10/05/2023 10:27.