BR112019006146B1 - VIDEO ENCODING METHOD, VIDEO DECODING METHOD, AND TERMINAL - Google Patents

VIDEO ENCODING METHOD, VIDEO DECODING METHOD, AND TERMINAL Download PDF

Info

Publication number
BR112019006146B1
BR112019006146B1 BR112019006146-0A BR112019006146A BR112019006146B1 BR 112019006146 B1 BR112019006146 B1 BR 112019006146B1 BR 112019006146 A BR112019006146 A BR 112019006146A BR 112019006146 B1 BR112019006146 B1 BR 112019006146B1
Authority
BR
Brazil
Prior art keywords
motion vector
information
vector difference
prediction
motion
Prior art date
Application number
BR112019006146-0A
Other languages
Portuguese (pt)
Other versions
BR112019006146A2 (en
Inventor
Jicheng An
Xu Chen
Jianhua Zheng
Original Assignee
Huawei Technologies Co., Ltd
Filing date
Publication date
Application filed by Huawei Technologies Co., Ltd filed Critical Huawei Technologies Co., Ltd
Priority claimed from PCT/CN2016/101081 external-priority patent/WO2018058526A1/en
Publication of BR112019006146A2 publication Critical patent/BR112019006146A2/en
Publication of BR112019006146B1 publication Critical patent/BR112019006146B1/en

Links

Abstract

Um método de codificação de vídeo, um método de decodificação de vídeo, e um terminal são fornecidos. O método de decodificação de vídeo inclui: obter, a partir de um fluxo de bits, um índice de informações de movimento previsto de um bloco de imagem atual em uma lista de informações de movimento previsto candidato, onde as informações de movimento previsto incluem informações de imagem de referência e um valor de previsão de vetor de movimento, e informações de movimento previsto candidato na lista de informações de movimento previsto candidato são informações de movimento de um bloco adjacente do bloco de imagem atual no domínio de tempo ou no domínio espacial; consultar a lista de informações de movimento previsto candidato com base no índice, e usar as informações de movimento previsto candidato encontradas como as informações de movimento previsto; determinar uma correspondência entre uma diferença de vetor de movimento e o valor de previsão de vetor de movimento com base nas informações de movimento previsto, e obter a diferença de vetor de movimento a partir do fluxo de bits; e adicionar o valor de previsão de vetor de movimento e a diferença de vetor de movimento correspondente com base na correspondência (...).A video encoding method, a video decoding method, and a terminal are provided. The video decoding method includes: obtaining, from a bit stream, an index of predicted motion information of a current picture block into a candidate predicted motion information list, where the predicted motion information includes reference picture and a motion vector prediction value, and candidate predicted motion information in the candidate predicted motion information list is motion information of an adjacent block of the current picture block in the time domain or in the spatial domain; query the candidate forecasted movement information list based on the index, and use the found candidate forecasted movement information as the forecasted movement information; determining a correspondence between a motion vector difference and the motion vector prediction value based on the predicted motion information, and obtaining the motion vector difference from the bit stream; and add the motion vector prediction value and the corresponding motion vector difference based on the match (...).

Description

CAMPO DA TÉCNICAFIELD OF TECHNIQUE

[0001] A presente invenção se relaciona ao campo de codificação e decodificação de vídeo e, em particular, a um método de codificação de vídeo, um método de decodificação de vídeo, e um terminal.[0001] The present invention relates to the field of video encoding and decoding, and in particular to a video encoding method, a video decoding method, and a terminal.

FUNDAMENTOSFUNDAMENTALS

[0002] Um princípio básico de compressão de codificação de vídeo é usar uma correlação entre domínio espacial, domínio de tempo, e uma palavra- código para eliminar redundância tanto quanto possível. Uma estrutura de codificação de vídeo híbrida com base em blocos é um método relativamente popular no qual compactação de codificação de vídeo é implantada pelo desempenho de etapas de intraprevisão, interprevisão, transformação, quantização, codificação de entropia, e semelhantes. Tanto os padrões de Grupo de Especialistas de Elemento de Imagens em Movimento (Moving Picture Experts Group), MPEG) quanto Codificação de Vídeo de Alta Eficiência (High Efficiency Video Coding, HEVC) usam a estrutura de codificação de vídeo híbrida com base em blocos.[0002] A basic principle of video coding compression is to use a correlation between spatial domain, time domain, and codeword to eliminate redundancy as much as possible. A hybrid block-based video coding framework is a relatively popular method in which video coding compression is implemented by performing steps of intraprediction, interprediction, transformation, quantization, entropy coding, and the like. Both the Moving Picture Experts Group (MPEG) and High Efficiency Video Coding (HEVC) standards use the block-based hybrid video coding structure.

[0003] Durante interprevisão, informações de movimento de cada bloco de imagem precisam ser determinadas, de modo a gerar um bloco de previsão do bloco de imagem usando-se um processo de compensação de movimento. As informações de movimento incluem informações de imagem de referência e um vetor de movimento.[0003] During interprediction, motion information of each image block needs to be determined, in order to generate a prediction block of the image block using a motion compensation process. Motion information includes reference image information and a motion vector.

[0004] Quando informações de movimento de um bloco de imagem atual são determinadas, métodos comumente usados incluem um modo de mesclagem (merge mode), um modo de não mesclagem, e semelhantes. As seguintes etapas podem ser incluídas no modo de mesclagem:[0004] When motion information of a current image block is determined, commonly used methods include a merge mode, a non-merge mode, and the like. The following steps can be included in merge mode:

[0005] 1. Construir uma lista de informações de movimento candidato, onde as informações de movimento candidato na lista são obtidas através de dedução usando-se informações de movimento de um bloco adjacente do bloco de imagem atual em termos de espaço ou tempo.[0005] 1. Construct a list of candidate move information, where candidate move information in the list is obtained through deduction using move information of an adjacent block from the current picture block in terms of space or time.

[0006] 2. Selecionar um pedaço de informações de movimento a partir da lista de informações de movimento candidato, transferir um índice das informações de movimento na lista, e especificar todas as informações de movimento do bloco de imagem atual usando-se o índice das informações de movimento.[0006] 2. Select a piece of motion information from the candidate motion information list, transfer an index of the motion information in the list, and specify all motion information of the current image block using the index of the motion information.

[0007] Um vetor de movimento no modo de mesclagem é obtido duplicando-se completamente um vetor de movimento de um bloco adjacente e, consequentemente, um vetor de movimento do bloco de imagem atual é não tem precisão suficiente.[0007] A motion vector in blending mode is obtained by completely duplicating a motion vector of an adjacent block, and consequently a motion vector of the current image block is not accurate enough.

[0008] No entanto, no modo de não mesclagem, as informações de movimento do bloco de imagem atual podem ser determinadas desempenhando- se as seguintes etapas:[0008] However, in non-merge mode, the motion information of the current image block can be determined by performing the following steps:

[0009] 1. Transferir informações de imagem de referência, onde as informações de imagem de referência incluem informações de previsão unidirecional/bidirecional, uma ou duas listas de imagem de referência, e um ou dois índices de imagem de referência correspondentes à uma ou às duas listas de imagem de referência respectivamente.[0009] 1. Transfer reference image information, where the reference image information includes unidirectional/bidirectional prediction information, one or two reference image lists, and one or two reference image indexes corresponding to one or more two reference image lists respectively.

[0010] 2. Construir uma lista de valores de previsão de vetores de movimento candidato, onde um valor de previsão de vetor de movimento candidato na lista é obtido através de dedução usando-se informações de movimento de um bloco adjacente do bloco de imagem atual.[0010] 2. Construct a list of candidate motion vector prediction values, where a candidate motion vector prediction value in the list is obtained through deduction using motion information from an adjacent block of the current image block .

[0011] 3. Selecionar um valor de previsão de vetor de movimento a partir da lista de valores de previsão de vetor de movimento candidato, transferir um índice do valor de previsão de vetor de movimento na lista, e especificar um valor de previsão de vetor de movimento do bloco de imagem atual usando-se o índice do valor de previsão de vetor de movimento.[0011] 3. Select a motion vector prediction value from the list of candidate motion vector prediction values, transfer an index of the motion vector prediction value in the list, and specify a motion vector prediction value of the current image block using the index of the motion vector prediction value.

[0012] 4. Transferir uma diferença de vetor de movimento, e adicionar a diferença de vetor de movimento e o valor de previsão de vetor de movimento para obter um vetor de movimento do bloco de imagem atual.[0012] 4. Transfer a motion vector difference, and add the motion vector difference and the motion vector prediction value to get a motion vector of the current image block.

[0013] No modo de não mesclagem, as informações de imagem de referência, o índice do valor de previsão de vetor de movimento, e a diferença de vetor de movimento correspondente precisam ser transferidos, de modo que as informações de movimento sejam mais precisas. No entanto, uma quantidade relativamente grande de informações é transferida e, consequentemente, uma taxa de bits é relativamente alta.[0013] In non-merge mode, the reference image information, the motion vector prediction value index, and the corresponding motion vector difference need to be transferred, so that the motion information is more accurate. However, a relatively large amount of information is transferred and, accordingly, a relatively high bit rate.

SUMÁRIOSUMMARY

[0014] Modalidades da presente invenção fornecem um método de codificação de vídeo, um método de decodificação de vídeo, e um terminal, para reduzir as informações que precisam ser transferidas em um caso de mesma qualidade de vídeo, economizando assim bits de transmissão específicos.[0014] Embodiments of the present invention provide a video encoding method, a video decoding method, and a terminal, to reduce the information that needs to be transferred in a case of the same video quality, thus saving specific transmission bits.

[0015] Um primeiro aspecto das modalidades da presente invenção revela um método de decodificação de vídeo, incluindo: obter, a partir de um fluxo de bits, um índice de informações de movimento previsto de um bloco de imagem atual em uma lista de informações de movimento previsto candidato, onde as informações de movimento previsto incluem informações de imagem de referência e um valor de previsão de vetor de movimento, e informações de movimento previsto candidato na lista de informações de movimento previsto candidato são informações de movimento de um bloco adjacente do bloco de imagem atual no domínio de tempo ou no domínio espacial; consultar a lista de informações de movimento previsto candidato com base no índice, e usar as informações de movimento previsto candidato encontradas como as informações de movimento previsto; determinar uma correspondência entre uma diferença de vetor de movimento e o valor de previsão de vetor de movimento com base nas informações de movimento previsto, e obter a diferença de vetor de movimento a partir do fluxo de bits; e adicionar o valor de previsão de vetor de movimento e a diferença de vetor de movimento correspondente com base na correspondência para obter um vetor de movimento do bloco de imagem atual.[0015] A first aspect of embodiments of the present invention discloses a video decoding method, including: obtaining, from a bitstream, an index of predicted motion information of a current image block into a list of motion information candidate predicted motion, where the predicted motion information includes reference image information and a motion vector prediction value, and candidate predicted motion information in the candidate predicted motion information list is motion information of an adjacent block of the block current image in the time domain or in the spatial domain; query the candidate forecasted movement information list based on the index, and use the found candidate forecasted movement information as the forecasted movement information; determining a correspondence between a motion vector difference and the motion vector prediction value based on the predicted motion information, and obtaining the motion vector difference from the bit stream; and adding the motion vector prediction value and the corresponding motion vector difference based on the match to obtain a motion vector of the current image block.

[0016] Nesta implantação, o valor de previsão de vetor de movimento do bloco de imagem atual é corrigido usando-se a diferença de vetor de movimento, de modo que o vetor de movimento do bloco de imagem atual obtido através de reconstrução seja mais preciso. Além disso, a diferença de vetor de movimento é determinada mais eficazmente com base na correspondência entre a diferença de vetor de movimento e o valor de previsão de vetor de movimento, economizando assim bits de transmissão.[0016] In this implementation, the motion vector prediction value of the current image block is corrected using the motion vector difference, so that the motion vector of the current image block obtained through reconstruction is more accurate . Furthermore, the motion vector difference is determined more efficiently based on the correspondence between the motion vector difference and the motion vector prediction value, thus saving transmission bits.

[0017] Em uma implantação opcional, a determinação de uma correspondência entre uma diferença de vetor de movimento e o valor de previsão de vetor de movimento com base nas informações de movimento previsto inclui: determinar um modo de previsão do bloco de imagem atual com base nas informações de imagem de referência, onde o modo de previsão inclui previsão unidirecional ou previsão bidirecional; determinar uma quantidade de diferenças de vetor de movimento com base no modo de previsão; e determinar a correspondência entre a diferença de vetor de movimento e o valor de previsão de vetor de movimento com base na quantidade de diferenças de vetor de movimento e nas informações de movimento previsto.[0017] In an optional deployment, determining a match between a motion vector difference and the motion vector prediction value based on predicted motion information includes: determining a prediction mode of the current image block based on in the reference image information, where the prediction mode includes one-way prediction or two-way prediction; determine a quantity of motion vector differences based on the prediction mode; and determining the correspondence between the motion vector difference and the motion vector prediction value based on the amount of motion vector differences and the predicted motion information.

[0018] Nesta implantação, a correspondência entre a diferença de vetor de movimento e o valor de previsão de vetor de movimento é determinada, e então o valor de previsão de vetor de movimento é corrigido usando-se a diferença de vetor de movimento correspondente ao valor de previsão de vetor de movimento, de modo que o vetor de movimento do bloco de imagem atual obtido através de reconstrução seja mais preciso.[0018] In this implementation, the correspondence between the motion vector difference and the motion vector prediction value is determined, and then the motion vector prediction value is corrected using the motion vector difference corresponding to the motion vector prediction value, so that the motion vector of the current image block obtained through reconstruction is more accurate.

[0019] Em uma implantação opcional, a determinação de uma quantidade de diferenças de vetor de movimento com base no modo de previsão inclui: se o modo de previsão é a previsão unidirecional, determinar que há uma diferença de vetor de movimento; ou se o modo de previsão é a previsão bidirecional, e as informações de imagem de referência incluem uma contagem de ordem de figura de uma imagem de referência, determinar a quantidade de diferenças de vetor de movimento com base na contagem de ordem de figura da imagem de referência do bloco de imagem atual; ou se o modo de previsão é a previsão bidirecional, obter a quantidade de diferenças de vetor de movimento a partir de pelo menos uma dentre informações de cabeçalho de camada de fatia, informações de cabeçalho de camada de imagem, e informações de cabeçalho de camada de sequência que são do fluxo de bits.[0019] In an optional deployment, determining an amount of motion vector differences based on the prediction mode includes: if the prediction mode is unidirectional prediction, determining that there is a motion vector difference; or if the prediction mode is bidirectional prediction, and the reference image information includes a figure order count of a reference image, determine the amount of motion vector differences based on the image order count current image block reference; or if the prediction mode is bidirectional prediction, obtain the amount of motion vector differences from at least one of slice layer header information, image layer header information, and image layer header information. sequence that are from the bit stream.

[0020] Efeitos benéficos desta implantação são os seguintes: o valor de previsão de vetor de movimento do bloco de imagem atual é corrigido usando- se a diferença de vetor de movimento, de modo que o vetor de movimento do bloco de imagem atual obtido através de reconstrução seja mais preciso.[0020] Beneficial effects of this implementation are as follows: the motion vector prediction value of the current image block is corrected using the motion vector difference, so that the motion vector of the current image block obtained through reconstruction is more accurate.

[0021] Em uma implantação opcional, a determinação da quantidade de diferenças de vetor de movimento com base na contagem de ordem de figura da imagem de referência do bloco de imagem atual inclui: se uma contagem de ordem de figura de uma primeira imagem de referência do bloco de imagem atual é maior do que uma contagem de ordem de figura do bloco de imagem atual, e uma contagem de ordem de figura de uma segunda imagem de referência do bloco de imagem atual é menor que a contagem de ordem de figura do bloco de imagem atual, determinar que há duas diferenças de vetor de movimento; ou se uma contagem de ordem de figura de cada imagem de referência do bloco de imagem atual é maior que uma contagem de ordem de figura do bloco de imagem atual, ou uma contagem de ordem de figura de cada imagem de referência do bloco de imagem atual é menor que uma contagem de ordem de figura do bloco de imagem atual, determinar que há uma diferença de vetor de movimento.[0021] In an optional deployment, determining the amount of motion vector differences based on the figure order count of the reference image of the current image block includes: whether a figure order count of a first reference image of the current image block is greater than a figure order count of the current image block, and a figure order count of a second reference image of the current image block is less than the figure order count of the block from current image, determine that there are two motion vector differences; or if a figure order count of each reference picture of the current picture block is greater than a figure order count of the current picture block, or a figure order count of each reference picture of the current picture block is less than a figure order count of the current picture block, determine that there is a motion vector difference.

[0022] Efeitos benéficos desta implantação são os seguintes: o valor de previsão de vetor de movimento do bloco de imagem atual é corrigido usando- se a diferença de vetor de movimento, de modo que o vetor de movimento do bloco de imagem atual obtido através de reconstrução seja mais preciso.[0022] Beneficial effects of this implementation are as follows: the motion vector prediction value of the current image block is corrected using the motion vector difference, so that the motion vector of the current image block obtained through reconstruction is more accurate.

[0023] Em uma implantação opcional, se o modo de previsão é a previsão bidirecional, as informações de movimento previsto incluem dois valores de previsão de vetor de movimento: um primeiro valor de previsão de vetor de movimento e um segundo valor de previsão de vetor de movimento, e a determinação da correspondência entre a diferença de vetor de movimento e o valor de previsão de vetor de movimento com base na quantidade de diferenças de vetor de movimento e nas informações de movimento previsto inclui: se houver duas diferenças de vetor de movimento, usar separadamente as duas diferenças de vetor de movimento como diferenças de vetor de movimento correspondentes ao primeiro valor de previsão de vetor de movimento e ao segundo valor de previsão de vetor de movimento; ou se houver uma diferença de vetor de movimento, usar a diferença de vetor de movimento como uma diferença de vetor de movimento correspondente ao primeiro valor de previsão de vetor de movimento, e definir uma diferença de vetor de movimento correspondente ao segundo valor de previsão de vetor de movimento como 0; ou usar a diferença de vetor de movimento como uma diferença de vetor de movimento correspondente ao segundo valor de previsão de vetor de movimento, e definir uma diferença de vetor de movimento correspondente ao primeiro valor de previsão de vetor de movimento como 0; ou usar a diferença de vetor de movimento como uma diferença de vetor de movimento correspondente a cada um dentre o primeiro valor de previsão de vetor de movimento e o segundo valor de previsão de vetor de movimento; ou obter, a partir do fluxo de bits, informações indicando que a diferença de vetor de movimento é correspondente ao primeiro valor de previsão de vetor de movimento ou indicando que a diferença de vetor de movimento é correspondente ao segundo valor de previsão de vetor de movimento.[0023] In an optional deployment, if the prediction mode is bidirectional prediction, the predicted motion information includes two motion vector prediction values: a first motion vector prediction value and a second motion vector prediction value of motion, and determining the match between the motion vector difference and the motion vector prediction value based on the amount of motion vector differences and the predicted motion information includes: if there are two motion vector differences , separately using the two motion vector differences as motion vector differences corresponding to the first motion vector prediction value and the second motion vector prediction value; or if there is a motion vector difference, use the motion vector difference as a motion vector difference corresponding to the first motion vector prediction value, and define a motion vector difference corresponding to the second prediction value of motion vector as 0; or use the motion vector difference as a motion vector difference corresponding to the second motion vector prediction value, and set a motion vector difference corresponding to the first motion vector prediction value to 0; or use the motion vector difference as a motion vector difference corresponding to each of the first motion vector prediction value and the second motion vector prediction value; or obtaining, from the bitstream, information indicating that the motion vector difference corresponds to the first motion vector prediction value or indicating that the motion vector difference corresponds to the second motion vector prediction value .

[0024] Os efeitos benéficos desta implantação são os seguintes: o valor de previsão de vetor de movimento do bloco de imagem atual é corrigido usando-se a diferença de vetor de movimento, de modo que o vetor de movimento do bloco de imagem atual obtido através de reconstrução seja mais preciso. Além disso, a diferença de vetor de movimento é determinada mais eficazmente com base na correspondência entre a diferença de vetor de movimento e o valor de previsão de vetor de movimento, economizando assim bits de transmissão.[0024] The beneficial effects of this implementation are as follows: the motion vector prediction value of the current image block is corrected using the motion vector difference, so that the motion vector of the current image block obtained through reconstruction is more accurate. Furthermore, the motion vector difference is determined more efficiently based on the correspondence between the motion vector difference and the motion vector prediction value, thus saving transmission bits.

[0025] Em uma implantação opcional, uma quantidade de pedaços de informações de movimento previsto candidato na lista de informações de movimento previsto candidato é obtida de pelo menos uma dentre as informações de cabeçalho de camada de fatia, as informações de cabeçalho de camada de imagem e as informações de camada de sequência de cabeçalho que são do fluxo de bits.[0025] In an optional implementation, a quantity of candidate predicted motion information pieces in the candidate predicted motion information list is obtained from at least one of the slice layer header information, the image layer header information and the header sequence layer information that is from the bitstream.

[0026] Efeitos benéficos desta implantação são os seguintes: o valor de previsão de vetor de movimento do bloco de imagem atual é corrigido usando- se a diferença de vetor de movimento, de modo que o vetor de movimento do bloco de imagem atual obtido através de reconstrução seja mais preciso.[0026] Beneficial effects of this implementation are as follows: the motion vector prediction value of the current image block is corrected using the motion vector difference, so that the motion vector of the current image block obtained through reconstruction is more accurate.

[0027] Em uma implantação opcional, a quantidade de pedaços de informações de movimento previsto candidato na lista de informações de movimento previsto candidato é menor que uma quantidade de pedaços de informações de movimento em uma lista de informações de movimento em um modo de mesclagem.[0027] In an optional deployment, the amount of candidate predicted motion information pieces in the candidate predicted motion information list is less than a number of motion information pieces in a motion information list in a merge mode.

[0028] Efeitos benéficos desta implantação são os seguintes: a quantidade de pedaços de informações de movimento previsto candidato na lista de informações de movimento previsto candidato é controlada para reduzir a complexidade de cálculo, aumentando assim uma velocidade de decodificação.[0028] Beneficial effects of this implementation are as follows: The amount of pieces of candidate predicted motion information in the list of candidate predicted motion information is controlled to reduce computation complexity, thus increasing a decoding speed.

[0029] Em uma implantação opcional, o bloco de imagem atual é qualquer unidade de previsão de um bloco de imagem a ser reconstruído atual correspondente ao fluxo de bits.[0029] In an optional implementation, the current image block is any prediction unit of a current image block to be reconstructed corresponding to the bit stream.

[0030] Efeitos benéficos desta implantação são os seguintes: o valor de previsão de vetor de movimento do bloco de imagem atual é corrigido usando- se a diferença de vetor de movimento, de modo que o vetor de movimento do bloco de imagem atual obtido através de reconstrução seja mais preciso. Além disso, a diferença de vetor de movimento é determinada mais eficazmente com base na correspondência entre a diferença de vetor de movimento e o valor de previsão de vetor de movimento, economizando assim bits de transmissão.[0030] Beneficial effects of this implementation are as follows: the motion vector prediction value of the current image block is corrected using the motion vector difference, so that the motion vector of the current image block obtained through reconstruction is more accurate. Furthermore, the motion vector difference is determined more efficiently based on the correspondence between the motion vector difference and the motion vector prediction value, thus saving transmission bits.

[0031] Um segundo aspecto das modalidades da presente invenção revela um terminal de decodificação de vídeo, e o terminal de decodificação de vídeo inclui um processador e uma memória. O processador é configurado para desempenhar as seguintes operações: obter, a partir de um fluxo de bits, um índice de informações de movimento previsto de um bloco de imagem atual em uma lista de informações de movimento previsto candidato, onde as informações de movimento previsto incluem informações de imagem de referência e um valor de previsão de vetor de movimento, e informações de movimento previsto candidato na lista de informações de movimento previsto candidato são informações de movimento de um bloco adjacente do bloco de imagem atual no domínio de tempo ou no domínio espacial; consultar a lista de informações de movimento previsto candidato com base no índice, e usar as informações de movimento previsto candidato encontradas como as informações de movimento previsto; determinar uma correspondência entre uma diferença de vetor de movimento e o valor de previsão de vetor de movimento com base nas informações de movimento previsto, e obter a diferença de vetor de movimento a partir do fluxo de bits; e adicionar o valor de previsão de vetor de movimento e a diferença de vetor de movimento correspondente com base na correspondência para obter um vetor de movimento do bloco de imagem atual.[0031] A second aspect of embodiments of the present invention discloses a video decoding terminal, and the video decoding terminal includes a processor and memory. The processor is configured to perform the following operations: obtaining, from a bit stream, an index of predicted motion information of a current picture block into a candidate predicted motion information list, where the predicted motion information includes reference image information and a motion vector prediction value, and candidate predicted motion information in the candidate predicted motion information list is motion information of an adjacent block of the current image block in either the time domain or the spatial domain ; query the candidate forecasted movement information list based on the index, and use the found candidate forecasted movement information as the forecasted movement information; determining a correspondence between a motion vector difference and the motion vector prediction value based on the predicted motion information, and obtaining the motion vector difference from the bit stream; and adding the motion vector prediction value and the corresponding motion vector difference based on the match to obtain a motion vector of the current image block.

[0032] Em uma implantação opcional, o fato de que o processador determina uma correspondência entre uma diferença de vetor de movimento e o valor de previsão de vetor de movimento com base nas informações de movimento previsto inclui: determinar um modo de previsão do bloco de imagem atual com base nas informações de imagem de referência, onde o modo de previsão inclui previsão unidirecional ou previsão bidirecional; determinar uma quantidade de diferenças de vetor de movimento com base no modo de previsão; e determinar a correspondência entre a diferença de vetor de movimento e o valor de previsão de vetor de movimento com base na quantidade de diferenças de vetor de movimento e nas informações de movimento previsto.[0032] In an optional implementation, the fact that the processor determines a match between a motion vector difference and the motion vector prediction value based on predicted motion information includes: determining a motion block prediction mode current image based on reference image information, where the prediction mode includes one-way prediction or two-way prediction; determine a quantity of motion vector differences based on the prediction mode; and determining the correspondence between the motion vector difference and the motion vector prediction value based on the amount of motion vector differences and the predicted motion information.

[0033] Em uma implantação opcional, o fato de que o processador determina uma quantidade de diferenças de vetor de movimento com base no modo de previsão inclui: se o modo de previsão é a previsão unidirecional, determinar que há uma diferença de vetor de movimento; ou se o modo de previsão é a previsão bidirecional, e as informações de imagem de referência incluem uma contagem de ordem de figura de uma imagem de referência, determinar a quantidade de diferenças de vetor de movimento com base na contagem de ordem de figura da imagem de referência do bloco de imagem atual; ou se o modo de previsão é a previsão bidirecional, obter a quantidade de diferenças de vetor de movimento de pelo menos uma dentre informações de cabeçalho de camada de fatia, informações de cabeçalho de camada de imagem, e informações de cabeçalho de camada de sequência que são do fluxo de bits.[0033] In an optional implementation, the fact that the processor determines a number of motion vector differences based on the prediction mode includes: if the prediction mode is unidirectional prediction, determining that there is a motion vector difference ; or if the prediction mode is bidirectional prediction, and the reference image information includes a figure order count of a reference image, determine the amount of motion vector differences based on the image order count current image block reference; or if the prediction mode is bidirectional prediction, obtain the amount of motion vector differences of at least one of the slice layer header information, image layer header information, and sequence layer header information that are from the bitstream.

[0034] Em uma implantação opcional, o fato de que o processador determina a quantidade de diferenças de vetor de movimento com base na contagem de ordem de figura da imagem de referência do bloco de imagem atual inclui: se uma contagem de ordem de figura de uma primeira imagem de referência do bloco de imagem atual é maior que uma contagem de ordem de figura do bloco de imagem atual e uma contagem de ordem de figura de uma segunda imagem de referência do bloco de imagem atual é menor que a contagem de ordem de figura do bloco de imagem atual, determinar que há duas diferenças de vetor de movimento; ou se uma contagem de ordem de figura de cada imagem de referência do bloco de imagem atual é maior que uma contagem de ordem de figura do bloco de imagem atual, ou uma contagem de ordem de figura de cada imagem de referência do bloco de imagem atual é menor que uma contagem de ordem de figura do bloco de imagem atual, determinar que há uma diferença de vetor de movimento.[0034] In an optional implementation, the fact that the processor determines the amount of motion vector differences based on the current image block's figure order count of the reference image includes: whether a figure order count of a first reference picture of the current picture block is greater than a figure order count of the current picture block, and a figure order count of a second reference picture of the current picture block is less than the figure order count of current image block figure, determine that there are two motion vector differences; or if a figure order count of each reference picture of the current picture block is greater than a figure order count of the current picture block, or a figure order count of each reference picture of the current picture block is less than a figure order count of the current picture block, determine that there is a motion vector difference.

[0035] Em uma implantação opcional, se o modo de previsão é a previsão bidirecional, as informações de movimento previsto incluem dois valores de previsão de vetor de movimento: um primeiro valor de previsão de vetor de movimento e um segundo valor de previsão de vetor de movimento, e o fato de que o processador determina a correspondência entre a diferença de vetor de movimento e o valor de previsão de vetor de movimento com base na quantidade de diferenças de vetor de movimento e nas informações de movimento previsto inclui: se houver duas diferenças de vetor de movimento, usar separadamente as duas diferenças de vetor de movimento como diferenças de vetor de movimento correspondentes ao primeiro valor de previsão de vetor de movimento e ao segundo valor de previsão de vetor de movimento; ou se houver uma diferença de vetor de movimento, usar a diferença de vetor de movimento como uma diferença de vetor de movimento correspondente ao primeiro valor de previsão de vetor de movimento, e definir uma diferença de vetor de movimento correspondente ao segundo valor de previsão de vetor de movimento como 0; ou usar a diferença de vetor de movimento como uma diferença de vetor de movimento correspondente ao segundo valor de previsão de vetor de movimento, e definir uma diferença de vetor de movimento correspondente ao primeiro valor de previsão de vetor de movimento como 0; ou usar a diferença de vetor de movimento como uma diferença de vetor de movimento correspondente a cada um dentre o primeiro valor de previsão de vetor de movimento e o segundo valor de previsão de vetor de movimento; ou obter, a partir do fluxo de bits, informações indicando que a diferença de vetor de movimento é correspondente ao primeiro valor de previsão de vetor de movimento ou indicar que a diferença de vetor de movimento é correspondente ao segundo valor de previsão de vetor de movimento.[0035] In an optional deployment, if the prediction mode is bidirectional prediction, the predicted motion information includes two motion vector prediction values: a first motion vector prediction value and a second motion vector prediction value of motion, and the fact that the processor determines the correspondence between the motion vector difference and the predicted motion vector value based on the amount of motion vector differences and the predicted motion information includes: if there are two motion vector differences, separately use the two motion vector differences as motion vector differences corresponding to the first motion vector prediction value and the second motion vector prediction value; or if there is a motion vector difference, use the motion vector difference as a motion vector difference corresponding to the first motion vector prediction value, and define a motion vector difference corresponding to the second prediction value of motion vector as 0; or use the motion vector difference as a motion vector difference corresponding to the second motion vector prediction value, and set a motion vector difference corresponding to the first motion vector prediction value to 0; or use the motion vector difference as a motion vector difference corresponding to each of the first motion vector prediction value and the second motion vector prediction value; or obtain, from the bitstream, information indicating that the motion vector difference corresponds to the first motion vector prediction value or indicate that the motion vector difference corresponds to the second motion vector prediction value .

[0036] Em uma implantação opcional, uma quantidade de pedaços de informações de movimento previsto candidato na lista de informações de movimento previsto candidato é obtida de pelo menos uma dentre as informações de cabeçalho de camada de fatia, as informações de cabeçalho de camada de imagem e as informações de cabeçalho de camada de sequência que são do fluxo de bits.[0036] In an optional deployment, a number of pieces of candidate predicted motion information in the candidate predicted motion information list is obtained from at least one of the slice layer header information, the image layer header information and the sequence layer header information that is from the bitstream.

[0037] Em uma implantação opcional, a quantidade de pedaços de informações de movimento previsto candidato na lista de informações de movimento previsto candidato é menor que uma quantidade de pedaços de informações de movimento em uma lista de informações de movimento em um modo de mesclagem.[0037] In an optional deployment, the amount of candidate predicted motion information pieces in the candidate predicted motion information list is less than a number of motion information pieces in a motion information list in a merge mode.

[0038] Em uma implantação opcional, o bloco de imagem atual é qualquer unidade de previsão de um bloco de imagem a ser reconstruído atual correspondente ao fluxo de bits.[0038] In an optional implementation, the current image block is any prediction unit of a current image block to be reconstructed corresponding to the bit stream.

[0039] Um terceiro aspecto das modalidades da presente invenção revela um terminal de decodificação de vídeo, incluindo: uma primeira unidade de obtenção, configurada para obter, a partir de um fluxo de bits, um índice de informações de movimento previsto de um bloco de imagem atual em uma lista de informações de movimento previsto candidato, onde as informações de movimento previsto incluem informações de imagem de referência e um valor de previsão de vetor de movimento, e informações de movimento previsto candidato na lista de informações de movimento previsto candidato são informações de movimento de um bloco adjacente do bloco de imagem atual no domínio de tempo ou no domínio espacial; uma unidade de consulta, configurada para consultar a lista de informações de movimento previsto candidato com base no índice, e usar as informações de movimento previsto candidato encontradas como as informações de movimento previsto; uma unidade de determinação, configurada para determinar uma correspondência entre uma diferença de vetor de movimento e o valor de previsão de vetor de movimento com base nas informações de movimento previsto; uma segunda unidade de obtenção, configurada para obter a diferença de vetor de movimento a partir do fluxo de bits; e uma unidade de operação, configurada para adicionar o valor de previsão de vetor de movimento e a diferença de vetor de movimento correspondente com base na correspondência para obter um vetor de movimento do bloco de imagem atual.[0039] A third aspect of embodiments of the present invention discloses a video decoding terminal, including: a first acquisition unit, configured to obtain, from a bit stream, an index of predicted movement information of a block of current image in a candidate predicted motion information list, where predicted motion information includes reference image information and a motion vector prediction value, and candidate predicted motion information in the candidate predicted motion information list is information moving an adjacent block of the current image block in the time domain or in the spatial domain; a query unit, configured to query the list of candidate forecasted movement information based on the index, and use the found candidate forecasted movement information as the forecasted movement information; a determining unit configured to determine a match between a motion vector difference and the motion vector prediction value based on the predicted motion information; a second acquisition unit configured to obtain the motion vector difference from the bit stream; and an operation unit configured to add the motion vector prediction value and the corresponding motion vector difference based on the matching to obtain a motion vector of the current picture block.

[0040] Em uma implantação opcional, a unidade de determinação inclui: uma primeira subunidade de determinação, configurada para determinar um modo de previsão do bloco de imagem atual com base nas informações de imagem de referência, onde o modo de previsão inclui previsão unidirecional ou previsão bidirecional; uma segunda subunidade de determinação, configurada para determinar uma quantidade de diferenças de vetor de movimento com base no modo de previsão; e uma terceira subunidade de determinação, configurada para determinar a correspondência entre a diferença de vetor de movimento e o valor de previsão de vetor de movimento com base na quantidade de diferenças de vetor de movimento e nas informações de movimento previsto.[0040] In an optional deployment, the determination unit includes: a first determination subunit, configured to determine a prediction mode of the current image block based on reference image information, where the prediction mode includes unidirectional prediction or bidirectional prediction; a second determination sub-unit configured to determine a quantity of motion vector differences based on the prediction mode; and a third determination sub-unit configured to determine the correspondence between the motion vector difference and the motion vector prediction value based on the amount of motion vector differences and the predicted motion information.

[0041] Em uma implantação opcional, a segunda subunidade de determinação é especificamente configurada para: se o modo de previsão é a previsão unidirecional, determinar que há uma diferença de vetor de movimento; ou se o modo de previsão é a previsão bidirecional, e as informações de imagem de referência incluem uma contagem de ordem de figura de uma imagem de referência, determinar a quantidade de diferenças de vetor de movimento com base na contagem de ordem de figura da imagem de referência do bloco de imagem atual; ou se o modo de previsão é a previsão bidirecional, obter a quantidade de diferenças de vetor de movimento de pelo menos uma dentre informações de cabeçalho de camada de fatia, informações de cabeçalho de camada de imagem, e informações de cabeçalho de camada de sequência que são do fluxo de bits.[0041] In an optional deployment, the second determination subunit is specifically configured to: if the prediction mode is unidirectional prediction, determine that there is a motion vector difference; or if the prediction mode is bidirectional prediction, and the reference image information includes a figure order count of a reference image, determine the amount of motion vector differences based on the image order count current image block reference; or if the prediction mode is bidirectional prediction, obtain the amount of motion vector differences of at least one of the slice layer header information, image layer header information, and sequence layer header information that are from the bitstream.

[0042] Em uma implantação opcional, quando se determina a quantidade de diferenças de vetor de movimento com base na contagem de ordem de figura da imagem de referência do bloco de imagem atual, a segunda subunidade de determinação é especificamente configurada para: se uma contagem de ordem de figura de uma primeira imagem de referência do bloco de imagem atual é maior que uma contagem de ordem de figura do bloco de imagem atual, e uma contagem de ordem de figura de uma segunda imagem de referência do bloco de imagem atual é menor que a contagem de ordem de figura do bloco de imagem atual, determinar que há duas diferenças de vetor de movimento; ou se uma contagem de ordem de figura de cada imagem de referência do bloco de imagem atual é maior que uma contagem de ordem de figura do bloco de imagem atual, ou uma contagem de ordem de figura de cada imagem de referência do bloco de imagem atual é menor que uma contagem de ordem de figura do bloco de imagem atual, determinar que há uma diferença de vetor de movimento.[0042] In an optional implementation, when determining the amount of motion vector differences based on the figure order count of the reference image of the current image block, the second determination subunit is specifically configured for: if a count figure order count of a first reference picture of the current picture block is greater than a figure order count of the current picture block, and a figure order count of a second reference picture of the current picture block is less that the figure order count of the current picture block, determine that there are two motion vector differences; or if a figure order count of each reference picture of the current picture block is greater than a figure order count of the current picture block, or a figure order count of each reference picture of the current picture block is less than a figure order count of the current picture block, determine that there is a motion vector difference.

[0043] Em uma implantação opcional, se o modo de previsão é a previsão bidirecional, as informações de movimento previsto incluem dois valores de previsão de vetor de movimento: um primeiro valor de previsão de vetor de movimento e um segundo valor de previsão de vetor de movimento, e a terceira subunidade de determinação é configurada especificamente para: se houver duas diferenças de vetor de movimento, usar separadamente as duas diferenças de vetor de movimento como diferenças de vetor de movimento correspondentes ao primeiro valor de previsão de vetor de movimento e ao segundo valor de previsão de vetor de movimento; ou se houver uma diferença de vetor de movimento, usar a diferença de vetor de movimento como uma diferença de vetor de movimento correspondente ao primeiro valor de previsão de vetor de movimento, e definir uma diferença de vetor de movimento correspondente ao segundo valor de previsão de vetor de movimento como 0; ou usar a diferença de vetor de movimento como uma diferença de vetor de movimento correspondente ao segundo valor de previsão de vetor de movimento, e definir uma diferença de vetor de movimento correspondente ao primeiro valor de previsão de vetor de movimento como 0; ou usar a diferença de vetor de movimento como uma diferença de vetor de movimento correspondente a cada um dentre o primeiro valor de previsão de vetor de movimento e o segundo valor de previsão de vetor de movimento; ou obter, a partir do fluxo de bits, informações indicando que a diferença de vetor de movimento é correspondente ao primeiro valor de previsão de vetor de movimento ou indicando que a diferença de vetor de movimento é correspondente ao segundo valor de previsão de vetor de movimento.[0043] In an optional deployment, if the prediction mode is bidirectional prediction, the predicted motion information includes two motion vector prediction values: a first motion vector prediction value and a second motion vector prediction value of motion, and the third determination subunit is specifically configured to: if there are two motion vector differences, separately use the two motion vector differences as motion vector differences corresponding to the first motion vector prediction value and the second motion vector prediction value; or if there is a motion vector difference, use the motion vector difference as a motion vector difference corresponding to the first motion vector prediction value, and define a motion vector difference corresponding to the second prediction value of motion vector as 0; or use the motion vector difference as a motion vector difference corresponding to the second motion vector prediction value, and set a motion vector difference corresponding to the first motion vector prediction value to 0; or use the motion vector difference as a motion vector difference corresponding to each of the first motion vector prediction value and the second motion vector prediction value; or obtaining, from the bitstream, information indicating that the motion vector difference corresponds to the first motion vector prediction value or indicating that the motion vector difference corresponds to the second motion vector prediction value .

[0044] Em uma implantação opcional, uma quantidade de pedaços de informações de movimento previsto candidato na lista de informações de movimento previsto candidato é obtida de pelo menos uma dentre as informações de cabeçalho de camada de fatia, as informações de cabeçalho de camada de imagem, e as informações de camada de sequência de cabeçalho que são do fluxo de bits.[0044] In an optional deployment, a number of pieces of candidate predicted motion information in the candidate predicted motion information list is obtained from at least one of the slice layer header information, the image layer header information , and the header sequence layer information that is from the bitstream.

[0045] Em uma implantação opcional, a quantidade de pedaços de informações de movimento previsto candidato na lista de informações de movimento previsto candidato é menor do que uma quantidade de pedaços de informações de movimento em uma lista de informações de movimento em um modo de mesclagem.[0045] In an optional deployment, the amount of candidate predicted motion information pieces in the candidate predicted motion information list is less than a number of motion information pieces in a motion information list in a merge mode .

[0046] Em uma implantação opcional, o bloco de imagem atual é qualquer unidade de previsão de um bloco de imagem a ser reconstruído atual correspondente ao fluxo de bits.[0046] In an optional implementation, the current image block is any prediction unit of a current image block to be reconstructed corresponding to the bit stream.

[0047] Um quarto aspecto das modalidades da presente invenção revela um método de codificação de vídeo, incluindo: construir uma lista de informações de movimento previsto candidato de um bloco de imagem atual, onde informações de movimento previsto candidato incluídas na lista de informações de movimento previsto candidato são informações de movimento de um bloco adjacente do bloco de imagem atual no domínio de tempo ou no domínio espacial; selecionar, a partir da lista de informações de movimento previsto candidato, um pedaço de informações de movimento previsto candidato como informações de movimento previsto do bloco de imagem atual com base em um vetor de movimento que é do bloco de imagem atual e que é obtido durante estimativa de movimento, e determinar um índice das informações de movimento previsto candidato selecionadas na lista de informações de movimento previsto candidato, onde as informações de movimento previsto incluem informações de imagem de referência e um valor de previsão de vetor de movimento; determinar uma correspondência entre uma diferença de vetor de movimento e o valor de previsão de vetor de movimento com base nas informações de movimento previsto; obter, com base na correspondência e no vetor de movimento, uma diferença de vetor de movimento correspondente ao valor de previsão de vetor de movimento; e codificar o índice e a diferença de vetor de movimento em um fluxo de bits.[0047] A fourth aspect of embodiments of the present invention discloses a video encoding method including: constructing a candidate predicted motion information list from a current picture block, where candidate predicted motion information included in the motion information list predicted candidate is motion information of an adjacent block of the current image block in the time domain or in the spatial domain; select, from the list of candidate predicted motion information, a piece of candidate predicted motion information as predicted motion information of the current image block based on a motion vector that is from the current image block and that is obtained during motion estimation, and determining an index of the candidate predicted motion information selected from the candidate predicted motion information list, where the predicted motion information includes reference image information and a motion vector prediction value; determining a match between a motion vector difference and the motion vector prediction value based on the predicted motion information; obtaining, based on the match and the motion vector, a motion vector difference corresponding to the motion vector prediction value; and encode the motion vector index and difference into a bit stream.

[0048] Em uma implantação opcional, a determinação de uma correspondência entre uma diferença de vetor de movimento e o valor de previsão de vetor de movimento com base nas informações de movimento previsto inclui: determinar um modo de previsão do bloco de imagem atual com base nas informações de imagem de referência, onde o modo de previsão inclui previsão unidirecional ou previsão bidirecional; determinar uma quantidade de diferenças de vetor de movimento com base no modo de previsão; e determinar a correspondência entre a diferença de vetor de movimento e o valor de previsão de vetor de movimento com base na quantidade de diferenças de vetor de movimento e nas informações de movimento previsto.[0048] In an optional deployment, determining a match between a motion vector difference and the motion vector prediction value based on predicted motion information includes: determining a prediction mode of the current image block based on in the reference image information, where the prediction mode includes one-way prediction or two-way prediction; determine a quantity of motion vector differences based on the prediction mode; and determining the correspondence between the motion vector difference and the motion vector prediction value based on the amount of motion vector differences and the predicted motion information.

[0049] Em uma implantação opcional, a determinação de uma quantidade de diferenças de vetor de movimento com base no modo de previsão inclui: se o modo de previsão é a previsão unidirecional, determinar que há uma diferença de vetor de movimento; ou se o modo de previsão é a previsão bidirecional, e as informações da imagem de referência incluem uma contagem de ordem de figura de uma imagem de referência do bloco de imagem atual, determinar a quantidade de diferenças de vetor de movimento com base na contagem de ordem de figura da imagem de referência do bloco de imagem atual; ou se o modo de previsão é a previsão bidirecional, codificar uma quantidade predefinida de diferenças de vetor de movimento em pelo menos uma dentre informações de cabeçalho de camada de fatia, informações de cabeçalho de camada de imagem e informações de cabeçalho de camada de sequência que são do fluxo de bits.[0049] In an optional deployment, determining an amount of motion vector differences based on the prediction mode includes: if the prediction mode is unidirectional prediction, determining that there is a motion vector difference; or if the prediction mode is bidirectional prediction, and the reference image information includes a figure order count of a reference image of the current image block, determine the amount of motion vector differences based on the count of reference image picture order of the current image block; or if the prediction mode is bidirectional prediction, encode a predefined amount of motion vector differences into at least one of slice layer header information, image layer header information, and sequence layer header information that are from the bitstream.

[0050] Em uma implantação opcional, a determinação da quantidade de diferenças de vetor de movimento com base na contagem de ordem de figura da imagem de referência do bloco de imagem atual inclui: se uma contagem de ordem de figura de uma primeira imagem de referência do bloco de imagem atual é maior do que uma contagem de ordem de figura do bloco de imagem atual, e uma contagem de ordem de figura de uma segunda imagem de referência do bloco de imagem atual é menor que a contagem de ordem de figura do bloco de imagem atual, determinar que há duas diferenças de vetor de movimento; ou se uma contagem de ordem de figura de cada imagem de referência do bloco de imagem atual é maior que uma contagem de ordem de figura do bloco de imagem atual, ou uma contagem de ordem de figura de cada imagem de referência do bloco de imagem atual é menor que uma contagem de ordem de figura do bloco de imagem atual, determinar que há uma diferença de vetor de movimento.[0050] In an optional deployment, determining the amount of motion vector differences based on the figure order count of the reference image of the current image block includes: whether a figure order count of a first reference image of the current image block is greater than a figure order count of the current image block, and a figure order count of a second reference image of the current image block is less than the figure order count of the block from current image, determine that there are two motion vector differences; or if a figure order count of each reference picture of the current picture block is greater than a figure order count of the current picture block, or a figure order count of each reference picture of the current picture block is less than a figure order count of the current picture block, determine that there is a motion vector difference.

[0051] Em uma implantação opcional, se o modo de previsão é a previsão bidirecional, as informações de movimento previsto incluem dois valores de previsão de vetor de movimento: um primeiro valor de previsão de vetor de movimento e um segundo valor de previsão de vetor de movimento, e a determinação da correspondência entre a diferença de vetor de movimento e o valor de previsão de vetor de movimento com base na quantidade de diferenças de vetor de movimento e nas informações de movimento previsto inclui: se houver duas diferenças de vetor de movimento, usar separadamente as duas diferenças de vetor de movimento como diferenças de vetor de movimento correspondentes ao primeiro valor de previsão de vetor de movimento e ao segundo valor de previsão de vetor de movimento; ou se houver uma diferença de vetor de movimento, usar a diferença de vetor de movimento como uma diferença de vetor de movimento correspondente ao primeiro valor de previsão de vetor de movimento, e definir uma diferença de vetor de movimento correspondente ao segundo valor de previsão de vetor de movimento como 0; ou usar a diferença de vetor de movimento como uma diferença de vetor de movimento correspondente ao segundo valor de previsão de vetor de movimento, e definir uma diferença de vetor de movimento correspondente ao primeiro valor de previsão de vetor de movimento como 0; ou usar a diferença de vetor de movimento como uma diferença de vetor de movimento correspondente a cada um dentre o primeiro valor de previsão de vetor de movimento e o segundo valor de previsão de vetor de movimento; ou determinar, com base em uma correspondência predefinida, uma correspondência entre a diferença de vetor de movimento e cada um dentre o primeiro valor de previsão de vetor de movimento e o segundo valor de previsão de vetor de movimento, e codificar a correspondência predefinida no fluxo de bits.[0051] In an optional deployment, if the prediction mode is bidirectional prediction, the predicted motion information includes two motion vector prediction values: a first motion vector prediction value and a second motion vector prediction value of motion, and determining the match between the motion vector difference and the motion vector prediction value based on the amount of motion vector differences and the predicted motion information includes: if there are two motion vector differences , separately using the two motion vector differences as motion vector differences corresponding to the first motion vector prediction value and the second motion vector prediction value; or if there is a motion vector difference, use the motion vector difference as a motion vector difference corresponding to the first motion vector prediction value, and define a motion vector difference corresponding to the second prediction value of motion vector as 0; or use the motion vector difference as a motion vector difference corresponding to the second motion vector prediction value, and set a motion vector difference corresponding to the first motion vector prediction value to 0; or use the motion vector difference as a motion vector difference corresponding to each of the first motion vector prediction value and the second motion vector prediction value; or determine, based on a predefined correspondence, a correspondence between the motion vector difference and each of the first motion vector prediction value and the second motion vector prediction value, and encode the predefined correspondence into the stream of bits.

[0052] Em uma implantação opcional, o método inclui: codificar uma quantidade de pedaços de informações de movimento previsto candidato na lista de informações de movimento previsto candidato em pelo menos uma dentre as informações de cabeçalho de camada de fatia, as informações de cabeçalho de camada de imagem, e as informações de cabeçalho de camada de sequência que são do fluxo de bits.[0052] In an optional implementation, the method includes: encoding a number of pieces of candidate predicted motion information in the list of candidate predicted motion information into at least one of the slice layer header information, the slice header information, image layer, and the sequence layer header information that is from the bit stream.

[0053] Em uma implantação opcional, a quantidade de pedaços de informações de movimento previsto candidato na lista de informações de movimento previsto candidato é menor que uma quantidade de pedaços de informações de movimento em uma lista de informações de movimento em um modo de mesclagem.[0053] In an optional deployment, the amount of candidate predicted motion information pieces in the candidate predicted motion information list is less than a number of motion information pieces in a motion information list in a merge mode.

[0054] Em uma implantação opcional, o bloco de imagem atual é qualquer unidade de previsão de um bloco de imagem a ser codificado atual correspondente ao fluxo de bits.[0054] In an optional implementation, the current image block is any predictive unit of a current image block to be encoded corresponding to the bit stream.

[0055] Um quinto aspecto das modalidades da presente invenção revela um terminal de codificação de vídeo, e o terminal de codificação de vídeo inclui um processador e uma memória. O processador é configurado para desempenhar as seguintes operações: construir uma lista de informações de movimento previsto candidato de um bloco de imagem atual, onde as informações de movimento previsto candidato incluídas na lista de informações de movimento previsto candidato são informações de movimento de um bloco adjacente do bloco de imagem atual no domínio de tempo ou no domínio espacial; selecionar, a partir da lista de informações de movimento previsto candidato, um pedaço de informações de movimento previsto candidato como informações de movimento previsto do bloco de imagem atual com base em um vetor de movimento que é do bloco de imagem atual e que é obtido durante estimativa de movimento, e determinar um índice das informações de movimento previsto candidato selecionadas na lista de informações de movimento previsto candidato, onde as informações de movimento previsto incluem informações de imagem de referência e um valor de previsão de vetor de movimento; determinar uma correspondência entre uma diferença de vetor de movimento e o valor de previsão de vetor de movimento com base nas informações de movimento previsto; obter, com base na correspondência e no vetor de movimento, uma diferença de vetor de movimento correspondente ao valor de previsão de vetor de movimento; e codificar o índice e a diferença de vetor de movimento em um fluxo de bits.[0055] A fifth aspect of embodiments of the present invention discloses a video encoding terminal, and the video encoding terminal includes a processor and memory. The processor is configured to perform the following operations: construct a candidate predicted motion information list of a current image block, where the candidate predicted motion information included in the candidate predicted motion information list is motion information of an adjacent block of the current image block in the time domain or in the spatial domain; select, from the list of candidate predicted motion information, a piece of candidate predicted motion information as predicted motion information of the current image block based on a motion vector that is from the current image block and that is obtained during motion estimation, and determining an index of the candidate predicted motion information selected from the candidate predicted motion information list, where the predicted motion information includes reference image information and a motion vector prediction value; determining a match between a motion vector difference and the motion vector prediction value based on the predicted motion information; obtaining, based on the match and the motion vector, a motion vector difference corresponding to the motion vector prediction value; and encode the motion vector index and difference into a bit stream.

[0056] Em uma implantação opcional, o fato de que o processador determina uma correspondência entre uma diferença de vetor de movimento e o valor de previsão de vetor de movimento com base nas informações de movimento previsto inclui: determinar um modo de previsão do bloco de imagem atual com base nas informações de imagem de referência, onde o modo de previsão inclui previsão unidirecional ou previsão bidirecional; determinar uma quantidade de diferenças de vetor de movimento com base no modo de previsão; e determinar a correspondência entre a diferença de vetor de movimento e o valor de previsão de vetor de movimento com base na quantidade de diferenças de vetor de movimento e nas informações de movimento previsto.[0056] In an optional implementation, the fact that the processor determines a match between a motion vector difference and the motion vector prediction value based on predicted motion information includes: determining a motion block prediction mode current image based on reference image information, where the prediction mode includes one-way prediction or two-way prediction; determine a quantity of motion vector differences based on the prediction mode; and determining the correspondence between the motion vector difference and the motion vector prediction value based on the amount of motion vector differences and the predicted motion information.

[0057] Em uma implantação opcional, o fato de que o processador determina uma quantidade de diferenças de vetor de movimento com base no modo de previsão inclui: se o modo de previsão é a previsão unidirecional, determinar que há uma diferença de vetor de movimento; ou se o modo de previsão é a previsão bidirecional, e as informações de imagem de referência incluem uma contagem de ordem de figura de uma imagem de referência do bloco de imagem atual, determinar a quantidade de diferenças de vetor de movimento com base na contagem de ordem de figura da imagem de referência do bloco de imagem atual; ou se o modo de previsão é a previsão bidirecional, codificar uma quantidade predefinida de diferenças de vetor de movimento em pelo menos uma dentre informações de cabeçalho de camada de fatia, informações de cabeçalho de camada de imagem, e informações de cabeçalho de camada de sequência que são do fluxo de bits.[0057] In an optional implementation, the fact that the processor determines a number of motion vector differences based on the prediction mode includes: if the prediction mode is unidirectional prediction, determining that there is a motion vector difference ; or if the prediction mode is bidirectional prediction, and the reference image information includes a figure order count of a reference image of the current image block, determine the amount of motion vector differences based on the count of reference image picture order of the current image block; or if the prediction mode is bidirectional prediction, encode a predefined amount of motion vector differences into at least one of slice layer header information, image layer header information, and sequence layer header information which are from the bitstream.

[0058] Em uma implantação opcional, o fato de que o processador determina a quantidade de diferenças de vetor de movimento com base na contagem de ordem de figura da imagem de referência do bloco de imagem atual inclui: se uma contagem de ordem de figura de uma primeira imagem de referência do bloco de imagem atual é maior que uma contagem de ordem de figura do bloco de imagem atual, e uma contagem de ordem de figura de uma segunda imagem de referência do bloco de imagem atual é menor que a contagem de ordem de figura do bloco de imagem atual, determinar que há duas diferenças de vetor de movimento; ou se uma contagem de ordem de figura de cada imagem de referência do bloco de imagem atual é maior que uma contagem de ordem de figura do bloco de imagem atual, ou uma contagem de ordem de figura de cada imagem de referência do bloco de imagem atual é menor que uma contagem de ordem de figura do bloco de imagem atual, determinar que há uma diferença de vetor de movimento.[0058] In an optional implementation, the fact that the processor determines the amount of motion vector differences based on the current image block's figure order count of the reference image includes: whether a figure order count of a first picture reference of the current picture block is greater than a figure order count of the current picture block, and a picture order count of a second reference picture of the current picture block is less than the figure order count from the current image block figure, determine that there are two motion vector differences; or if a figure order count of each reference picture of the current picture block is greater than a figure order count of the current picture block, or a figure order count of each reference picture of the current picture block is less than a figure order count of the current picture block, determine that there is a motion vector difference.

[0059] Em uma implantação opcional, se o modo de previsão é a previsão bidirecional, as informações de movimento previsto incluem dois valores de previsão de vetor de movimento: um primeiro valor de previsão de vetor de movimento e um segundo valor de previsão de vetor de movimento, e o fato de que o processador determina a correspondência entre a diferença de vetor de movimento e o valor de previsão de vetor de movimento com base na quantidade de diferenças de vetor de movimento e nas informações de movimento previsto inclui: se houver duas diferenças de vetor de movimento, usar separadamente as duas diferenças de vetor de movimento como diferenças de vetor de movimento correspondentes ao primeiro valor de previsão de vetor de movimento e ao segundo valor de previsão de vetor de movimento; ou se houver uma diferença de vetor de movimento, usar a diferença de vetor de movimento como uma diferença de vetor de movimento correspondente ao primeiro valor de previsão de vetor de movimento, e definir uma diferença de vetor de movimento correspondente ao segundo valor de previsão de vetor de movimento como 0; ou usar a diferença de vetor de movimento como uma diferença de vetor de movimento correspondente ao segundo valor de previsão de vetor de movimento, e definir uma diferença de vetor de movimento correspondente ao primeiro valor de previsão de vetor de movimento como 0; ou usar a diferença de vetor de movimento como uma diferença de vetor de movimento correspondente a cada um dentre o primeiro valor de previsão de vetor de movimento e o segundo valor de previsão de vetor de movimento; ou determinar, com base em uma correspondência predefinida, uma correspondência entre a diferença de vetor de movimento e cada um dentre o primeiro valor de previsão de vetor de movimento e o segundo valor de previsão de vetor de movimento, e codificar a correspondência predefinida no fluxo de bits.[0059] In an optional deployment, if the prediction mode is bidirectional prediction, the predicted motion information includes two motion vector prediction values: a first motion vector prediction value and a second motion vector prediction value of motion, and the fact that the processor determines the correspondence between the motion vector difference and the predicted motion vector value based on the amount of motion vector differences and the predicted motion information includes: if there are two motion vector differences, separately use the two motion vector differences as motion vector differences corresponding to the first motion vector prediction value and the second motion vector prediction value; or if there is a motion vector difference, use the motion vector difference as a motion vector difference corresponding to the first motion vector prediction value, and define a motion vector difference corresponding to the second prediction value of motion vector as 0; or use the motion vector difference as a motion vector difference corresponding to the second motion vector prediction value, and set a motion vector difference corresponding to the first motion vector prediction value to 0; or use the motion vector difference as a motion vector difference corresponding to each of the first motion vector prediction value and the second motion vector prediction value; or determine, based on a predefined correspondence, a correspondence between the motion vector difference and each of the first motion vector prediction value and the second motion vector prediction value, and encode the predefined correspondence into the stream of bits.

[0060] Em uma implantação opcional, o método inclui: codificar uma quantidade de pedaços de informações de movimento previsto candidato na lista de informações de movimento previsto candidato em pelo menos uma dentre as informações de cabeçalho de camada de fatia, as informações de cabeçalho de camada de imagem, e as informações de cabeçalho de camada de sequência que são do fluxo de bits.[0060] In an optional implementation, the method includes: encoding a number of pieces of candidate predicted motion information in the list of candidate predicted motion information into at least one of the slice layer header information, the slice header information, image layer, and the sequence layer header information that is from the bitstream.

[0061] Em uma implantação opcional, a quantidade de pedaços de informações de movimento previsto candidato na lista de informações de movimento previsto candidato é menor do que uma quantidade de pedaços de informações de movimento em uma lista de informações de movimento em um modo de mesclagem.[0061] In an optional deployment, the amount of candidate predicted motion information pieces in the candidate predicted motion information list is less than a number of motion information pieces in a motion information list in a merge mode .

[0062] Em uma implantação opcional, o bloco de imagem atual é qualquer unidade de previsão de um bloco de imagem a ser codificado atual correspondente ao fluxo de bits.[0062] In an optional implementation, the current image block is any predictive unit of a current image block to be encoded corresponding to the bit stream.

[0063] Um sexto aspecto das modalidades da presente invenção revela um terminal de codificação de vídeo, incluindo: uma unidade de construção de lista, configurada para construir uma lista de informações de movimento previsto candidato de um bloco de imagem atual, onde informações de movimento previsto candidato incluídas no lista de informações de movimento previsto candidato são informações de movimento de um bloco adjacente do bloco de imagem atual no domínio de tempo ou no domínio espacial; uma unidade de seleção, configurada para selecionar, a partir da lista de informações de movimento previsto candidato, um pedaço de informações de movimento previsto candidato como informações de movimento previsto do bloco de imagem atual com base em um vetor de movimento que é do bloco de imagem atual e que é obtido durante a estimativa de movimento, onde as informações de movimento previsto incluem informações de imagem de referência e um valor de previsão de vetor de movimento; uma primeira unidade de determinação, configurada para determinar um índice das informações de movimento previsto candidato selecionadas na lista de informações de movimento previsto candidato; uma segunda unidade de determinação, configurada para determinar uma correspondência entre uma diferença de vetor de movimento e o valor de previsão de vetor de movimento com base nas informações de movimento previsto; uma unidade de obtenção, configurada para obter, com base na correspondência e no vetor de movimento, uma diferença de vetor de movimento correspondente ao valor de previsão de vetor de movimento; e uma primeira unidade de codificação, configurada para codificar o índice e a diferença de vetor de movimento em um fluxo de bits.[0063] A sixth aspect of embodiments of the present invention discloses a video encoding terminal including: a list building unit, configured to build a list of candidate predicted motion information from a current picture block, where motion information candidate predicted included in the candidate predicted motion information list is motion information of an adjacent block of the current image block in the time domain or in the spatial domain; a selection unit, configured to select, from the list of candidate predicted motion information, a piece of candidate predicted motion information as predicted motion information of the current picture block based on a motion vector that is from the current image that is obtained during motion estimation, where the predicted motion information includes reference image information and a motion vector prediction value; a first determining unit configured to determine an index of the candidate forecasted movement information selected from the candidate forecasted movement information list; a second determining unit configured to determine a match between a motion vector difference and the motion vector prediction value based on the predicted motion information; an acquisition unit configured to obtain, based on the match and the motion vector, a motion vector difference corresponding to the motion vector prediction value; and a first encoding unit configured to encode the motion vector index and difference into a bit stream.

[0064] Em uma implantação opcional, a segunda unidade de determinação inclui: uma primeira subunidade de determinação, configurada para determinar um modo de previsão do bloco de imagem atual com base nas informações de imagem de referência, onde o modo de previsão inclui previsão unidirecional ou previsão bidirecional; uma segunda subunidade de determinação, configurada para determinar uma quantidade de diferenças de vetor de movimento com base no modo de previsão; e uma terceira subunidade de determinação, configurada para determinar a correspondência entre a diferença de vetor de movimento e o valor de previsão de vetor de movimento com base na quantidade de diferenças de vetor de movimento e nas informações de movimento previsto.[0064] In an optional deployment, the second determination unit includes: a first determination subunit, configured to determine a prediction mode of the current image block based on reference image information, where the prediction mode includes unidirectional prediction or bidirectional prediction; a second determination sub-unit configured to determine a quantity of motion vector differences based on the prediction mode; and a third determination sub-unit configured to determine the correspondence between the motion vector difference and the motion vector prediction value based on the amount of motion vector differences and the predicted motion information.

[0065] Em uma implantação opcional, a segunda subunidade de determinação é especificamente configurada para: se o modo de previsão é a previsão unidirecional, determinar que há uma diferença de vetor de movimento; ou se o modo de previsão é a previsão bidirecional, e as informações de imagem de referência incluem uma contagem de ordem de figura de uma imagem de referência do bloco de imagem atual, determinar a quantidade de diferenças de vetor de movimento com base na contagem de ordem de figura da imagem de referência do bloco de imagem atual; ou se o modo de previsão é a previsão bidirecional, codificar uma quantidade predefinida de diferenças de vetor de movimento em pelo menos uma dentre as informações de cabeçalho da camada de fatia, informações de cabeçalho de camada de imagem, e informações de cabeçalho da camada de sequência que são do fluxo de bits.[0065] In an optional deployment, the second determination subunit is specifically configured to: if the prediction mode is unidirectional prediction, determine that there is a motion vector difference; or if the prediction mode is bidirectional prediction, and the reference image information includes a figure order count of a reference image of the current image block, determine the amount of motion vector differences based on the count of reference image picture order of the current image block; or if the prediction mode is bidirectional prediction, encode a predefined amount of motion vector differences into at least one of the slice layer header information, image layer header information, and image layer header information. sequence that are from the bitstream.

[0066] Em uma implantação opcional, quando se determina a quantidade de diferenças de vetor de movimento com base na contagem de ordem de figura da imagem de referência do bloco de imagem atual, a segunda subunidade de determinação é configurada especificamente para: se uma contagem de ordem de figura de uma primeira imagem de referência do bloco de imagem atual é maior que a contagem de ordem de figura do bloco de imagem atual, e uma contagem de ordem de figura de uma segunda imagem de referência do bloco de imagem atual é menor que a contagem de ordem de figura do bloco de imagem atual, determinar que há duas diferenças de vetor de movimento; ou se uma contagem de ordem de figura de cada imagem de referência do bloco de imagem atual é maior que uma contagem de ordem de figura do bloco de imagem atual, ou uma contagem de ordem de figura de cada imagem de referência do bloco de imagem atual é menor que uma contagem de ordem de figura do bloco de imagem atual, determinar que há uma diferença de vetor de movimento.[0066] In an optional deployment, when determining the amount of motion vector differences based on the figure order count of the reference image of the current image block, the second determination subunit is configured specifically for: if a count figure order count of a first reference picture of the current picture block is greater than the figure order count of the current picture block, and a figure order count of a second reference picture of the current picture block is less that the figure order count of the current picture block, determine that there are two motion vector differences; or if a figure order count of each reference picture of the current picture block is greater than a figure order count of the current picture block, or a figure order count of each reference picture of the current picture block is less than a figure order count of the current picture block, determine that there is a motion vector difference.

[0067] Em uma implantação opcional, se o modo de previsão é a previsão bidirecional, as informações de movimento previsto incluem dois valores de previsão de vetor de movimento: um primeiro valor de previsão de vetor de movimento e um segundo valor de previsão de vetor de movimento, e a terceira subunidade de determinação é configurada especificamente para: se houver duas diferenças de vetor de movimento, usar separadamente as duas diferenças de vetor de movimento como diferenças de vetor de movimento correspondentes ao primeiro valor de previsão de vetor de movimento e ao segundo valor de previsão de vetor de movimento; ou se houver uma diferença de vetor de movimento, usar a diferença de vetor de movimento como uma diferença de vetor de movimento correspondente ao primeiro valor de previsão de vetor de movimento, e definir uma diferença de vetor de movimento correspondente ao segundo valor de previsão de vetor de movimento como 0; ou usar a diferença de vetor de movimento como uma diferença de vetor de movimento correspondente ao segundo valor de previsão de vetor de movimento, e definir uma diferença de vetor de movimento correspondente ao primeiro valor de previsão de vetor de movimento como 0; ou usar a diferença de vetor de movimento como uma diferença de vetor de movimento correspondente a cada um dentre o primeiro valor de previsão de vetor de movimento e o segundo valor de previsão de vetor de movimento; ou determinar, com base em uma correspondência predefinida, uma correspondência entre a diferença de vetor de movimento e cada um dentre o primeiro valor de previsão de vetor de movimento e o segundo valor de previsão de vetor de movimento, e codificar a correspondência predefinida no fluxo de bits.[0067] In an optional deployment, if the prediction mode is bidirectional prediction, the predicted motion information includes two motion vector prediction values: a first motion vector prediction value and a second motion vector prediction value of motion, and the third determination subunit is specifically configured to: if there are two motion vector differences, separately use the two motion vector differences as motion vector differences corresponding to the first motion vector prediction value and the second motion vector prediction value; or if there is a motion vector difference, use the motion vector difference as a motion vector difference corresponding to the first motion vector prediction value, and define a motion vector difference corresponding to the second prediction value of motion vector as 0; or use the motion vector difference as a motion vector difference corresponding to the second motion vector prediction value, and set a motion vector difference corresponding to the first motion vector prediction value to 0; or use the motion vector difference as a motion vector difference corresponding to each of the first motion vector prediction value and the second motion vector prediction value; or determine, based on a predefined correspondence, a correspondence between the motion vector difference and each of the first motion vector prediction value and the second motion vector prediction value, and encode the predefined correspondence into the stream of bits.

[0068] Em uma implantação opcional, o terminal inclui adicionalmente uma segunda unidade de codificação, configurada para codificar uma quantidade de pedaços de informações de movimento previsto candidato na lista de informações de movimento previsto candidato em pelo menos uma dentre as informações de cabeçalho de camada de fatia, as informações de cabeçalho de camada de imagem, e as informações de cabeçalho de camada de sequência que são do fluxo de bits.[0068] In an optional implementation, the terminal further includes a second encoding unit configured to encode a number of pieces of candidate predicted motion information in the candidate predicted motion information list into at least one of the layer header information slice, the image layer header information, and the sequence layer header information that is from the bit stream.

[0069] Em uma implantação opcional, a quantidade de pedaços de informações de movimento previsto candidato na lista de informações de movimento previsto candidato é menor que uma quantidade de pedaços de informações de movimento em uma lista de informações de movimento em um modo de mesclagem.[0069] In an optional deployment, the amount of candidate predicted motion information pieces in the candidate predicted motion information list is less than a number of motion information pieces in a motion information list in a merge mode.

[0070] Em uma implantação opcional, o bloco de imagem atual é qualquer unidade de previsão de um bloco de imagem a ser codificado atual correspondente ao fluxo de bits.[0070] In an optional implementation, the current image block is any predictive unit of a current image block to be encoded corresponding to the bit stream.

[0071] Um sétimo aspecto das modalidades da presente invenção revela uma mídia de armazenamento de computador, configurada para armazenar instruções de software de computador usadas no primeiro aspecto e no quarto aspecto, onde a instrução de software de computador inclui um programa projetado para executar os aspectos supracitados.[0071] A seventh aspect of embodiments of the present invention discloses a computer storage medium configured to store computer software instructions used in the first aspect and fourth aspect, where the computer software instruction includes a program designed to execute the aforementioned aspects.

[0072] Deve ser entendido que as soluções técnicas no segundo aspecto ao sétimo aspecto das modalidades da presente invenção são consistentes com as soluções técnicas no primeiro aspecto das modalidades da presente invenção, e efeitos benéficos obtidos são similares. Detalhes não são descritos novamente no presente pedido.[0072] It should be understood that the technical solutions in the second aspect to the seventh aspect of the embodiments of the present invention are consistent with the technical solutions in the first aspect of the embodiments of the present invention, and beneficial effects obtained are similar. Details are not described again in this application.

[0073] Pode-se aprender com as soluções técnicas supracitadas que as modalidades da presente invenção têm as seguintes vantagens: nas modalidades da presente invenção, informações de imagem de referência de um bloco adjacente são obtidas e são usadas como as informações de referência da imagem do bloco de imagem atual. Para um vetor de movimento, um vetor de movimento de um bloco adjacente é usado para prever o vetor de movimento do bloco de imagem atual, e a diferença de vetor de movimento é transferida para corrigir o valor de previsão de vetor de movimento, para alcançar uma precisão relativamente alta do vetor de movimento. Além disso, a diferença de vetor de movimento é determinada mais eficazmente com base na correspondência entre a diferença de vetor de movimento e o valor de previsão de vetor de movimento, economizando assim bits de transmissão. Pode-se aprender que implantar as modalidades da presente invenção pode reduzir as informações que precisam ser transferidas em um caso de mesma qualidade de vídeo, economizando assim bits de transmissão específicos.[0073] It can be learned from the above technical solutions that the embodiments of the present invention have the following advantages: in the embodiments of the present invention, reference image information of an adjacent block is obtained and is used as the image reference information of the current image block. For a motion vector, a motion vector of an adjacent block is used to predict the motion vector of the current picture block, and the motion vector difference is transferred to correct the motion vector prediction value, to achieve a relatively high accuracy of the motion vector. Furthermore, the motion vector difference is determined more efficiently based on the correspondence between the motion vector difference and the motion vector prediction value, thus saving transmission bits. It can be learned that implementing the embodiments of the present invention can reduce the information that needs to be transferred in a case of the same video quality, thus saving specific transmission bits.

BREVE DESCRIÇÃO DOS DESENHOSBRIEF DESCRIPTION OF THE DRAWINGS

[0074] Para descrever as soluções técnicas nas modalidades da presente invenção mais claramente, a seguir se descreve brevemente os desenhos anexos exigidos para descrever as modalidades. Evidentemente, os desenhos anexos na descrição seguinte mostram apenas algumas modalidades da presente invenção, e pessoas de habilidade comum na técnica podem derivar outros desenhos destes desenhos anexos sem esforços criativos.[0074] To describe the technical solutions in the embodiments of the present invention more clearly, the following briefly describes the accompanying drawings required to describe the embodiments. Of course, the accompanying drawings in the following description only show some embodiments of the present invention, and people of ordinary skill in the art can derive other drawings from these accompanying drawings without creative efforts.

[0075] A Figura 1 é um fluxograma esquemático de um método de decodificação de vídeo revelado em uma modalidade da presente invenção;[0075] Figure 1 is a schematic flowchart of a video decoding method disclosed in an embodiment of the present invention;

[0076] A Figura 2 é um diagrama estrutural esquemático de um terminal de decodificação de vídeo revelado em uma modalidade da presente invenção;[0076] Figure 2 is a schematic structural diagram of a video decoding terminal disclosed in an embodiment of the present invention;

[0077] A Figura 3 é um diagrama estrutural esquemático de outro terminal de decodificação de vídeo revelado em uma modalidade da presente invenção;[0077] Figure 3 is a schematic structural diagram of another video decoding terminal disclosed in an embodiment of the present invention;

[0078] A Figura 4 é um fluxograma esquemático de um método de codificação de vídeo revelado em uma modalidade da presente invenção;[0078] Figure 4 is a schematic flowchart of a video encoding method disclosed in an embodiment of the present invention;

[0079] A Figura 5 é um diagrama estrutural esquemático de um terminal de codificação de vídeo revelado em uma modalidade da presente invenção;[0079] Figure 5 is a schematic structural diagram of a video encoding terminal disclosed in an embodiment of the present invention;

[0080] A Figura 6 é um diagrama estrutural esquemático de outro terminal de codificação de vídeo revelado em uma modalidade da presente invenção;[0080] Figure 6 is a schematic structural diagram of another video encoding terminal disclosed in an embodiment of the present invention;

[0081] A Figura 7 é um diagrama estrutural esquemático de um aparelho de codificação/decodificação de vídeo ou de um dispositivo eletrônico revelado em uma modalidade da presente invenção; e[0081] Figure 7 is a schematic structural diagram of a video encoding/decoding apparatus or electronic device disclosed in an embodiment of the present invention; It is

[0082] A Figura 8 é um diagrama estrutural esquemático de um sistema de codificação/decodificação de vídeo revelado em uma modalidade da presente invenção.[0082] Figure 8 is a schematic structural diagram of a video encoding/decoding system disclosed in an embodiment of the present invention.

DESCRIÇÃO DE MODALIDADESDESCRIPTION OF MODALITIES

[0083] Para tornar os objetivos, soluções técnicas, e vantagens da presente invenção mais claros, a seguir se descreve adicionalmente a presente invenção em detalhe com referência aos desenhos em anexo. Evidentemente, as modalidades descritas são apenas algumas e não todas as modalidades da presente invenção. Todas as outras modalidades obtidas por pessoas de habilidade comum na técnica, com base nas modalidades da presente invenção, sem esforços criativos, deverão estar abrangidas pelo escopo de proteção da presente invenção.[0083] To make the objects, technical solutions, and advantages of the present invention clearer, the present invention is further described in the following with reference to the attached drawings. Evidently, the described embodiments are only some and not all the embodiments of the present invention. All other embodiments obtained by people of common skill in the art, based on the embodiments of the present invention, without creative efforts, shall fall within the scope of protection of the present invention.

[0084] No relatório descritivo, reivindicações, e desenhos anexos da presente invenção, os termos "primeiro (a)", "segundo (a)" e semelhantes são destinados a distinguir entre objetos diferentes, mas não indicam uma ordem particular. Além disso, os termos "incluir" e "ter" e quaisquer outras variantes dos mesmos destinam-se a cobrir uma inclusão não exclusiva. Por exemplo, um processo, um método, um sistema, um produto, ou um dispositivo que inclua uma série de etapas ou unidades não está limitado às etapas ou unidades listadas, mas opcionalmente inclui adicionalmente uma etapa ou unidade não listada ou, opcionalmente, inclui adicionalmente outra etapa ou unidade inerente ao processo, ao método, ou ao dispositivo.[0084] In the specification, claims, and accompanying drawings of the present invention, the terms "first (a)", "second (a)" and the like are intended to distinguish between different objects, but do not indicate a particular order. Furthermore, the terms "include" and "have" and any other variants thereof are intended to cover non-exclusive inclusion. For example, a process, method, system, product, or device that includes a series of steps or units is not limited to the listed steps or units, but optionally additionally includes an unlisted step or unit, or optionally includes additionally another step or unit inherent in the process, method, or device.

[0085] As modalidades da presente invenção fornecem um método de codificação de vídeo, um método de decodificação de vídeo, e um terminal, para reduzir as informações que precisam ser transferidas em um caso de mesma qualidade de vídeo, economizando assim bits de transmissão específicos. Detalhes são descritos separadamente abaixo.[0085] Embodiments of the present invention provide a video encoding method, a video decoding method, and a terminal, to reduce the information that needs to be transferred in a case of the same video quality, thus saving specific transmission bits . Details are described separately below.

[0086] A Figura 1 é um fluxograma esquemático de um método de decodificação de vídeo revelado em uma modalidade da presente invenção. O método de decodificação de vídeo mostrado na Figura 1 pode incluir as seguintes etapas.[0086] Figure 1 is a schematic flowchart of a video decoding method disclosed in an embodiment of the present invention. The video decoding method shown in Figure 1 might include the following steps.

[0087] 101. Obter, a partir de um fluxo de bits, um índice de informações de movimento previsto de um bloco de imagem atual em uma lista de informações de movimento previsto candidato.[0087] 101. Obtaining, from a bit stream, an index of predicted motion information of a current picture block into a candidate predicted motion information list.

[0088] Nesta modalidade da presente invenção, as informações de movimento previsto incluem informações de imagem de referência e um valor de previsão de vetor de movimento, e informações de movimento previsto candidato na lista de informações de movimento previsto candidato são informações de movimento de um bloco adjacente do bloco de imagem atual no domínio de tempo ou no domínio espacial.[0088] In this embodiment of the present invention, predicted motion information includes reference image information and a motion vector prediction value, and candidate predicted motion information in the candidate predicted motion information list is motion information of a adjacent block of the current image block in the time domain or in the spatial domain.

[0089] Nesta modalidade da presente invenção, o bloco de imagem atual pode ser qualquer unidade de previsão de um bloco de imagem a ser reconstruído atual correspondente ao fluxo de bits. Em algumas modalidades da presente invenção, o bloco de imagem atual pode alternativamente ser qualquer unidade de transformação ou unidade de decodificação do bloco de imagem a ser reconstruído atual correspondente ao fluxo de bits. Não há uma limitação quanto a isso.[0089] In this embodiment of the present invention, the current image block can be any prediction unit of a current image block to be reconstructed corresponding to the bit stream. In some embodiments of the present invention, the current picture block may alternatively be any transformation unit or decoding unit of the current picture block to be reconstructed corresponding to the bit stream. There is no limitation on this.

[0090] Uma quantidade de pedaços de informações de movimento previsto candidato na lista de informações de movimento previsto candidato pode ser obtida pelo menos a partir de uma dentre informações de cabeçalho de camada de fatia, informações de cabeçalho de camada de imagem, e informações de cabeçalho de camada de sequência que são do fluxo de bits.[0090] A number of pieces of candidate predicted motion information in the candidate predicted motion information list can be obtained from at least one of slice layer header information, image layer header information, and image layer header information. sequence layer header that are from the bit stream.

[0091] Além disso, a quantidade de pedaços de informações de movimento previsto candidato na lista de informações de movimento previsto candidato é menor do que uma quantidade de pedaços de informações de movimento em uma lista de informações de movimento em um modo de mesclagem. O modo de mesclagem é um método de interprevisão no padrão de Codificação de Vídeo de Alta Eficiência (High Efficiency Video Coding, HEVC). No modo de mesclagem, um pedaço de informações de movimento de um bloco adjacente do bloco de imagem atual é diretamente selecionado da lista de informações de movimento para especificar informações de movimento do bloco de imagem atual, e há uma quantidade relativamente grande de informações de movimento na lista de informações de movimento. No entanto, nesta modalidade da presente invenção, a quantidade de pedaços de informações de movimento previsto candidato na lista de informações de movimento previsto candidato é menor do que a quantidade de pedaços de informações de movimento na lista de informações de movimento no modo de mesclagem, de modo a reduzir a complexidade de cálculo.[0091] In addition, the amount of candidate predicted movement information pieces in the candidate predicted movement information list is less than a quantity of movement information pieces in a movement information list in a merge mode. Blending mode is an interprediction method in the High Efficiency Video Coding (HEVC) standard. In merge mode, a piece of motion information from an adjacent block of the current picture block is directly selected from the motion information list to specify motion information of the current picture block, and there is a relatively large amount of motion information in the movement information list. However, in this embodiment of the present invention, the amount of candidate predicted motion information pieces in the candidate predicted motion information list is less than the amount of motion information pieces in the motion information list in the merge mode, in order to reduce the calculation complexity.

[0092] 102. Consultar a lista de informações de movimento previsto candidato com base no índice, e usar informações de movimento previsto candidato encontradas como as informações de movimento previsto.[0092] 102. Query the candidate forecasted movement information list based on the index, and use the found candidate forecasted movement information as the forecasted movement information.

[0093] Normalmente, há uma alta probabilidade de que as informações de imagem de referência de blocos de imagem adjacentes sejam completamente as mesmas, enquanto os vetores de movimento dos blocos de imagem adjacentes são normalmente ligeiramente diferentes. Portanto, nesta modalidade da presente invenção, as informações de movimento previsto candidato encontradas são usadas como as informações de movimento previsto, e também é obtida uma diferença de vetor de movimento para corrigir o valor de previsão de vetor de movimento incluído nas informações de movimento previsto, para obter um vetor de movimento relativamente preciso do bloco de imagem atual.[0093] Normally, there is a high probability that the reference image information of adjacent image blocks is completely the same, while the motion vectors of adjacent image blocks are normally slightly different. Therefore, in this embodiment of the present invention, the found candidate predicted motion information is used as the predicted motion information, and a motion vector difference is also obtained to correct the motion vector prediction value included in the predicted motion information. , to get a relatively accurate motion vector of the current image block.

[0094] 103. Determinar uma correspondência entre uma diferença de vetor de movimento e um valor de previsão de vetor de movimento com base nas informações de movimento previsto, e obter a diferença de vetor de movimento a partir do fluxo de bits.[0094] 103. Determine a match between a motion vector difference and a motion vector prediction value based on the predicted motion information, and obtain the motion vector difference from the bit stream.

[0095] Em uma implantação opcional, a correspondência entre a diferença de vetor de movimento e o valor de previsão de vetor de movimento pode ser determinada com base nas informações de movimento previsto da seguinte maneira: determinar um modo de previsão do bloco de imagem atual com base nas informações de imagem de referência, onde o modo de previsão inclui previsão unidirecional ou previsão bidirecional; determinar uma quantidade de diferenças de vetor de movimento com base no modo de previsão; e determinar a correspondência entre a diferença de vetor de movimento e o valor de previsão de vetor de movimento com base na quantidade de diferenças de vetor de movimento e nas informações de movimento previsto.[0095] In an optional deployment, the correspondence between the motion vector difference and the motion vector prediction value can be determined based on the predicted motion information as follows: determine a prediction mode of the current image block based on reference image information, where the prediction mode includes one-way prediction or two-way prediction; determine a quantity of motion vector differences based on the prediction mode; and determining the correspondence between the motion vector difference and the motion vector prediction value based on the amount of motion vector differences and the predicted motion information.

[0096] Na implantação da determinação da correspondência entre a diferença de vetor de movimento e o valor de previsão de vetor de movimento, a etapa de determinar uma quantidade de diferenças de vetor de movimento com base no modo de previsão pode ser implantada da seguinte maneira: se o modo de previsão é a previsão unidirecional, determinar que há uma diferença de vetor de movimento; ou se o modo de previsão é a previsão bidirecional, e as informações de imagem de referência incluem uma contagem de ordem de figura de uma imagem de referência, determinar a quantidade de diferenças de vetor de movimento com base na contagem de ordem de figura da imagem de referência do bloco de imagem atual; ou se uma contagem de ordem de figura de uma primeira imagem de referência do bloco de imagem atual é maior que uma contagem de ordem de figura do bloco de imagem atual, e uma contagem de ordem de figura de uma segunda imagem de referência do bloco de imagem atual é menor que a contagem de ordem de figura do bloco de imagem atual, determinar que há duas diferenças de vetor de movimento; ou se uma contagem de ordem de figura de cada imagem de referência do bloco de imagem atual é maior que uma contagem de ordem de figura do bloco de imagem atual, ou uma contagem de ordem de figura de cada imagem de referência do bloco de imagem atual é menor que uma contagem de ordem de figura do bloco de imagem atual, determinar que há uma diferença de vetor de movimento; ou se o modo de previsão é a previsão bidirecional, obter a quantidade de diferenças de vetor de movimento de pelo menos um dentre o fluxo de bits do bloco de imagem atual, e informações de cabeçalho de camada de fatia, informações de cabeçalho de camada de imagem, e informações de cabeçalho de camada de sequência que são do fluxo de bits.[0096] In the implementation of determining the correspondence between the motion vector difference and the motion vector prediction value, the step of determining a quantity of motion vector differences based on the prediction mode can be implemented as follows : if the prediction mode is unidirectional prediction, determine that there is a motion vector difference; or if the prediction mode is bidirectional prediction, and the reference image information includes a figure order count of a reference image, determine the amount of motion vector differences based on the image order count current image block reference; or if a figure order count of a first reference picture of the current picture block is greater than a figure order count of the current picture block, and a figure order count of a second reference picture of the current image is less than the figure order count of the current image block, determine that there are two motion vector differences; or if a figure order count of each reference picture of the current picture block is greater than a figure order count of the current picture block, or a figure order count of each reference picture of the current picture block is less than a figure order count of the current picture block, determine that there is a motion vector difference; or if the prediction mode is bidirectional prediction, get the amount of motion vector differences of at least one of the current image block bitstream, and slice layer header information, layer header information image, and sequence layer header information that is from the bit stream.

[0097] Depois que a quantidade de diferenças de vetor de movimento é obtida, a correspondência entre a diferença de vetor de movimento e o valor de previsão de vetor de movimento pode ser determinada da seguinte maneira: se o modo de previsão é a previsão bidirecional, as informações de movimento previsto incluem dois valores de previsão de vetor de movimento: um primeiro valor de previsão de vetor de movimento e um segundo valor de previsão de vetor de movimento e se houver duas diferenças de vetor de movimento, usar separadamente as duas diferenças de vetor de movimento como diferenças de vetor de movimento correspondentes ao primeiro valor de previsão de vetor de movimento e ao segundo valor de previsão de vetor de movimento; ou se houver uma diferença de vetor de movimento, usar a diferença de vetor de movimento como uma diferença de vetor de movimento correspondente ao primeiro valor de previsão de vetor de movimento, e definir uma diferença de vetor de movimento correspondente ao segundo valor de previsão de vetor de movimento como 0; ou usar a diferença de vetor de movimento como uma diferença de vetor de movimento correspondente ao segundo valor de previsão de vetor de movimento, e definir uma diferença de vetor de movimento correspondente ao primeiro valor de previsão de vetor de movimento como 0; ou usar a diferença de vetor de movimento como uma diferença de vetor de movimento correspondente a cada um dentre o primeiro valor de previsão de vetor de movimento e o segundo valor de previsão de vetor de movimento; ou obter, a partir do fluxo de bits, informações indicando que a diferença de vetor de movimento é correspondente ao primeiro valor de previsão de vetor de movimento ou indicando que a diferença de vetor de movimento é correspondente ao segundo valor de previsão de vetor de movimento, e determinar uma correspondência entre a diferença de vetor de movimento e o valor de previsão de vetor de movimento com base nas informações obtidas.[0097] After the amount of motion vector differences is obtained, the correspondence between the motion vector difference and the motion vector prediction value can be determined as follows: if the prediction mode is bidirectional prediction , the predicted motion information includes two motion vector prediction values: a first motion vector prediction value and a second motion vector prediction value, and if there are two motion vector differences, use the two differences separately of motion vector as motion vector differences corresponding to the first motion vector prediction value and the second motion vector prediction value; or if there is a motion vector difference, use the motion vector difference as a motion vector difference corresponding to the first motion vector prediction value, and define a motion vector difference corresponding to the second prediction value of motion vector as 0; or use the motion vector difference as a motion vector difference corresponding to the second motion vector prediction value, and set a motion vector difference corresponding to the first motion vector prediction value to 0; or use the motion vector difference as a motion vector difference corresponding to each of the first motion vector prediction value and the second motion vector prediction value; or obtain, from the bitstream, information indicating that the motion vector difference corresponds to the first motion vector prediction value or indicating that the motion vector difference corresponds to the second motion vector prediction value , and determining a correspondence between the motion vector difference and the motion vector prediction value based on the obtained information.

[0098] Deve ser notado que, em uma implantação viável, a diferença de vetor de movimento é usada como a diferença de vetor de movimento correspondente a cada um dentre o primeiro valor de previsão de vetor de movimento e o segundo valor de previsão de vetor de movimento. Em outras palavras, a diferença de vetor de movimento é usada novamente. Isso economiza o consumo de codificar a diferença de vetor de movimento e aperfeiçoa a eficiência.[0098] It should be noted that in a feasible deployment, the motion vector difference is used as the motion vector difference corresponding to each of the first motion vector prediction value and the second motion vector prediction value of movement. In other words, the motion vector difference is used again. This saves the consumption of coding the motion vector difference and improves the efficiency.

[0099] 104. Adicionar o valor de previsão de vetor de movimento e a diferença de vetor de movimento correspondente com base na correspondência para obter um vetor de movimento do bloco de imagem atual.[0099] 104. Add the motion vector prediction value and the corresponding motion vector difference based on the match to get a motion vector of the current image block.

[0100] Nesta modalidade da presente invenção, o valor de previsão de vetor de movimento e a diferença de vetor de movimento correspondente são adicionados, de modo que um deslocamento do valor de previsão de vetor de movimento possa ser corrigido, e o vetor de movimento do bloco de imagem atual possa ser restaurado com relativa precisão.[0100] In this embodiment of the present invention, the motion vector prediction value and the corresponding motion vector difference are added, so that an offset of the motion vector prediction value can be corrected, and the motion vector of the current image block can be restored with relative accuracy.

[0101] Pode-se aprender que, de acordo com o método de decodificação de vídeo descrito na Figura 1, o vetor de movimento do bloco de imagem atual pode ser restaurado com relativa precisão e, portanto, um vídeo emitido tem qualidade relativamente alta em um caso de uma mesma taxa de bits.[0101] It can be learned that, according to the video decoding method described in Figure 1, the motion vector of the current image block can be restored with relative accuracy, and therefore, an output video has relatively high quality in a case of the same bitrate.

[0102] A Figura 2 é um diagrama estrutural esquemático de um terminal de decodificação de vídeo revelado em uma modalidade da presente invenção. Como mostrado na Figura 2, o terminal inclui um processador 201 e uma memória 202. A memória 202 pode ser configurada para armazenar cache exigido pelo processador 201 para desempenhar processamento de dados e pode ser configurada adicionalmente para fornecer dados invocados pelo processador 201 para desempenhar processamento de dados e fornecer espaço de armazenamento para dados de resultado obtidos.[0102] Figure 2 is a schematic structural diagram of a video decoding terminal disclosed in an embodiment of the present invention. As shown in Figure 2, the terminal includes a processor 201 and memory 202. Memory 202 can be configured to store cache required by processor 201 to perform data processing and can be further configured to provide data invoked by processor 201 to perform data processing. of data and provide storage space for obtained result data.

[0103] Nesta modalidade da presente invenção, o processador 201 é configurado para desempenhar as seguintes operações invocando o código de programa armazenado na memória 202: obter, a partir de um fluxo de bits, um índice de informações de movimento previsto de um bloco de imagem atual em uma lista de informações de movimento previsto candidato, onde as informações de movimento previsto incluem informações de imagem de referência e um valor de previsão de vetor de movimento, e informações de movimento previsto candidato na lista de informações de movimento previsto candidato são informações de movimento de um bloco adjacente do bloco de imagem atual no domínio de tempo ou no domínio espacial; consultar a lista de informações de movimento previsto candidato com base no índice, e usar as informações de movimento previsto candidato encontradas como as informações de movimento previsto; determinar uma correspondência entre uma diferença de vetor de movimento e o valor de previsão de vetor de movimento com base nas informações de movimento previsto, e obter a diferença de vetor de movimento a partir do fluxo de bits; e adicionar o valor de previsão de vetor de movimento e a diferença de vetor de movimento correspondente com base na correspondência para obter um vetor de movimento do bloco de imagem atual.[0103] In this embodiment of the present invention, the processor 201 is configured to perform the following operations by invoking the program code stored in the memory 202: obtaining, from a stream of bits, an index of predicted movement information of a block of current image in a candidate predicted motion information list, where predicted motion information includes reference image information and a motion vector prediction value, and candidate predicted motion information in the candidate predicted motion information list is information moving an adjacent block of the current image block in the time domain or in the spatial domain; query the candidate forecasted movement information list based on the index, and use the found candidate forecasted movement information as the forecasted movement information; determining a correspondence between a motion vector difference and the motion vector prediction value based on the predicted motion information, and obtaining the motion vector difference from the bit stream; and adding the motion vector prediction value and the corresponding motion vector difference based on the match to obtain a motion vector of the current image block.

[0104] De acordo com o terminal de decodificação de vídeo descrito na Figura 2, o vetor de movimento do bloco de imagem atual pode ser restaurado com relativa precisão e, portanto, um vídeo emitido tem qualidade relativamente alta em um caso de uma mesma taxa de bits.[0104] According to the video decoding terminal described in Figure 2, the motion vector of the current image block can be restored with relative accuracy and, therefore, an emitted video has relatively high quality in a case of the same rate of bits.

[0105] A Figura 3 é um diagrama estrutural esquemático de outro terminal de decodificação de vídeo revelado em uma modalidade da presente invenção. Como mostrado na Figura 3, o terminal pode incluir: uma primeira unidade de obtenção 301, configurada para: obter, a partir de um fluxo de bits, um índice de informações de movimento previsto de um bloco de imagem atual em uma lista de informações de movimento previsto candidato, onde as informações de movimento previsto incluem informações de imagem de referência e um valor de previsão de vetor de movimento, e informações de movimento previsto candidato na lista de informações de movimento previsto candidato são informações de movimento de um bloco adjacente do bloco de imagem atual no domínio de tempo ou no domínio espacial; uma unidade de consulta 302, configurada para: consultar a lista de informações de movimento previsto candidato com base no índice, e usar as informações de movimento previsto candidato encontradas como as informações de movimento previsto; uma unidade de determinação 303, configurada para determinar uma correspondência entre uma diferença de vetor de movimento e o valor de previsão de vetor de movimento com base nas informações de movimento previsto; uma segunda unidade de obtenção 304, configurada para obter a diferença de vetor de movimento a partir do fluxo de bits; e uma unidade de operação 305, configurada para adicionar o valor de previsão de vetor de movimento e a diferença de vetor de movimento correspondente com base na correspondência para obter um vetor de movimento do bloco de imagem atual.[0105] Figure 3 is a schematic structural diagram of another video decoding terminal disclosed in an embodiment of the present invention. As shown in Figure 3, the terminal may include: a first fetching unit 301, configured to: obtain, from a bit stream, an index of predicted motion information of a current picture block into a list of motion information candidate predicted motion, where the predicted motion information includes reference image information and a motion vector prediction value, and candidate predicted motion information in the candidate predicted motion information list is motion information of an adjacent block of the block current image in the time domain or in the spatial domain; a query unit 302, configured to: query the list of candidate forecasted movement information based on the index, and use the found candidate forecasted movement information as the forecasted movement information; a determination unit 303 configured to determine a match between a motion vector difference and the motion vector prediction value based on the predicted motion information; a second acquisition unit 304 configured to obtain the motion vector difference from the bit stream; and an operating unit 305 configured to add the motion vector prediction value and the corresponding motion vector difference based on the matching to obtain a motion vector of the current picture block.

[0106] De acordo com o terminal de decodificação de vídeo descrito na Figura 3, o vetor de movimento do bloco de imagem atual pode ser restaurado com relativa precisão e, portanto, um vídeo emitido tem qualidade relativamente alta em um caso de uma mesma taxa de bits.[0106] According to the video decoding terminal described in Figure 3, the motion vector of the current image block can be restored with relative accuracy and, therefore, an emitted video has relatively high quality in a case of the same rate of bits.

[0107] A Figura 4 é um fluxograma esquemático de um método de codificação de vídeo revelado em uma modalidade da presente invenção. O método de codificação de vídeo mostrado na Figura 4 pode incluir as seguintes etapas.[0107] Figure 4 is a schematic flowchart of a video encoding method disclosed in an embodiment of the present invention. The video encoding method shown in Figure 4 may include the following steps.

[0108] 401. Construir uma lista de informações de movimento previsto candidato de um bloco de imagem atual, onde informações de movimento previsto candidato incluídas na lista de informações de movimento previsto candidato são informações de movimento de um bloco adjacente do bloco de imagem atual no domínio de tempo ou no domínio espacial.[0108] 401. Constructing a candidate predicted motion information list of a current picture block, where candidate predicted motion information included in the candidate predicted motion information list is motion information of an adjacent block of the current picture block in the time domain or space domain.

[0109] Nesta modalidade da presente invenção, o bloco de imagem atual é qualquer unidade de previsão de um bloco de imagem a ser codificado correspondente a um fluxo de bits. Em algumas modalidades da presente invenção, o bloco de imagem atual pode alternativamente ser qualquer unidade de transformação ou unidade de decodificação do bloco de imagem a ser codificada atual correspondente ao fluxo de bits. Não há uma limitação quanto a isso.[0109] In this embodiment of the present invention, the current image block is any predictive unit of an image block to be encoded corresponding to a bit stream. In some embodiments of the present invention, the current picture block may alternatively be any transformation unit or decoding unit of the current picture block to be encoded corresponding to the bit stream. There is no limitation on this.

[0110] Em uma implantação opcional, uma quantidade de pedaços de informações de movimento previsto candidato na lista de informações de movimento previsto candidato pode ser codificada em pelo menos uma dentre informações de cabeçalho de camada de fatia, informações de cabeçalho de camada de imagem, e informações de cabeçalho de camada de sequência que são do fluxo de bits.[0110] In an optional implementation, a number of pieces of candidate predicted motion information in the candidate predicted motion information list may be encoded in at least one of slice layer header information, image layer header information, and sequence layer header information that is from the bitstream.

[0111] Além disso, a quantidade de pedaços de informações de movimento previsto candidato na lista de informações de movimento previsto candidato é menor que uma quantidade de pedaços de informações de movimento em uma lista de informações de movimento em um modo de mesclagem. O modo de mesclagem é um método de interprevisão no padrão Codificação de Vídeo de Alta Eficiência (High Efficiency Video Coding, HEVC). No modo de mesclagem, um pedaço de informações de movimento de um bloco adjacente do bloco de imagem atual é diretamente selecionado da lista de informações de movimento para especificar informações de movimento do bloco de imagem atual, e há uma quantidade relativamente grande de pedaços de informações de movimento na lista de informações de movimento. No entanto, nesta modalidade da presente invenção, a quantidade de pedaços de informações de movimento previsto candidato na lista de informações de movimento previsto candidato é menor do que a quantidade de pedaços de informações de movimento na lista de informações de movimento no modo de mesclagem, de modo a reduzir a complexidade de cálculo.[0111] In addition, the amount of candidate predicted movement information pieces in the candidate predicted movement information list is less than a quantity of movement information pieces in a movement information list in a merge mode. Blend mode is an interprediction method in the High Efficiency Video Coding (HEVC) standard. In merge mode, a piece of motion information of an adjacent block of the current picture block is directly selected from the motion information list to specify motion information of the current picture block, and there are a relatively large amount of pieces of information movement information in the movement information list. However, in this embodiment of the present invention, the amount of candidate predicted motion information pieces in the candidate predicted motion information list is less than the amount of motion information pieces in the motion information list in the merge mode, in order to reduce the calculation complexity.

[0112] 402. Selecionar, a partir da lista de informações de movimento previsto candidato, um pedaço de informações de movimento previsto candidato como informações de movimento previsto do bloco de imagem atual com base em um vetor de movimento que é do bloco de imagem atual e que é obtido durante a estimativa de movimento, e determinar um índice das informações de movimento previsto candidato selecionadas na lista de informações de movimento previsto candidato, onde as informações de movimento previsto incluem informações de imagem de referência e um valor de previsão de vetor de movimento.[0112] 402. Select, from the list of candidate predicted motion information, a piece of candidate predicted motion information as predicted motion information of the current picture block based on a motion vector that is of the current picture block and that is obtained during motion estimation, and determining an index of the candidate predicted motion information selected from the candidate predicted motion information list, where the predicted motion information includes reference image information and a vector prediction value of movement.

[0113] Nesta modalidade da presente invenção, estimativa de movimento é desempenhada no bloco de imagem atual usando-se informações de movimento de um bloco adjacente. Em uma implantação opcional, localizações de uma pluralidade de vetores de movimento são obtidas durante a estimativa de movimento, e um vetor de movimento com custos de distorção de taxa mínimos é selecionado como o vetor de movimento do bloco de imagem atual.[0113] In this embodiment of the present invention, motion estimation is performed on the current image block using motion information from an adjacent block. In an optional implementation, locations of a plurality of motion vectors are obtained during motion estimation, and a motion vector with minimal rate distortion costs is selected as the motion vector of the current image block.

[0114] Em uma implantação viável, as informações de movimento previsto candidato na lista de informações de movimento previsto candidato são percorridas, e cada pedaço de informações de movimento previsto candidato é usado como as informações de movimento previsto do bloco de imagem atual para calcular os custos de distorção de taxa, de modo a selecionar um pedaço de informações de movimento previsto candidato tendo custos de distorção de taxa mínimos como as informações de movimento previsto do bloco de imagem atual.[0114] In a feasible deployment, the candidate predicted motion information in the candidate predicted motion information list is traversed, and each piece of candidate predicted motion information is used as the predicted motion information of the current image block to calculate the rate distortion costs, so as to select a piece of candidate predicted motion information having minimal rate distortion costs as the predicted motion information of the current image block.

[0115] 403. Determinar uma correspondência entre uma diferença de vetor de movimento e o valor de previsão de vetor de movimento com base nas informações de movimento previsto.[0115] 403. Determine a match between a motion vector difference and the motion vector prediction value based on predicted motion information.

[0116] Nesta modalidade da presente invenção, a correspondência entre a diferença de vetor de movimento e o valor de previsão de vetor de movimento pode ser determinada da seguinte maneira: determinar um modo de previsão do bloco de imagem atual com base nas informações da imagem de referência, onde o modo de previsão inclui previsão unidirecional ou previsão bidirecional; determinar uma quantidade de diferenças de vetor de movimento com base no modo de previsão; e determinar a correspondência entre a diferença de vetor de movimento e o valor de previsão de vetor de movimento com base na quantidade de diferenças de vetor de movimento e nas informações do movimento previsto.[0116] In this embodiment of the present invention, the correspondence between the motion vector difference and the motion vector prediction value can be determined as follows: determine a prediction mode of the current image block based on the image information reference, where the forecast mode includes one-way forecast or two-way forecast; determine a quantity of motion vector differences based on the prediction mode; and determining the correspondence between the motion vector difference and the motion vector prediction value based on the amount of motion vector differences and the predicted motion information.

[0117] A determinação de uma quantidade de diferenças de vetor de movimento com base no modo de previsão pode ser implantada da seguinte maneira: se o modo de previsão é a previsão unidirecional, determinar que há uma diferença de vetor de movimento; ou se o modo de previsão é a previsão bidirecional, e as informações de imagem de referência incluem uma contagem de ordem de figura de uma imagem de referência do bloco de imagem atual, determinar a quantidade de diferenças de vetor de movimento com base na contagem de ordem de figura da imagem de referência do bloco de imagem atual; ou se uma contagem de ordem de figura de uma primeira imagem de referência do bloco de imagem atual é maior que uma contagem de ordem de figura do bloco de imagem atual, e uma contagem de ordem de figura de uma segunda imagem de referência do bloco de imagem atual é menor que a contagem de ordem de figura do bloco de imagem atual, determinar que há duas diferenças de vetor de movimento; ou se uma contagem de ordem de figura de cada imagem de referência do bloco de imagem atual é maior que uma contagem de ordem de figura do bloco de imagem atual, ou uma contagem de ordem de figura de cada imagem de referência do bloco de imagem atual é menor que uma contagem de ordem de figura do bloco de imagem atual, determinar que há uma diferença de vetor de movimento; ou se o modo de previsão é a previsão bidirecional, codificar uma quantidade predefinida de diferenças de vetor de movimento em pelo menos um dentre o fluxo de bits do bloco de imagem atual, e informações de cabeçalho de camada de fatia, informações de cabeçalho de camada de imagem, e informações de cabeçalho de camada de sequência que são do fluxo de bits.[0117] Determining a quantity of motion vector differences based on the prediction mode can be implemented as follows: if the prediction mode is unidirectional prediction, determine that there is a motion vector difference; or if the prediction mode is bidirectional prediction, and the reference image information includes a figure order count of a reference image of the current image block, determine the amount of motion vector differences based on the count of reference image picture order of the current image block; or if a figure order count of a first reference picture of the current picture block is greater than a figure order count of the current picture block, and a figure order count of a second reference picture of the current image is less than the figure order count of the current image block, determine that there are two motion vector differences; or if a figure order count of each reference picture of the current picture block is greater than a figure order count of the current picture block, or a figure order count of each reference picture of the current picture block is less than a figure order count of the current picture block, determine that there is a motion vector difference; or if the prediction mode is bidirectional prediction, encode a predefined amount of motion vector differences in at least one of the current image block bitstream, and slice layer header information, layer header information image, and sequence layer header information that is from the bitstream.

[0118] Depois que a quantidade de diferenças de vetor de movimento é determinada, a correspondência entre a diferença de vetor de movimento e o valor de previsão de vetor de movimento pode ser determinada da seguinte maneira: se houver duas diferenças de vetor de movimento, usar separadamente as duas diferenças de vetor de movimento como diferenças de vetor de movimento correspondentes ao primeiro valor de previsão de vetor de movimento e ao segundo valor de previsão de vetor de movimento; ou se houver uma diferença de vetor de movimento, usar a diferença de vetor de movimento como uma diferença de vetor de movimento correspondente ao primeiro valor de previsão de vetor de movimento, e definir uma diferença de vetor de movimento correspondente ao segundo valor de previsão de vetor de movimento como 0; ou usar a diferença de vetor de movimento como uma diferença de vetor de movimento correspondente ao segundo valor de previsão de vetor de movimento, e definir uma diferença de vetor de movimento correspondente ao primeiro valor de previsão de vetor de movimento como 0; ou usar a diferença de vetor de movimento como uma diferença de vetor de movimento correspondente a cada um dentre o primeiro valor de previsão de vetor de movimento e o segundo valor de previsão de vetor de movimento; ou determinar, com base em uma correspondência predefinida, uma correspondência entre a diferença de vetor de movimento e cada um dentre o primeiro valor de previsão de vetor de movimento e o segundo valor de previsão de vetor de movimento, e codificar a correspondência predefinida no fluxo de bits.[0118] After the amount of motion vector differences is determined, the correspondence between the motion vector difference and the motion vector prediction value can be determined as follows: if there are two motion vector differences, separately use the two motion vector differences as motion vector differences corresponding to the first motion vector prediction value and the second motion vector prediction value; or if there is a motion vector difference, use the motion vector difference as a motion vector difference corresponding to the first motion vector prediction value, and define a motion vector difference corresponding to the second prediction value of motion vector as 0; or use the motion vector difference as a motion vector difference corresponding to the second motion vector prediction value, and set a motion vector difference corresponding to the first motion vector prediction value to 0; or use the motion vector difference as a motion vector difference corresponding to each of the first motion vector prediction value and the second motion vector prediction value; or determine, based on a predefined correspondence, a correspondence between the motion vector difference and each of the first motion vector prediction value and the second motion vector prediction value, and encode the predefined correspondence into the stream of bits.

[0119] Deve ser notado que, em uma implantação viável, a diferença de vetor de movimento é usada como a diferença de vetor de movimento correspondente a cada um dentre o primeiro valor de previsão de vetor de movimento e o segundo valor de previsão de vetor de movimento. Em outras palavras, a diferença de vetor de movimento é usada novamente. Isso economiza o consumo de codificar a diferença de vetor de movimento e aperfeiçoa a eficiência.[0119] It should be noted that in a feasible deployment, the motion vector difference is used as the motion vector difference corresponding to each of the first motion vector prediction value and the second motion vector prediction value of movement. In other words, the motion vector difference is used again. This saves the consumption of coding the motion vector difference and improves the efficiency.

[0120] 404. Obter, com base na correspondência e no vetor de movimento, uma diferença de vetor de movimento correspondente ao valor de previsão de vetor de movimento.[0120] 404. Obtain, based on the match and the motion vector, a motion vector difference corresponding to the motion vector prediction value.

[0121] O vetor de movimento do bloco de imagem atual é determinado na etapa 402 e, portanto, a diferença de vetor de movimento correspondente ao valor de previsão de vetor de movimento pode ser obtida subtraindo-se o valor de previsão de vetor de movimento do vetor de movimento do bloco de imagem atual.[0121] The motion vector of the current image block is determined in step 402, and therefore, the motion vector difference corresponding to the motion vector prediction value can be obtained by subtracting the motion vector prediction value of current image block motion vector.

[0122] 405. Codificar o índice e a diferença de vetor de movimento em um fluxo de bits.[0122] 405. Encode the motion vector index and difference into a bit stream.

[0123] Pode-se aprender que, de acordo com o método de codificação de vídeo descrito na Figura 4, somente o índice e a diferença de vetor de movimento precisam ser transmitidos no fluxo de bits, e as informações de movimento do bloco de imagem atual podem ser restauradas em uma extremidade de decodificação. Portanto, uma taxa de bits específica pode ser economizada usando-se o método em um caso de mesma qualidade de vídeo.[0123] It can be learned that, according to the video encoding method described in Figure 4, only the index and motion vector difference need to be transmitted in the bit stream, and the motion information of the image block current can be restored on a decoding end. Therefore, a specific bitrate can be saved using the method in a case of the same video quality.

[0124] A Figura 5 é um diagrama estrutural esquemático de um terminal de codificação de vídeo revelado em uma modalidade da presente invenção. Como mostrado na Figura 5, o dispositivo terminal inclui um processador 501 e uma memória 502. A memória 502 pode ser configurada para armazenar cache exigido pelo processador 501 para desempenhar o processamento de dados, e pode ser configurado adicionalmente para fornecer dados invocados pelo processador 501 para desempenhar processamento de dados e fornecer espaço de armazenamento para os dados de resultados obtidos.[0124] Figure 5 is a schematic structural diagram of a video encoding terminal disclosed in an embodiment of the present invention. As shown in Figure 5, the terminal device includes a processor 501 and memory 502. Memory 502 can be configured to store cache required by processor 501 to perform data processing, and can be further configured to provide data invoked by processor 501 to perform data processing and provide storage space for the obtained result data.

[0125] Nesta modalidade da presente invenção, o processador 501 é configurado para desempenhar as seguintes operações invocando código de programa armazenado na memória 502: construir uma lista de informações de movimento previsto candidato de um bloco de imagem atual, onde informações de movimento previsto candidato incluídas na lista de informações de movimento previsto candidato são informações de movimento de um bloco adjacente do bloco de imagem atual no domínio de tempo ou no domínio espacial; selecionar, a partir da lista de informações de movimento previsto candidato, um pedaço de informações de movimento previsto candidato como informações de movimento previsto do bloco de imagem atual com base em um vetor de movimento que é do bloco de imagem atual e que é obtido durante estimativa de movimento, e determinar um índice das informações de movimento previsto candidato selecionadas na lista de informações de movimento previsto candidato, onde as informações de movimento previsto incluem informações de imagem de referência e um valor de previsão de vetor de movimento; determinar uma correspondência entre uma diferença de vetor de movimento e o valor de previsão de vetor de movimento com base nas informações de movimento previsto; obter, com base na correspondência e no vetor de movimento, uma diferença de vetor de movimento correspondente ao valor de previsão de vetor de movimento; e codificar o índice e a diferença de vetor de movimento em um fluxo de bits.[0125] In this embodiment of the present invention, processor 501 is configured to perform the following operations by invoking program code stored in memory 502: build a list of candidate predicted motion information from a current image block, where candidate predicted motion information included in the list of candidate predicted motion information is motion information of an adjacent block of the current image block in either the time domain or the spatial domain; select, from the list of candidate predicted motion information, a piece of candidate predicted motion information as predicted motion information of the current image block based on a motion vector that is from the current image block and that is obtained during motion estimation, and determining an index of the candidate predicted motion information selected from the candidate predicted motion information list, where the predicted motion information includes reference image information and a motion vector prediction value; determining a match between a motion vector difference and the motion vector prediction value based on the predicted motion information; obtaining, based on the match and the motion vector, a motion vector difference corresponding to the motion vector prediction value; and encode the motion vector index and difference into a bit stream.

[0126] Pode-se aprender que, de acordo com o terminal de codificação de vídeo descrito na Figura 5, somente o índice e a diferença de vetor de movimento precisam ser transmitidos no fluxo de bits, e as informações de movimento do bloco de imagem atual podem ser restauradas em uma extremidade de decodificação. Portanto, uma taxa de bits específica pode ser economizada usando-se o método em um caso de mesma qualidade de vídeo.[0126] It can be learned that, according to the video coding terminal described in Figure 5, only the index and motion vector difference need to be transmitted in the bit stream, and the motion information of the image block current can be restored on a decoding end. Therefore, a specific bitrate can be saved using the method in a case of the same video quality.

[0127] A Figura 6 é um diagrama estrutural esquemático de outro terminal de codificação de vídeo revelado em uma modalidade da presente invenção. Como mostrado na Figura 6, o terminal pode incluir: uma unidade de construção de lista 601, configurada para construir uma lista de informações de movimento previsto candidato de um bloco de imagem atual, onde informações de movimento previsto candidato incluídas na lista de informações de movimento previsto candidato são informações de movimento de um bloco adjacente do bloco de imagem atual no domínio de tempo ou no domínio espacial; uma unidade de seleção 602, configurada para selecionar, a partir da lista de informações de movimento previsto candidato, um pedaço de informações de movimento previsto candidato como informações de movimento previsto do bloco de imagem atual com base em um vetor de movimento que é do bloco de imagem atual e que é obtido durante estimativa de movimento, onde as informações de movimento previsto incluem informações de imagem de referência e um valor de previsão de vetor de movimento; uma primeira unidade de determinação 603, configurada para determinar um índice das informações de movimento previsto candidato selecionadas na lista de informações de movimento previsto candidato; uma segunda unidade de determinação 604, configurada para determinar uma correspondência entre uma diferença de vetor de movimento e o valor de previsão de vetor de movimento com base nas informações de movimento previsto; uma unidade de obtenção 605, configurada para obter, com base na correspondência e no vetor de movimento, uma diferença de vetor de movimento correspondente ao valor de previsão de vetor de movimento; e uma primeira unidade de codificação 606, configurada para codificar o índice e a diferença de vetor de movimento em um fluxo de bits.[0127] Figure 6 is a schematic structural diagram of another video encoding terminal disclosed in an embodiment of the present invention. As shown in Figure 6, the terminal may include: a list building unit 601, configured to build a candidate predicted motion information list from a current picture block, where candidate predicted motion information included in the motion information list predicted candidate is motion information of an adjacent block of the current image block in the time domain or in the spatial domain; a selection unit 602, configured to select, from the list of candidate predicted motion information, a piece of candidate predicted motion information as predicted motion information of the current picture block based on a motion vector that is of the block current image and that is obtained during motion estimation, where the predicted motion information includes reference image information and a motion vector prediction value; a first determining unit 603 configured to determine an index of the candidate forecasted movement information selected from the candidate forecasted movement information list; a second determination unit 604 configured to determine a match between a motion vector difference and the motion vector prediction value based on the predicted motion information; an acquisition unit 605 configured to obtain, based on the match and the motion vector, a motion vector difference corresponding to the motion vector prediction value; and a first encoding unit 606 configured to encode the index and difference of motion vector into a bit stream.

[0128] Pode-se aprender que, de acordo com o terminal de codificação de vídeo descrito na Figura 6, somente o índice e a diferença de vetor de movimento precisam ser transmitidos no fluxo de bits, e informações de movimento do bloco de imagem atual podem ser restauradas em uma extremidade de decodificação. Portanto, uma taxa de bits específica pode ser economizada usando-se o método em um caso de mesma qualidade de vídeo.[0128] It can be learned that, according to the video encoding terminal described in Figure 6, only the index and motion vector difference need to be transmitted in the bit stream, and motion information of the current picture block can be restored on a decoding end. Therefore, a specific bitrate can be saved using the method in a case of the same video quality.

[0129] A Figura 7 é um diagrama estrutural esquemático de um aparelho de codificação/decodificação de vídeo ou de um dispositivo eletrônico 50 revelado em uma modalidade da presente invenção. O aparelho ou o dispositivo eletrônico pode ser incorporado em um codec nas modalidades da presente invenção. Detalhes são descritos abaixo.[0129] Figure 7 is a schematic structural diagram of a video encoding/decoding apparatus or electronic device 50 disclosed in an embodiment of the present invention. The electronic apparatus or device may be incorporated into a codec in embodiments of the present invention. Details are described below.

[0130] O dispositivo eletrônico 50 pode ser, por exemplo, um terminal móvel ou equipamento de usuário em um sistema de comunicações sem fio. Deve ser entendido que as modalidades da presente invenção podem ser implantadas em qualquer dispositivo ou aparelho eletrônico que possa precisar codificar e decodificar, ou codificar, ou decodificar uma imagem de vídeo.[0130] The electronic device 50 can be, for example, a mobile terminal or user equipment in a wireless communications system. It should be understood that embodiments of the present invention can be implemented in any electronic device or apparatus that may need to encode and decode, or encode, or decode a video image.

[0131] O aparelho 50 pode incluir um alojamento 30 que é usado para proteger o dispositivo e que é incorporado no dispositivo. O aparelho 50 pode incluir adicionalmente um mostrador 32 na forma de um mostrador de cristal líquido. Em outras modalidades da presente invenção, o mostrador pode ser qualquer tecnologia mostrador apropriada adequada para exibir uma imagem ou um vídeo. O aparelho 50 pode incluir adicionalmente um teclado numérico 34. Em outras modalidades da presente invenção, podem ser usados quaisquer dados ou mecanismo de interface adequado de usuário. Por exemplo, uma interface de usuário pode ser implantada como um teclado virtual ou um sistema de entrada de dados pode ser implantado como parte de uma exibição sensível ao toque. O aparelho pode incluir um microfone 36 ou qualquer entrada de áudio apropriada, e a entrada de áudio pode ser entrada de sinal digital ou analógico. O aparelho 50 pode incluir adicionalmente o dispositivo de saída de áudio a seguir. O dispositivo de saída de áudio nesta modalidade da presente invenção pode ser qualquer um dentre um fone de ouvido 38, um alto-falante, uma conexão de saída de áudio analógica, ou uma conexão de saída de áudio digital. O aparelho 50 pode também incluir uma bateria 40. Em outras modalidades da presente invenção, o dispositivo pode receber potência de qualquer dispositivo de energia móvel apropriado, tal como uma célula solar, uma célula de combustível ou um gerador de relógio. O aparelho pode incluir adicionalmente uma porta de infravermelho 42 usada para comunicação de linha de visão de curto alcance com outro dispositivo. Em outras modalidades, o aparelho 50 pode incluir adicionalmente qualquer solução de comunicação de curto alcance apropriada, tal como uma conexão Bluetooth sem fio ou uma conexão USB com fio.[0131] The apparatus 50 may include a housing 30 which is used to protect the device and which is incorporated into the device. Apparatus 50 may additionally include a display 32 in the form of a liquid crystal display. In other embodiments of the present invention, the display can be any appropriate display technology suitable for displaying an image or a video. Apparatus 50 may further include a numeric keypad 34. In other embodiments of the present invention, any suitable data or user interface mechanism may be used. For example, a user interface could be deployed as a virtual keyboard, or a data entry system could be deployed as part of a touch display. The apparatus may include a microphone 36 or any appropriate audio input, and the audio input may be digital or analog signal input. Apparatus 50 may additionally include the following audio output device. The audio output device in this embodiment of the present invention can be any one of a headphone 38, a speaker, an analog audio output connection, or a digital audio output connection. Apparatus 50 may also include a battery 40. In other embodiments of the present invention, the device may receive power from any suitable mobile energy device, such as a solar cell, fuel cell, or clock generator. The apparatus may further include an infrared port 42 used for short range line-of-sight communication with another device. In other embodiments, apparatus 50 may additionally include any suitable short-range communication solution, such as a wireless Bluetooth connection or a wired USB connection.

[0132] O aparelho 50 pode incluir um controlador 56 ou um processador que está configurado para controlar o aparelho 50. O controlador 56 pode ser conectado a uma memória 58. A memória nesta modalidade da presente invenção pode armazenar dados de imagem ou dados de áudio, e/ou armazenar uma instrução implantada no controlador 56. O controlador 56 pode ser conectado adicionalmente a um circuito codec 54 que é adequado para implantar codificação e decodificação de dados de áudio e/ou de vídeo, ou codificação e decodificação auxiliar que são implantadas pelo controlador 56.[0132] The apparatus 50 may include a controller 56 or a processor that is configured to control the apparatus 50. The controller 56 may be connected to a memory 58. The memory in this embodiment of the present invention may store image data or audio data , and/or store an instruction implemented in the controller 56. The controller 56 can be further connected to a codec circuit 54 that is suitable for implementing encoding and decoding of audio and/or video data, or auxiliary encoding and decoding that are implemented by controller 56.

[0133] O aparelho 50 pode incluir adicionalmente um cartão inteligente 46, um leitor de cartões 48, tal como um UICC e um leitor de UICC, que são configurados para fornecer informações de usuário e que são adequados para fornecer informações de autenticação usadas para autenticação de rede e autorização de usuário.[0133] The apparatus 50 may additionally include a smart card 46, a card reader 48, such as a UICC and a UICC reader, which are configured to provide user information and which are suitable for providing authentication information used for authentication network and user authorization.

[0134] O aparelho 50 pode incluir adicionalmente um circuito de interface de rádio 52. O circuito de interface de rádio é conectado ao controlador e é adequado para gerar, por exemplo, um sinal de comunicação sem fio usado para comunicação com uma rede de comunicações celular, um sistema de comunicação sem fio ou uma rede de área local sem fio. O aparelho 50 pode incluir adicionalmente uma antena 44. A antena está conectada ao circuito de interface de rádio 52, e está configurada para enviar, para outro aparelho (ou uma pluralidade de aparelhos), um sinal de radiofrequência gerado no circuito de interface de rádio 52, e receber um sinal de radiofrequência do outro aparelho (ou da pluralidade de aparelhos).[0134] The apparatus 50 may additionally include a radio interface circuit 52. The radio interface circuit is connected to the controller and is suitable for generating, for example, a wireless communication signal used for communication with a communications network cellular phone, a wireless communication system, or a wireless local area network. The apparatus 50 may additionally include an antenna 44. The antenna is connected to the radio interface circuit 52, and is configured to send, to another apparatus (or a plurality of apparatuses), a radio frequency signal generated in the radio interface circuit 52, and receiving a radio frequency signal from the other apparatus (or the plurality of apparatuses).

[0135] Em algumas modalidades da presente invenção, o aparelho 50 inclui uma câmera que tem capacidade de gravar ou detectar quadros avulsos, e o codec 54 ou o controlador recebe e processa esses quadros avulsos. Em algumas modalidades da presente invenção, o aparelho pode receber dados de imagem de vídeo a serem processados de outro dispositivo antes de transmissão e/ou armazenamento. Em algumas modalidades da presente invenção, o aparelho 50 pode receber uma imagem através de uma conexão sem fio ou com fio para codificar/decodificar a imagem.[0135] In some embodiments of the present invention, the apparatus 50 includes a camera that is capable of recording or detecting single frames, and the codec 54 or the controller receives and processes these single frames. In some embodiments of the present invention, the apparatus may receive video image data to be processed from another device prior to transmission and/or storage. In some embodiments of the present invention, apparatus 50 can receive an image over a wireless or wired connection to encode/decode the image.

[0136] Nesta modalidade da presente invenção, o codec 54 pode ser configurado para desempenhar o método de decodificação de vídeo descrito na Figura 1 ou o método de codificação de vídeo descrito na Figura 4[0136] In this embodiment of the present invention, the codec 54 can be configured to perform the video decoding method described in Figure 1 or the video encoding method described in Figure 4

[0137] A Figura 8 é um diagrama estrutural esquemático de um sistema de codificação/decodificação de vídeo revelado em uma modalidade da presente invenção. Como mostrado na Figura 8, o sistema 10 de codificação/decodificação de vídeo inclui um aparelho de fonte 12 e um aparelho de destino 14. O aparelho de fonte 12 gera dados de vídeo codificados. Portanto, o aparelho de fonte 12 pode ser referido como um aparelho de codificação de vídeo ou um dispositivo de codificação de vídeo. O aparelho de destino 14 pode decodificar os dados de vídeo codificados gerados pelo aparelho de fonte 12. Portanto, o aparelho de destino 14 pode ser referido como um aparelho de decodificação de vídeo ou um dispositivo de decodificação de vídeo. O aparelho de fonte 12 e o aparelho de destino 14 podem ser casos de um aparelho de codificação/decodificação de vídeo ou de um dispositivo de codificação/decodificação de vídeo. O aparelho de fonte 12 e o aparelho de destino 14 podem incluir uma vasta gama de aparelhos, incluindo um computador de mesa, um aparelho de computação móvel, um computador do tipo notebook (por exemplo, um laptop), um computador do tipo tablet, um conversor, um computador que cabe na mão tal como um smartphone, uma televisão, uma câmera, um aparelho mostrador, um reprodutor de mídia digital, um console de videogame, um computador em veículo, ou similar.[0137] Figure 8 is a schematic structural diagram of a video encoding/decoding system disclosed in an embodiment of the present invention. As shown in Figure 8, the video encoding/decoding system 10 includes a source apparatus 12 and a destination apparatus 14. The source apparatus 12 generates encoded video data. Therefore, the source apparatus 12 may be referred to as a video encoding apparatus or a video encoding device. The destination apparatus 14 can decode the encoded video data generated by the source apparatus 12. Therefore, the destination apparatus 14 may be referred to as a video decoding apparatus or a video decoding device. The source apparatus 12 and the destination apparatus 14 may be instances of a video encoding/decoding apparatus or a video encoding/decoding apparatus. The source apparatus 12 and the destination apparatus 14 may include a wide range of apparatus, including a desktop computer, a mobile computing apparatus, a notebook-type computer (e.g., a laptop), a tablet-type computer, a set-top box, a handheld computer such as a smartphone, a television, a camera, a display device, a digital media player, a video game console, an in-vehicle computer, or the like.

[0138] O aparelho de destino 14 pode receber os dados de vídeo codificados do aparelho de fonte 12 através de um canal 16. O canal 16 pode incluir um ou mais meios e/ou aparelhos tendo capacidade de mover os dados de vídeo codificados do aparelho de fonte 12 para o aparelho de destino 14. Em um caso, o canal 16 pode incluir um ou mais meios de comunicação que habilitam o aparelho de fonte 12 a transmitir diretamente os dados de vídeo codificados para o aparelho de destino 14 em tempo real. Neste caso, o aparelho de fonte 12 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 para o aparelho de destino 14. O um ou mais meios de comunicação podem (m) incluir meios de comunicações sem fio e/ou com fio, por exemplo, um espectro de radiofrequência (RF) ou uma ou mais linhas de transmissão física. O um ou mais meios de comunicação podem constituir uma parte de uma rede com base em pacote (tal como uma rede de área local, uma rede de longa distância, ou uma rede global (por exemplo, a Internet)). O um ou mais meios de comunicação pode (m) incluir um roteador, um comutador, uma estação base, ou outro dispositivo que impulsiona comunicação entre o aparelho de fonte 12 e o aparelho de destino 14.[0138] The destination apparatus 14 may receive the encoded video data from the source apparatus 12 over a channel 16. The channel 16 may include one or more means and/or apparatus having the ability to move the encoded video data from the apparatus from source apparatus 12 to destination apparatus 14. In one instance, channel 16 may include one or more communication means enabling source apparatus 12 to directly transmit encoded video data to destination apparatus 14 in real time. In this case, the source apparatus 12 can modulate the encoded video data according to a communications standard (for example, a wireless communications protocol), and can transmit modulated video data to the destination apparatus 14. or more communication means may (m) include wireless and/or wired communication means, for example, a radio frequency (RF) spectrum or one or more physical transmission lines. The one or more means of communication may form part of a packet-based network (such as a local area network, a wide area network, or a global network (eg, the Internet)). The one or more means of communication may(m) include a router, switch, base station, or other device that drives communication between source apparatus 12 and destination apparatus 14.

[0139] Em outro caso, o canal 16 pode incluir uma mídia de armazenamento que armazena os dados de vídeo codificados gerados pelo aparelho de fonte 12. Neste caso, o aparelho de destino 14 pode acessar a mídia de armazenamento através de acesso a disco ou acesso a cartão. A mídia de armazenamento pode incluir uma pluralidade de mídias de armazenamento de dados acessível localmente, como um Blu-ray, um DVD, um CD-ROM, uma memória flash, ou outra mídia de armazenamento digital apropriada configurada para armazenar dados de vídeo codificados.[0139] In another case, the channel 16 may include a storage medium that stores the encoded video data generated by the source device 12. In this case, the destination device 14 can access the storage medium through disk access or card access. The storage media may include a variety of locally accessible data storage media, such as a Blu-ray, DVD, CD-ROM, flash memory, or other appropriate digital storage media configured to store encoded video data.

[0140] Em outro caso, o canal 16 pode incluir um servidor de arquivo ou outro dispositivo de armazenamento intermediário que armazena os dados de vídeo codificados gerados pelo aparelho de fonte 12. Neste caso, o aparelho de destino 14 pode acessar, por transmissão de fluxo contínuo ou download, os dados de vídeo codificados armazenados no servidor de arquivos ou em outro dispositivo de armazenamento intermediário. O servidor de arquivo pode ser um tipo de servidor com capacidade de armazenar os dados de vídeo codificados e transmitir os dados de vídeo codificados para o aparelho de destino 14. O servidor de arquivos no caso inclui um servidor da web (por exemplo, usado para um site da web), um servidor de Protocolo de Transferência de Arquivo (FTP), um aparelho de armazenamento preso à rede (NAS) e uma unidade de disco local.[0140] In another case, the channel 16 may include a file server or other intermediate storage device that stores the encoded video data generated by the source apparatus 12. In this case, the destination apparatus 14 can access, by transmission of streaming or download, the encoded video data stored on the file server or other intermediate storage device. The file server can be a type of server capable of storing the encoded video data and transmitting the encoded video data to the target apparatus 14. The file server in this case includes a web server (e.g. used for a website), a File Transfer Protocol (FTP) server, a network attached storage (NAS) appliance, and a local disk drive.

[0141] O aparelho de destino 14 pode acessar os dados de vídeo codificados através de uma conexão de dados padrão (por exemplo, uma conexão com a Internet). Os tipos de caso da conexão de dados incluem um canal sem fio (por exemplo, uma conexão Wi-Fi) ou uma conexão com fio (por exemplo, um DSL ou um modem a cabo) que são adequados 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 arquivo através de transmissão por streaming, transmissão por download ou uma combinação das mesmas.[0141] The target device 14 can access the encoded video data over a standard data connection (eg an Internet connection). Data connection case types include a wireless channel (for example a Wi-Fi connection) or a wired connection (for example a DSL or cable modem) which are suitable for accessing the encoded video data stored on the file server, or a combination thereof. Encoded video data can be transmitted from the file server via streaming, downloading or a combination thereof.

[0142] A tecnologia da presente invenção não é limitada a um cenário de aplicação sem fio. Por exemplo, a tecnologia pode ser aplicada à codificação e decodificação de vídeo em uma pluralidade de aplicações multimídia que suportam os seguintes aplicativos: difusão por televisão aberta, transmissão de televisão sem fio, 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 casos, o sistema 10 de codificação/decodificação de vídeo pode ser configurado para suportar transmissão de vídeo unidirecional ou bidirecional, para suportar transmissão de vídeo por streaming, reprodução de vídeo, difusão de vídeo e/ou uma chamada de vídeo, e outros aplicativos.[0142] The technology of the present invention is not limited to a wireless application scenario. For example, the technology can be applied to encoding and decoding video in a variety of multimedia applications that support the following applications: open television broadcasting, wireless television broadcasting, satellite television broadcasting, streaming video broadcasting (by example, over the Internet), encoding video data stored on a data storage medium, decoding video data stored on a data storage medium, or other application. In some cases, the video encoding/decoding system 10 can be configured to support unidirectional or bidirectional video transmission, to support streaming video transmission, video playback, video broadcasting and/or a video call, and so on. apps.

[0143] No caso da Figura 8, o aparelho de fonte 12 inclui uma fonte de vídeo 18, um codificador de vídeo 20 e uma interface de saída 22. Em alguns casos, a interface de saída 22 pode incluir um modulador/demodulador (um modem) e/ou um transmissor. A fonte de vídeo 18 pode incluir um aparelho de captura de vídeo (por exemplo, uma câmera de vídeo), um arquivo de vídeo incluindo dados de vídeo previamente capturados, uma interface de entrada de vídeo configurada para receber dados de vídeo de um provedor de conteúdo de vídeo, e/ou um sistema gráfico de computador configurado para gerar dados de vídeo, ou uma combinação das fontes de dados de vídeo supracitadas.[0143] In the case of Figure 8, the source apparatus 12 includes a video source 18, a video encoder 20 and an output interface 22. In some cases, the output interface 22 may include a modulator/demodulator (a modem) and/or a transmitter. Video source 18 may include a video capture device (e.g., a video camera), a video file including previously captured video data, a video input interface configured to receive video data from a video content, and/or a computer graphics system configured to generate video data, or a combination of the foregoing video data sources.

[0144] O codificador de vídeo 20 pode codificar dados de vídeo a partir da fonte de vídeo 18. Em alguns casos, o aparelho de fonte 12 transmite diretamente os dados de vídeo codificados para o aparelho de destino 14 pelo uso da interface de saída 22. Os dados de vídeo codificados podem alternativamente serem armazenados na mídia de armazenamento ou no servidor de arquivo, de modo que o aparelho de destino 14 acesse os dados de vídeo codificados mais tarde para decodificar e/ou reproduzir os dados de vídeo codificados.[0144] The video encoder 20 can encode video data from the video source 18. In some cases, the source apparatus 12 directly transmits the encoded video data to the destination apparatus 14 by using the output interface 22 The encoded video data may alternatively be stored on the storage media or on the file server, such that the target apparatus 14 accesses the encoded video data later to decode and/or play back the encoded video data.

[0145] No exemplo da Figura 8, o aparelho de destino 14 inclui uma interface de entrada 28, um decodificador de vídeo 30, e um aparelho mostrador 32. Em alguns casos, a interface de entrada 28 inclui um receptor e/ou um modem. A interface de entrada 28 pode receber os dados de vídeo codificados através do canal 16. O aparelho de visualização 32 pode ser integrado com o aparelho de destino 14 ou pode estar fora do aparelho de destino 14. O aparelho mostrador 32 apresenta normalmente dados de vídeo decodificados. O aparelho mostrador 32 pode incluir uma pluralidade de tipos de aparelhos mostradores, tais como um mostrador de cristal líquido (LCD), um mostrador de plasma, um mostrador de diodo emissor de luz orgânico (OLED), ou outro tipo de aparelho mostrador.[0145] In the example of Figure 8, the destination device 14 includes an input interface 28, a video decoder 30, and a display device 32. In some cases, the input interface 28 includes a receiver and/or a modem . The input interface 28 can receive the encoded video data via channel 16. The display apparatus 32 can be integrated with the target apparatus 14 or can be outside of the target apparatus 14. The display apparatus 32 typically displays video data decoded. The display apparatus 32 can include a variety of types of display apparatus, such as a liquid crystal display (LCD), a plasma display, an organic light emitting diode (OLED) display, or another type of display apparatus.

[0146] O codificador de vídeo 20 e o decodificador de vídeo 30 podem desempenhar operações de acordo com um padrão de compressão de vídeo (por exemplo, o padrão de Codificação de Vídeo de Alta Eficiência H.265) e podem estar em conformidade com um modelo de teste HEVC (HM). A descrição textual ITU-TH.265 (V3) (04/2015) do padrão H.265 é lançada em 29 de abril de 2015, podendo ser baixada em http://handle.itu.int/11.1002/1000/12455, e todo o conteúdo do documento é incorporado em sua totalidade a título de referência.[0146] The video encoder 20 and the video decoder 30 can perform operations in accordance with a video compression standard (for example, the H.265 High Efficiency Video Coding standard) and can comply with a HEVC test model (HM). The ITU-TH.265 (V3) (04/2015) textual description of the H.265 standard is released on April 29, 2015 and can be downloaded from http://handle.itu.int/11.1002/1000/12455, and all content of the document is incorporated in its entirety by reference.

[0147] Alternativamente, o codificador de vídeo 20 e o decodificador de vídeo 30 podem desempenhar operações de acordo com outros padrões de proprietário ou da indústria. Os padrões incluem ITU-TH.261, ISO/IECMPEG- 1Visual, ITU-TH.262 ou ISO/IECMPEG-2Visual, ITU-TH.263, ISO/IECMPEG- 4Visual e ITU-TH.264 (também conhecido como ISO/IEC MPEG-4 AVC) que inclui as seguintes extensões: Codificação/Decodificação de Vídeo Escalável (SVC) e Codificação/Decodificação de Vídeo Multivista (MVC). Deve ser entendido que a tecnologia da presente invenção não está limitada a qualquer padrão ou tecnologia de codificação/decodificação específica.[0147] Alternatively, the video encoder 20 and the video decoder 30 may perform operations in accordance with other proprietary or industry standards. Standards include ITU-TH.261, ISO/IECMPEG-1Visual, ITU-TH.262 or ISO/IECMPEG-2Visual, ITU-TH.263, ISO/IECMPEG-4Visual, and ITU-TH.264 (also known as ISO/ IEC MPEG-4 AVC) that includes the following extensions: Scalable Video Coding/Decoding (SVC) and Multiview Video Coding/Decoding (MVC). It should be understood that the technology of the present invention is not limited to any specific encoding/decoding technology or standard.

[0148] Além disso, a Figura 8 é meramente um caso, e a tecnologia da presente invenção pode ser aplicada a um aplicativo de codificação/decodificação de vídeo (por exemplo, codificação de vídeo de lado único ou decodificação de vídeo de lado único) que não inclui necessariamente qualquer comunicação de dados entre um aparelho de codificação e um aparelho de decodificação. Em outros casos, dados são recuperados de uma memória local, e os dados são transmitidos através de streaming usando-se uma rede ou os dados são operados de uma maneira similar. O aparelho de codificação pode codificar dados e armazenar os dados na memória, e/ou o aparelho de decodificação pode recuperar dados da memória e decodificar os dados. Em muitos casos, uma pluralidade de aparelhos que não se comunicam entre si e que somente codificam dados na memória, e/ou que somente recuperam dados da memória e decodificam os dados desempenham codificação e decodificação.[0148] Furthermore, Figure 8 is merely a case, and the technology of the present invention can be applied to a video encoding/decoding application (for example, single-sided video encoding or single-sided video decoding) which does not necessarily include any data communication between an encoding apparatus and a decoding apparatus. In other cases, data is retrieved from local memory, and the data is streamed using a network, or the data is operated on in a similar manner. The encoding apparatus can encode data and store the data in memory, and/or the decoding apparatus can retrieve data from memory and decode the data. In many cases, a plurality of devices that do not communicate with each other and that only encode data in memory, and/or that only retrieve data from memory and decode the data perform encoding and decoding.

[0149] O codificador de vídeo 20 e o decodificador de vídeo 30 podem ser implantados como qualquer um dentre uma pluralidade de circuitos apropriados, por exemplo, um ou mais microprocessadores, um processador de sinal digital (DSP), um circuito de aplicação específica (ASIC), um arranjo de porta programável por campo (FPGA), lógica discreta, hardware, ou qualquer combinação destes. Se a tecnologia é parcialmente ou completamente implantada usando-se software, o aparelho pode armazenar uma instrução do software em uma mídia de armazenamento legível por computador não transitória apropriada, e um ou mais processadores podem ser usados para executar uma instrução em hardware para executar a tecnologia da presente invenção. Qualquer um dos itens supracitados (incluindo hardware, software, uma combinação de hardware e software e semelhantes) pode ser considerado como um ou mais processadores. O codificador de vídeo 20 e o decodificador de vídeo 30 podem ser incluídos em um ou mais codificadores ou decodificadores, e cada um pode ser integrado como uma parte de um codificador/decodificador (codec (CODEC)) combinado de outro aparelho.[0149] The video encoder 20 and the video decoder 30 can be implemented as any one of a plurality of appropriate circuits, for example, one or more microprocessors, a digital signal processor (DSP), an application-specific circuit ( ASIC), a field-programmable gate array (FPGA), discrete logic, hardware, or any combination thereof. If the technology is partially or completely implemented using software, the apparatus may store a software instruction on an appropriate non-transient computer-readable storage medium, and one or more processors may be used to execute an instruction in hardware to carry out the technology of the present invention. Any of the foregoing (including hardware, software, a combination of hardware and software, and the like) may be considered one or more processors. Video encoder 20 and video decoder 30 may be included in one or more encoders or decoders, and each may be integrated as a part of a combined encoder/decoder (codec (CODEC)) of another apparatus.

[0150] A presente invenção pode de modo geral indicar que o codificador de vídeo 20 "sinalizando" informações para outro aparelho (por exemplo, o decodificador de vídeo 30) pelo uso de um sinal. A expressão "sinalizando" de modo geral pode indicar um elemento sintático e/ou representar transferência de dados de vídeo codificados. A transferência pode ocorrer em tempo real ou aproximadamente em tempo real. Alternativamente, a comunicação pode ocorrer ao longo de um período de tempo, por exemplo, pode ocorrer quando o elemento sintático é armazenado, durante a codificação, em uma mídia de armazenamento legível por computador usando-se dados binários obtidos após a codificação. O aparelho de decodificação pode recuperar o elemento sintático a qualquer momento depois que o elemento sintático é armazenado no meio.[0150] The present invention may generally provide for the video encoder 20 "signaling" information to another apparatus (e.g., the video decoder 30) by use of a signal. The expression "signaling" in general can indicate a syntactic element and/or represent transfer of encoded video data. The transfer can occur in real time or in near real time. Alternatively, communication can take place over a period of time, for example, it can take place when the syntactic element is stored, during encoding, on a computer-readable storage medium using binary data obtained after encoding. The decoding apparatus can retrieve the syntactic element at any time after the syntactic element is stored on the medium.

[0151] Deve ser notado que a divisão do aparelho é meramente divisão da função lógica, mas a presente invenção não se limita à divisão supracitada, desde que funções correspondentes possam ser implantadas. Além disso, nomes específicos das unidades funcionais são meramente fornecidos para o propósito de distinguir as unidades uma da outra, mas não se destinam a limitar o escopo de proteção da presente invenção.[0151] It should be noted that the division of the apparatus is merely the division of the logic function, but the present invention is not limited to the aforementioned division, as long as corresponding functions can be implemented. Furthermore, specific names of the functional units are merely provided for the purpose of distinguishing the units from one another, but are not intended to limit the scope of protection of the present invention.

[0152] Além disso, pessoas de habilidade comum na técnica podem entender que todas as ou algumas das etapas das modalidades de método podem ser implantadas por um programa instruindo hardware relacionado. O programa pode ser armazenado em uma mídia de armazenamento legível por computador. A mídia de armazenamento pode incluir uma memória somente para leitura, um disco magnético, um disco óptico, ou semelhante.[0152] Furthermore, persons of ordinary skill in the art can understand that all or some of the steps of the method embodiments can be implemented by a program instructing related hardware. The program may be stored on a computer-readable storage medium. The storage media may include read-only memory, a magnetic disk, an optical disk, or the like.

[0153] As descrições supracitadas são apenas implantações exemplificativas específicas da presente invenção, mas não se destinam a limitar o escopo de proteção da presente invenção. Qualquer variação ou substituição prontamente percebida por especialistas na técnica dentro do escopo técnico revelado nas modalidades da presente invenção estará abrangida pelo escopo de proteção da presente invenção. Portanto, o escopo de proteção da presente invenção estará sujeito ao escopo de proteção das reivindicações.[0153] The foregoing descriptions are only specific exemplary implementations of the present invention, but are not intended to limit the scope of protection of the present invention. Any variation or substitution readily perceived by experts in the art within the technical scope disclosed in the embodiments of the present invention will be covered by the scope of protection of the present invention. Therefore, the scope of protection of the present invention will be subject to the scope of protection of the claims.

Claims (8)

1. Método de decodificação de vídeo, CARACTERIZADO pelo fato de que compreende: obter (101), a partir de um fluxo de bits, um índice de informações de movimento previsto de um bloco de imagem atual em uma lista de informações de movimento previsto candidato, em que as informações de movimento previsto compreendem informações de imagem de referência e um valor de previsão de vetor de movimento, e informações de movimento previsto candidato na lista de informações de movimento previsto candidato são informações de movimento de um bloco adjacente do bloco de imagem atual em domínio de tempo ou em domínio espacial; consultar (102) a lista de informações de movimento previsto candidato com base no índice, e usar as informações de movimento previsto candidato encontradas como as informações de movimento previsto; determinar (103) uma correspondência entre um valor de diferença de vetor de movimento e um valor de previsão de vetor de movimento, e obter o valor de diferença de vetor de movimento a partir do fluxo de bits; e corrigir (104) o valor de previsão de vetor de movimento adicionando o valor de diferença de vetor de movimento para obter um vetor de movimento do bloco de imagem atual, em que quando o modo de previsão for uma previsão bidirecional, as informações de movimento previsto compreendem dois valores de previsão de vetor de movimento: um primeiro valor de previsão de vetor de movimento e um segundo valor de previsão de vetor de movimento, em que há apenas um valor de diferença de vetor de movimento obtido a partir do fluxo de bits e o valor de diferença de vetor de movimento é reutilizado para corrigir (104) os valores de previsão de vetor de movimento adicionando o mesmo valor de diferença de vetor de movimento ao primeiro valor de previsão de vetor de movimento e ao segundo valor de previsão de vetor de movimento.1. A video decoding method, CHARACTERIZED in that it comprises: obtaining (101) from a bit stream an index of predicted motion information of a current picture block into a candidate predicted motion information list , wherein the predicted motion information comprises reference picture information and a motion vector prediction value, and candidate predicted motion information in the candidate predicted motion information list is motion information of an adjacent block of the picture block current in time domain or in space domain; querying (102) the list of candidate forecasted movement information based on the index, and using the found candidate forecasted movement information as the forecasted movement information; determining (103) a correspondence between a motion vector difference value and a motion vector prediction value, and obtaining the motion vector difference value from the bit stream; and correct (104) the motion vector prediction value by adding the motion vector difference value to get a motion vector of the current picture block, wherein when the prediction mode is bidirectional prediction, the motion information predicted comprises two motion vector prediction values: a first motion vector prediction value and a second motion vector prediction value, wherein there is only a motion vector difference value obtained from the bit stream and the motion vector difference value is reused to correct (104) the motion vector prediction values by adding the same motion vector difference value to the first motion vector prediction value and the second motion vector prediction value motion vector. 2. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que a determinação (103) de uma correspondência entre um valor de diferença de vetor de movimento e um valor de previsão de vetor de movimento compreende: determinar um modo de previsão do bloco de imagem atual com base nas informações de imagem de referência, em que o modo de previsão compreende previsão unidirecional ou previsão bidirecional; determinar uma quantidade de valores de diferença de vetor de movimento com base no modo de previsão; e determinar a correspondência entre o valor de diferença de vetor de movimento e o valor de previsão de vetor de movimento com base na quantidade de valores de diferença de vetor de movimento.2. Method, according to claim 1, CHARACTERIZED by the fact that the determination (103) of a correspondence between a motion vector difference value and a motion vector prediction value comprises: determining a prediction mode of the current image block based on reference image information, wherein the prediction mode comprises unidirectional prediction or bidirectional prediction; determine a number of motion vector difference values based on the prediction mode; and determining the correspondence between the motion vector difference value and the motion vector prediction value based on the number of motion vector difference values. 3. Método, de acordo com a reivindicação 2, CARACTERIZADO pelo fato de que a determinação de uma quantidade de valores de diferença de vetor de movimento com base no modo de previsão compreende: se o modo de previsão for a previsão unidirecional, determinar que há um valor de diferença de vetor de movimento; ou se o modo de previsão for a previsão bidirecional, e as informações de imagem de referência compreenderem uma contagem de ordem de figura de uma imagem de referência, determinar a quantidade de valores de diferença de vetor de movimento com base na contagem de ordem de figura da imagem de referência do bloco de imagem atual; ou se o modo de previsão for a previsão bidirecional, obter a quantidade de valores de diferença de vetor de movimento a partir de pelo menos um dentre o fluxo de bits do bloco de imagem atual, e informações de cabeçalho de camada de fatia, informações de cabeçalho de camada de imagem, e informações de cabeçalho de camada de sequência que são do fluxo de bits.3. Method, according to claim 2, CHARACTERIZED by the fact that determining a number of motion vector difference values based on the prediction mode comprises: if the prediction mode is unidirectional prediction, determining that there is a motion vector difference value; or if the prediction mode is bidirectional prediction, and the reference image information comprises a figure order count of a reference image, determine the amount of motion vector difference values based on the figure order count from the reference image of the current image block; or if the prediction mode is bidirectional prediction, get the amount of motion vector difference values from at least one of the bit stream of the current image block, and slice layer header information, image layer header, and sequence layer header information that is from the bitstream. 4. Método, de acordo com a reivindicação 3, CARACTERIZADO pelo fato de que a determinação da quantidade de valores de diferença de vetor de movimento com base na contagem de ordem de figura da imagem de referência do bloco de imagem atual compreende: se uma contagem de ordem de figura de uma primeira imagem de referência do bloco de imagem atual for maior que uma contagem de ordem de figura do bloco de imagem atual, e uma contagem de ordem de figura de uma segunda imagem de referência do bloco de imagem atual for menor que a contagem de ordem de figura do bloco de imagem atual, determinar que há dois valores de diferença de vetor de movimento; ou se uma contagem de ordem de figura de cada imagem de referência do bloco de imagem atual for maior que uma contagem de ordem de figura do bloco de imagem atual, ou uma contagem de ordem de figura de cada imagem de referência do bloco de imagem atual for menor que uma contagem de ordem de figura do bloco de imagem atual, determinar que há um valor de diferença de vetor de movimento.4. Method, according to claim 3, CHARACTERIZED by the fact that the determination of the amount of motion vector difference values based on the figure order count of the reference image of the current image block comprises: if a count figure order count of a first reference picture of the current picture block is greater than a figure order count of the current picture block, and a figure order count of a second reference picture of the current picture block is less that the figure order count of the current picture block, determine that there are two motion vector difference values; or if a figure order count of each reference picture of the current picture block is greater than a figure order count of the current picture block, or a figure order count of each reference picture of the current picture block is less than a figure order count of the current picture block, determine that there is a motion vector difference value. 5. Terminal de decodificação de vídeo, CARACTERIZADO pelo fato de que compreende: uma primeira unidade de obtenção (301), configurada para: obter, a partir de um fluxo de bits, um índice de informações de movimento previsto de um bloco de imagem atual em uma lista de informações de movimento previsto candidato, em que as informações de movimento previsto compreendem informações de imagem de referência e um valor de previsão de vetor de movimento, e informações de movimento previsto candidato na lista de informações de movimento previsto candidato são informações de movimento de um bloco adjacente do bloco de imagem atual em domínio de tempo ou em domínio espacial; uma unidade de consulta (302), configurada para: consultar a lista de informações de movimento previsto candidato com base no índice, e usar as informações de movimento previsto candidato encontradas como as informações de movimento previsto; uma unidade de determinação (303), configurada para determinar uma correspondência entre um valor de diferença de vetor de movimento e um valor de previsão de vetor de movimento; uma segunda unidade de obtenção (304), configurada para obter o valor de diferença de vetor de movimento a partir do fluxo de bits; e uma unidade de operação (305), configurada para corrigir o valor de previsão de vetor de movimento adicionando o valor de diferença de vetor de movimento para obter um vetor de movimento do bloco de imagem atual, em que quando o modo de previsão for uma previsão bidirecional, as informações de movimento previsto compreendem dois valores de previsão de vetor de movimento: um primeiro valor de previsão de vetor de movimento e um segundo valor de previsão de vetor de movimento, em que há apenas um valor de diferença de vetor de movimento obtido a partir do fluxo de bits e o valor de diferença de vetor de movimento é reutilizado para corrigir os valores de previsão de vetor de movimento adicionando o mesmo valor de diferença de vetor de movimento ao primeiro valor de previsão de vetor de movimento e ao segundo valor de previsão de vetor de movimento.5. Video decoding terminal, CHARACTERIZED in that it comprises: a first acquisition unit (301), configured to: obtain, from a bit stream, an index of predicted movement information of a current image block in a candidate predicted motion information list, wherein the predicted motion information comprises reference image information and a motion vector prediction value, and candidate predicted motion information in the candidate predicted motion information list is motion information movement of an adjacent block of the current image block in time domain or in space domain; a query unit (302), configured to: query the list of candidate forecasted movement information based on the index, and use the found candidate forecasted movement information as the forecasted movement information; a determining unit (303) configured to determine a match between a motion vector difference value and a motion vector prediction value; a second acquisition unit (304) configured to obtain the motion vector difference value from the bit stream; and an operating unit (305) configured to correct the motion vector prediction value by adding the motion vector difference value to obtain a motion vector of the current picture block, wherein when the prediction mode is one bidirectional prediction, the predicted motion information comprises two motion vector prediction values: a first motion vector prediction value and a second motion vector prediction value, where there is only one motion vector difference value obtained from the bit stream and the motion vector difference value is reused to correct the motion vector prediction values by adding the same motion vector difference value to the first motion vector prediction value and the second motion vector prediction value. 6. Terminal, de acordo com a reivindicação 5, CARACTERIZADO pelo fato de que a unidade de determinação (303) compreende: uma primeira subunidade de determinação, configurada para determinar um modo de previsão do bloco de imagem atual com base nas informações de imagem de referência, em que o modo de previsão compreende previsão unidirecional ou previsão bidirecional; uma segunda subunidade de determinação, configurada para determinar uma quantidade de valores de diferença de vetor de movimento com base no modo de previsão; e uma terceira subunidade de determinação, configurada para determinar a correspondência entre o valor de diferença de vetor de movimento e o valor de previsão de vetor de movimento com base na quantidade de valores de diferença de vetor de movimento.6. Terminal, according to claim 5, characterized by the fact that the determination unit (303) comprises: a first determination subunit, configured to determine a prediction mode of the current image block based on image information from reference, where the prediction mode comprises unidirectional prediction or bidirectional prediction; a second determination sub-unit configured to determine a number of motion vector difference values based on the prediction mode; and a third determining sub-unit configured to determine the correspondence between the motion vector difference value and the motion vector prediction value based on the number of motion vector difference values. 7. Terminal, de acordo com a reivindicação 6, CARACTERIZADO pelo fato de que a segunda subunidade de determinação é configurada especificamente para: se o modo de previsão for a previsão unidirecional, determinar que há um valor de diferença de vetor de movimento; ou se o modo de previsão for a previsão bidirecional, e as informações de imagem de referência compreenderem uma contagem de ordem de figura de uma imagem de referência, determinar a quantidade de valores de diferença de vetor de movimento com base na contagem de ordem de figura da imagem de referência do bloco de imagem atual; ou se o modo de previsão for a previsão bidirecional, obter a quantidade de valores de diferença de vetor de movimento a partir de pelo menos um dentre o fluxo de bits do bloco de imagem atual, e informações de cabeçalho de camada de fatia, informações de cabeçalho de camada de imagem, e informações de cabeçalho de camada de sequência que são do fluxo de bits.7. Terminal, according to claim 6, CHARACTERIZED by the fact that the second determination subunit is specifically configured to: if the prediction mode is unidirectional prediction, determine that there is a motion vector difference value; or if the prediction mode is bidirectional prediction, and the reference image information comprises a figure order count of a reference image, determine the amount of motion vector difference values based on the figure order count from the reference image of the current image block; or if the prediction mode is bidirectional prediction, get the amount of motion vector difference values from at least one of the bit stream of the current image block, and slice layer header information, image layer header, and sequence layer header information that is from the bitstream. 8. Terminal, de acordo com a reivindicação 7, CARACTERIZADO pelo fato de que ao determinar a quantidade de valores de diferença de vetor de movimento com base na contagem de ordem de figura da imagem de referência do bloco de imagem atual, a segunda subunidade de determinação é especificamente configurada para: se uma contagem de ordem de figura de uma primeira imagem de referência do bloco de imagem atual for maior que uma contagem de ordem de figura do bloco de imagem atual, e uma contagem de ordem de figura de uma segunda imagem de referência do bloco de imagem atual for menor que a contagem de ordem de figura do bloco de imagem atual, determinar que há dois valores de diferença de vetor de movimento; ou se uma contagem de ordem de figura de cada imagem de referência do bloco de imagem atual for maior que uma contagem de ordem de figura do bloco de imagem atual, ou uma contagem de ordem de figura de cada imagem de referência do bloco de imagem atual for menor que uma contagem de ordem de figura do bloco de imagem atual, determinar que há um valor de diferença de vetor de movimento.8. Terminal, according to claim 7, CHARACTERIZED by the fact that when determining the amount of motion vector difference values based on the figure order count of the reference image of the current image block, the second subunit of determination is specifically configured for: if a figure order count of a first reference image of the current image block is greater than a figure order count of the current image block, and a figure order count of a second image current image block's reference count is less than the current image block's figure order count, determine that there are two motion vector difference values; or if a figure order count of each reference picture of the current picture block is greater than a figure order count of the current picture block, or a figure order count of each reference picture of the current picture block is less than a figure order count of the current picture block, determine that there is a motion vector difference value.
BR112019006146-0A 2016-09-30 VIDEO ENCODING METHOD, VIDEO DECODING METHOD, AND TERMINAL BR112019006146B1 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2016/101081 WO2018058526A1 (en) 2016-09-30 2016-09-30 Video encoding method, decoding method and terminal

Publications (2)

Publication Number Publication Date
BR112019006146A2 BR112019006146A2 (en) 2019-06-18
BR112019006146B1 true BR112019006146B1 (en) 2023-06-27

Family

ID=

Similar Documents

Publication Publication Date Title
US11558623B2 (en) Bidirectional inter prediction method and terminal based on motion vector difference reduction
US11039144B2 (en) Method and apparatus for image coding and decoding through inter-prediction
US20230030845A1 (en) Picture Encoding and Decoding Method and Apparatus for Video Sequence
JP7388610B2 (en) Video encoding method, video decoding method, and terminal
JP6968228B2 (en) Methods and equipment for image coding and decoding via inter-prediction
WO2018120420A1 (en) Prediction method and device based on template matching
BR112019006146B1 (en) VIDEO ENCODING METHOD, VIDEO DECODING METHOD, AND TERMINAL
WO2018120290A1 (en) Prediction method and device based on template matching