KR100293445B1 - Method for coding motion vector - Google Patents
Method for coding motion vector Download PDFInfo
- Publication number
- KR100293445B1 KR100293445B1 KR1019970079122A KR19970079122A KR100293445B1 KR 100293445 B1 KR100293445 B1 KR 100293445B1 KR 1019970079122 A KR1019970079122 A KR 1019970079122A KR 19970079122 A KR19970079122 A KR 19970079122A KR 100293445 B1 KR100293445 B1 KR 100293445B1
- Authority
- KR
- South Korea
- Prior art keywords
- motion vector
- coding
- difference value
- candidate
- bit
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/48—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using compressed domain processing techniques other than decoding, e.g. modification of transform coefficients, variable length coding [VLC] data or run-length data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
Description
본 발명은 MPEG(Moving Picture Experts Group)-4에 관한 것으로 움직임 벡터 코딩에 있어서 2개의 후보 움직임벡터중 실제 움직임벡터와 가장 근접한 값을 선택하여 그 차분치와 모드비트를 코딩하여 동영상 압축에 따른 비트율을 감소시킴으로써 압축율을 향상시키는데 적당한 움직임벡터 코딩방법에 관한 것이다.The present invention relates to Moving Picture Experts Group (MPEG) -4. In motion vector coding, a bit rate according to video compression is selected by selecting a value closest to a real motion vector among two candidate motion vectors and coding the difference value and the mode bits. The present invention relates to a motion vector coding method suitable for improving the compression ratio by reducing the P s.
일반적으로 시간에 따라 변화하는 비디오 시퀀스(Video Sequence)를 효율적으로 압축하기 위해서는 영상데이터가 갖고 있는 2차원 공간상의 중복성(redundancy)뿐만 아니라 시간축상의 중복성 제거가 절대적으로 필요하다.In general, in order to efficiently compress a video sequence that changes with time, it is absolutely necessary to remove redundancy on the time axis as well as redundancy on the two-dimensional space of the image data.
MPEG(Moving Picture Experts Group)에서는 2차원 공간상의 중복성을 제거하기 위하여 DCT(Discrete Cosine Transform)를 이용하고, 시간축상의 중복성을 제거하기 위하여 움직임 보상방법을 이용하고 있다.Moving Picture Experts Group (MPEG) uses a discrete cosine transform (DCT) to remove redundancy in two-dimensional space, and uses a motion compensation method to remove redundancy on a time axis.
DCT는 2차원 공간변환을 통해서 데이터의 상관성을 제거하는 방법으로서 픽쳐(Picture)를 공간변환시킴에 있어서, 블럭(block)단위로 나뉘어진 각각의 블럭을 DCT를 이용하여 공간변환시킨다.The DCT is a method of removing the correlation of data through two-dimensional spatial transformation. In the spatial transformation of a picture, each block divided by a block unit is spatially transformed using the DCT.
공간변환된 데이터들은 한쪽 방향으로 몰리는 경향이 있는데 몰려진 데이터들만을 양자화하여 전송하게 된다.Spatially transformed data tends to converge in one direction, and only the collected data is quantized and transmitted.
시간축상으로 연속된 Picture들은 주로 화면의 중앙부분에서 사람이나 물체의 움직임이 있기 때문에 움직임 보상방법에서는 이러한 성질을 이용하여 시간축상의 중복성을 제거한다.Since pictures that are continuous on the time axis mainly move people or objects in the center of the screen, the motion compensation method uses this property to remove the redundancy on the time axis.
즉, 화면의 변하지 않는 부분(혹은 움직였다고 하더라도 변화가 아주 작은 부분)은 비슷한 부분을 바로 전 Picture에서 가져와서 채움으로서 전송하여야 할 데이터량을 최소화 할 수 있다.In other words, the unchanged part of the screen (or the part that changes very little even if it is moved) can minimize the amount of data to be transferred by taking the similar part from the previous picture and filling it.
이렇게 Picture사이에서 가장 비슷한 블럭을 찾는 일을 움직임예측(Motion Estimation)이라고 하며, 움직임의 정도를 변위로 나타낸 것을 움직임벡터(Motion Vetor)라고 한다.Finding the most similar block among pictures is called motion estimation and motion vector is the displacement vector.
다시말해서, 움직임벡터란 영상의 움직임보상을 위해서 현재의 픽쳐나 필드(field)의 좌표로부터 기준프레임(reference frame)이나 기준필드의 좌표의 오프셋을 나타내주는 2차원 벡터를 말한다.In other words, a motion vector refers to a two-dimensional vector representing an offset of a coordinate of a reference frame or a reference field from coordinates of a current picture or a field for motion compensation of an image.
현재 표준화가 진행중인 MPEC-4에서 완전한 픽셀의 움직임 예측(inerger pixel motion estimation)시에 수행되는 8×8 블록별 탐색은 16×16 움직임벡터를 중심으로 ±2픽셀의 탐색윈도우(search window)내에서 수행한다.In the MPEC-4, which is currently being standardized, the 8x8 block search performed during the inner pixel motion estimation is performed within a search window of ± 2 pixels around a 16x16 motion vector. Perform.
따라서 특정 메크로블록(macroblock)이 8×8모드로 선택되었을 때, 메크로블록내의 4블록에 대한 각 움직임벡터는 일정한 바운드(boundary)내에 모두 들어오게 된다.Thus, when a particular macroblock is selected in 8x8 mode, each motion vector for the four blocks in the macroblock is all within a certain bound.
도 1은 종래기술에 따른 8×8 모드로 선택된 메크로블록의 4블록에 대한 움직임벡터가 가리킬 수 있는 바운드를 나타내었다.FIG. 1 shows a bound that a motion vector for four blocks of a macroblock selected in the 8 × 8 mode according to the prior art can point to.
이러한 4개의 움직임벡터들의 바운드는 움직임벡터의 코딩효율을 높이는데 크게 기여한다.The bounds of these four motion vectors greatly contribute to improving the coding efficiency of the motion vectors.
움직임벡터는 메크로블록당 최대 4개까지 나올 수 있는데 이를 그냥 전송하게 되면 비트량이 많기 때문에 바로 전메크로블록의 움직임벡터와의 차이만을 가변길이 부호화(VLC : Variable Length Coding)하여 전송한다.Up to four motion vectors can be obtained per macroblock. If they are simply transmitted, a large amount of bits can be used to transmit only the difference from the motion vector of all the macroblocks by variable length coding (VLC).
즉, 인접한 메크로블록간 움직임벡터는 상호 연관성이 많기 때문에 메크로블록 개개의 움직임벡터를 코딩하는 것 보다 이전의 움직임벡터와의 차분치를 코딩하는 것이 비트량을 줄일 수 있기 때문이다.That is, since the motion vectors between adjacent macroblocks are highly correlated, coding a difference value with a previous motion vector can reduce the bit amount rather than coding individual motion vectors for each macroblock.
또한, 현재 표준화가 진행중인 MPEG-4에서는 보다 효율적으로 움직임벡터를 코딩하기 위해서 단순히 이전의 메크로블록의 움직임벡터와의 차분치를 구해 코딩을 하는 것이 아니라 주변 움직임벡터와의 연관성을 더욱 이용하기 위해 도 2에서와 같이 3개의 후보 움직임벡터를 정의하고, 이중에서 중간값을 선택하여 현재의 메크로블록의 움직임벡터와의 차분치를 코딩하는 방법을 사용하고 있다.In addition, in order to more efficiently code a motion vector, MPEG-4, which is currently being standardized, does not simply obtain a difference value from a motion vector of a previous macroblock and codes the motion vector. As shown in Fig. 3, three candidate motion vectors are defined, and a method of coding a difference value with a motion vector of the current macroblock by selecting an intermediate value among them is used.
그 이유는 MPEG-2에서의 움직임벡터 코딩방법을 이용할 경우, 화상의 경계부분과 같이 메크로블록간의 연관성이 떨어지는 부분에서 이전의 메크로블록의 움직임벡터와 현재 메크로블록의 움직임벡터의 차분치가 커질경우가 발생하여 코딩효율을 저하시키기 때문이다.The reason for this is that when the motion vector coding method in MPEG-2 is used, the difference between the motion vector of the previous macroblock and the motion vector of the current macroblock becomes large in a portion where the correlation between the macroblocks is poor, such as a boundary of an image. This is because it lowers the coding efficiency.
따라서, MPEG-4에서는 후보 움직임벡터를 3개로하여 그중 중간값을 최종 후보 움직임벡터로 선택하여 차분치를 구함으로써 움직임벡터간의 상호연관성을 향상시키고자 하였다.Accordingly, in MPEG-4, three candidate motion vectors are selected, and an intermediate value is selected as a final candidate motion vector to obtain a difference value, thereby improving correlation between the motion vectors.
도 2는 종래기술에 따른 메크로블록 내에서의 움직임벡터를 예측하기 위한 3개의 후보 움직임벡터를 나타내었다.2 illustrates three candidate motion vectors for predicting a motion vector in a macroblock according to the prior art.
도 2에서와 같이, 4개의 각 블록에 해당하는 움직임벡터의 성분들은 인접한 3개의 후보 움직임벡터의 중간값을 예측값으로하여 차성분이 부호화된다.As shown in FIG. 2, the components of the motion vectors corresponding to each of the four blocks are encoded by using the median value of three adjacent candidate motion vectors as a prediction value.
이를 수식으로 표현하면 아래와 같다.If this is expressed as a formula, it is as follows.
PX= Median(MV1X, MV2X, MV3X)P X = Median (MV1 X , MV2 X , MV3 X )
PY= Median(MV1Y, MV2Y, MV3Y)P Y = Median (MV1 Y , MV2 Y , MV3 Y )
MVDX= MVX-PX MVD X = MV X -P X
MVDY= MVY-PY MVD Y = MV Y -P Y
여기서, 상기 MVD는 움직임벡터의 차분치를 표시한다.Here, the MVD indicates a difference value of the motion vector.
도 2에서와 같이 8×8 모드에서의 움직임벡터 예측부호를 보면 중간값 예측치로 사용되는 움직임벡터값이 8×8 모드에서의 움직임벡터 제한범위를 넘게되는 경우는 블록1을 제외하면 블록2에 해당하는 MVD2뿐이다.As shown in FIG. 2, when the motion vector prediction code in the 8 × 8 mode is used, if the motion vector value used as the median predictor value exceeds the motion vector limit in the 8 × 8 mode, the block vector is excluded from
이 경우에 세 개의 움직임벡터 예측 후보중 단 하나만의 8×8모드로 선택된 메크로블록내에 속해 있으므로 중간값으로 구해진 예측치로부터 얻어지는 MVD2의 절대치는 제한범위를 넘을 수 있다.In this case, since only one of the three motion vector prediction candidates belongs to the selected macroblock in 8x8 mode, the absolute value of MVD 2 obtained from the prediction value obtained as the median value may exceed the limit.
이와같이, 제한범위를 넘게되는 경우 즉, 중간값으로 인한 예측치가 제한범위밖에 있는 경우가 발생하는데, 도 3은 움직임벡터의 중간값 예측에서 제한범위를 넘는 경우의 예를 나타낸 구성도이다.As described above, a case in which the limit value is exceeded, that is, the predicted value due to the median value is outside the limit range, is illustrated in FIG. 3.
이상과 같이, 종래 움직임벡터 코딩방법은 하나의 움직임벡터를 예측하기 위해서는 인접한 3개의 움직임벡터의 중간값을 최종 후보 움직임벡터로 선택하여 차분치를 구함므로써 움직임벡터간의 상호연관성을 향상시킨다.As described above, in order to predict one motion vector, the conventional motion vector coding method improves the correlation between motion vectors by selecting a median value of three adjacent motion vectors as a final candidate motion vector and obtaining a difference value.
그러나 종래기술에 따른 움직임벡터 코딩방법은 다음과 같은 문제점이 있었다.However, the motion vector coding method according to the prior art has the following problems.
기존의 MPEG-2에서 사용하는 코딩방법에 비해 움직임벡터의 차분치를 최소화하기 위해 3개의 인접한 후보 움직임벡터중 중간값을 최종 후보 움직임벡터로 선택하여 움직임벡터의 차분치를 최소화하는 잇점이 있었다. 하지만, 일률적으로 중간값을 선택하는 것이 최소의 차분치를 구하는 것은 아니기 때문에 움직임이 많고, 복잡한 영상에 있어서는 코딩의 효율성이 저하되는 문제점이 있었다.In order to minimize the difference of the motion vectors compared to the conventional coding method of MPEG-2, it is advantageous to minimize the difference of the motion vectors by selecting the intermediate value among the three adjacent candidate motion vectors as the final candidate motion vector. However, since uniformly selecting the median does not determine the minimum difference, there is a problem that there is a lot of motion and the coding efficiency is deteriorated in a complex image.
본 발명은 상기한 문제점을 해결하기 위해 안출한 것으로서, 후보 움직임벡터를 3개에서 2개로 정의하고, 그중 모션벡터의 코딩에 적은 비트량을 갖는 하나를 최종적으로 후보 움직임벡터로 선택하여 코딩함으로써, 코딩량을 최소화하여 압축효율을 높이는 움직임벡터 코딩방법을 제공하는데 그 목적이 있다.The present invention has been made to solve the above problems, by defining three to two candidate motion vectors, and one of them having a small bit amount in the coding of the motion vector, finally selected and coded as a candidate motion vector, It is an object of the present invention to provide a motion vector coding method that minimizes the coding amount and increases compression efficiency.
도 1은 종래기술에 따른 8×8모드로 선택된 메크로블록의 4개의 블록 움직임벡터가 가리킬 수 있는 바운드를 나타낸 도면1 is a view showing a bound that can be pointed to the four block motion vectors of a macroblock selected in the 8 × 8 mode according to the prior art
도 2a 내지 2d는 종래기술에 따른 8×8모드 메크로블록에서의 움직임벡터 예측후보를 도시한 도면2a to 2d are diagrams showing motion vector prediction candidates in an 8x8 mode macroblock according to the prior art.
도 3은 종래 움직임벡터의 중간값 예측에서 제한범위를 넘는 경우의 예를 나타낸 구성도3 is a configuration diagram illustrating an example in which a limit value is exceeded in a median prediction of a conventional motion vector.
도 4 본 발명에 따른 움직임벡터 예측후보를 나타낸 도면4 is a diagram showing a motion vector prediction candidate according to the present invention.
도 5는 본 발명의 움직임벡터 코딩방법에 따른 움직임벡터 코딩에서 MVD코드비트와 모드비트의 비트스트림 신텍스(syntax)5 is a bitstream syntax of MVD code bits and mode bits in motion vector coding according to the motion vector coding method of the present invention.
도 6a 내지 6b는 본 발명의 움직임벡터 코딩방법에 따른 모드비트 감소의 예를 엔코더 및 디코더 측면에서 나타낸 도면6a to 6b are diagrams illustrating an example of mode bit reduction in terms of encoder and decoder according to the motion vector coding method of the present invention.
도 7은 본 발명의 움직임벡터 코딩방법을 설명하기 위한 플로우챠트7 is a flowchart for explaining a motion vector coding method of the present invention.
상기의 목적을 달성하기 위한 본 발명의 움직임벡터 코딩방법은 MPEG-4의 움직임벡터 코딩에 있어서, 상호 연관성이 가장 높은 인접한 2개의 움직임벡터를 후보 움직임벡터로 정의한 후, 상기 정의된 2개의 후보 움직임벡터중에서 코딩시 가장 적은 비트량을 갖는 하나를 최종 후보 움직임벡터로 선택하는 스텝과, 선택된 최종 후보 움직임벡터와 실제 움직임벡터와의 차분치를 구하고, 구해진 움직임벡터 차분치와 예측모드정보를 디코더쪽으로 전송하는 스텝과, 상기 움직임벡터 차분치를 코딩하기 위한 최소비트율을 추측한 후, 상기 최소비트율을 이용하여 X성분 및 Y성분에 대한 움직임벡터 차분치를 코딩하는 스텝을 포함하여 이루어지는 것을 특징으로 한다.In the motion vector coding method of the present invention for achieving the above object, in the motion vector coding of MPEG-4, two adjacent motion vectors having the highest correlation are defined as candidate motion vectors, and then the two candidate motions defined above are defined. Selecting the one having the least bit amount as the final candidate motion vector in coding among the vectors, calculating the difference value between the selected final candidate motion vector and the actual motion vector, and transmitting the obtained motion vector difference value and the prediction mode information to the decoder. And estimating a minimum bit rate for coding the motion vector difference value, and then coding a motion vector difference value for the X component and the Y component using the minimum bit rate.
이하, 본 발명의 움직임벡터 코딩방법을 첨부된 도면을 참조하여 설명하기로 한다.Hereinafter, a motion vector coding method of the present invention will be described with reference to the accompanying drawings.
먼저, 본 발명에 따른 움직임벡터 코딩방법에 의하면, 2개의 후보 움직임벡터중에서 움직임벡터의 코딩에 가장 적은 비트율을 가지는 하나를 선택하여 최종 후보 움직임벡터로 정의한다.First, according to the motion vector coding method according to the present invention, one of the two candidate motion vectors having the lowest bit rate for coding the motion vector is selected as the final candidate motion vector.
그리고 움직임벡터 차분치(실제 움직임벡터와 정의된 움직임벡터와의 차이값)와 예측모드정보를 보낸다.Then, the motion vector difference value (difference value between the actual motion vector and the defined motion vector) and the prediction mode information are sent.
도 4는 본 발명에 따른 2개의 후보 움직임벡터를 도시한 것이다.4 illustrates two candidate motion vectors according to the present invention.
도 4에 도시한 바와같이, 현재의 움직임벡터 주변의 2개의 후보 움직임벡터중 하나를 선택하게 된다.As shown in Fig. 4, one of two candidate motion vectors around the current motion vector is selected.
여기서, MV는 현재의 움직임벡터이고, MV1은 이전의 움직임벡터이다. 그리고 MV2는 이후의 움직임벡터를 나타낸다.Here, MV is the current motion vector and MV1 is the previous motion vector. And MV2 represents the motion vector after.
한편, 도 5는 본 발명에 따른 MVD코드비트와 모드비트의 비트스트림 신텍스(bitstream syntax)를 도시하였다.Meanwhile, FIG. 5 illustrates a bitstream syntax of MVD code bits and mode bits according to the present invention.
움직임벡터의 코딩은 X와 Y성분에 대해서 각각 실시한다.Coding of the motion vector is performed on the X and Y components, respectively.
그리고 모드비트는 MVD를 코딩할 때 2개의 후보 움직임벡터중에서 어느 후보를 사용하였는지를 가리킨다.The mode bits indicate which candidates are used among two candidate motion vectors when MVD is coded.
여기서, 모드비트에 앞서는 MVD최소비트율은 MVD최소비트 정보를 이용함으로써 감소시킬 수 있다.Here, the MVD minimum bit rate prior to the mode bit can be reduced by using the MVD minimum bit information.
이와같은 모드비트의 감소의 예를 도 6에 도시하였다.An example of such a reduction in mode bits is shown in FIG.
도 6a 내지 6b는 본 발명의 움직임벡터 부호화에 따른 모드비트 감소의 일예를 엔코더 및 디코더측면에서 도시하였다.6A to 6B illustrate an example of mode bit reduction according to the motion vector encoding of the present invention in terms of an encoder and a decoder.
먼저, 도 6a는 엔코더측면에서 도시한 것으로써, MV1=0, MV2=3 그리고 현재블록의 움직임벡터 MV=5일 경우, MV에서 멀리떨어진 MV1과 MV2중 상기 MV와 가장 가까운 MV2를 최종 후보 움직임벡터로 선정한다.First, FIG. 6A illustrates the encoder side. When MV1 = 0, MV2 = 3 and the motion vector MV = 5 of the current block, MV2 closest to the MV2 far from MV2 is the final candidate motion. Select as a vector.
따라서, 최소율 움직임벡터 차이값(MVD min rate)은 2가 된다.Accordingly, the minimum rate motion vector difference value MVD min rate is two.
상기한 바와같이, 엔코더는 최소율 예측에 의해 MVD min rate를 코딩한다.As mentioned above, the encoder codes the MVD min rate by minimum rate prediction.
그 다음, 엔코더는 디코더가 실제 움직임벡터를 검출할 수 있는지를 최소의 정보로 조사한다.The encoder then checks with minimal information whether the decoder can detect the actual motion vector.
이어, 도 6b는 디코더측면에서 도시한 것으로써, 본 발명의 실시예에서는 단지 2개의 후보가 있음을 알 수 있다.6B is shown from the decoder side, it can be seen that there are only two candidates in the embodiment of the present invention.
그러나 후보 1은 엔코더로부터 받은 MVD min rate로 디코딩해보면, 실제 MVD min rate와는 차이가 있으므로 실제 움직임벡터가 아님을 알 수 있다.However, when decoding the
따라서, 이 경우에 엔코더는 2개의 후보 움직임벡터중에서 실제 움직임벡터을 찾기 위한 모드비트를 디코더에 보낼 필요가 없다.Therefore, in this case, the encoder does not need to send a mode bit to the decoder to find the actual motion vector among the two candidate motion vectors.
또한, 2개의 후보 움직임벡터가 같은 값을 가진 경우에도 추가 모드비트를 보낼 필요가 없다.In addition, even if two candidate motion vectors have the same value, it is not necessary to send an additional mode bit.
그리고, 2개의 움직임벡터 차분치를 코딩할 때 발생하는 비트량이 같을경우에는 우선순위를 한 쪽에 주므로써, 추가 모드비트를 보낼필요가 없게 된다.If the amount of bits generated when coding two motion vector difference values is the same, priority is given to one side, so that no additional mode bits need to be sent.
이상과 같이 추가 모드비트없이 디코딩이 가능한 경우에 한해서는 추가 모드비트를 발생시키지 않게하여 쓸데없는 비트량 증가를 억제한다.As described above, only when the decoding can be performed without the additional mode bits, the additional mode bits are not generated to suppress an unnecessary increase in the amount of bits.
한편, 본 발명에 따른 최소율 예측을 사용한 움직임벡터 X성분은 아래와 같다.Meanwhile, the motion vector X component using the minimum rate prediction according to the present invention is as follows.
MR MVD coding(MVx, f code, *vlc code mag, *residual, *bitstream)MR MVD coding (MVx, f code, * vlc code mag, * residual, * bitstream)
{{
/*Find the minimum rate predictor between two neighboring candidates. *// * Find the minimum rate predictor between two neighboring candidates. * /
R1x=RATE(MVx-MV1x),R1x = RATE (MVx-MV1x),
R2X=RATE(MVx-MV2x),R2X = RATE (MVx-MV2x),
Rx min=MIN(R1x,R2x)Rx min = MIN (R1x, R2x)
Px min rate=MVix corresponding to Rx min.Px min rate = MVix corresponding to Rx min.
(At the same rate, the MV1 has the highest priority for Px min rate.)(At the same rate, the MV1 has the highest priority for Px min rate.)
MVDx min rate=MVx Px min rateMVDx min rate = MVx Px min rate
/*Coding MVDx min rate. *// * Coding MVDx min rate. * /
MVD encoding(MVDx min rate, f code, vlc code mag, residual, bitstream);MVD encoding (MVDx min rate, f code, vlc code mag, residual, bitstream);
}}
상기의 알고리즘은 최소율 예측을 이용한 X성분의 코딩방법이고, Y성분의 코딩방법또한 X성분의 코딩방법과 동일하다.The above algorithm is a coding method of the X component using the minimum rate prediction, and the coding method of the Y component is also the same as the coding method of the X component.
이상과 같은 본 발명의 전반적인 움직임벡터 코딩방법은 다음과 같다.The overall motion vector coding method of the present invention as described above is as follows.
max=MAX(MV1x,MV2x),max = MAX (MV1x, MV2x),
min=MIN(MV1x,MV2x)min = MIN (MV1x, MV2x)
{ /*Minimum rate prediction is applied.*/{/ * Minimum rate prediction is applied. * /
/*Minimum rate prediction and the corresponding MVDx min rate coding*/Minimum rate prediction and the corresponding MVDx min rate coding * /
MR MVD coding(MVx, f code, &vlc code mag, &residual, bs);MR MVD coding (MVx, f code, & vlc code mag, & residual, bs);
/*Determine MODEx.*// * Determine MODEx. * /
/*Step1:Evaluate two MV candidates.*// * Step1: Evaluate two MV candidates. * /
Candidate1x=MVD decoding(f code, vlc code mag, residual, MV1x);Candidate1x = MVD decoding (f code, vlc code mag, residual, MV1x);
Candidate2x=MVD decoding(f code, vlc code mag, residual, MV2x);Candidate2x = MVD decoding (f code, vlc code mag, residual, MV2x);
/*Step2:Check if "vlc code mag ts" and "residual ts" resulting from Candidateix(i=1,2) encoding, have the same values as "vlc code mag" and "residual", respectively.*// * Step2: Check if "vlc code mag ts" and "residual ts" resulting from Candidateix (i = 1,2) encoding, have the same values as "vlc code mag" and "residual", respectively. * /
candidate num=0;candidate num = 0;
MR MVD coding(Candidate1x, f code, &vlc code mag ts, &residual ts,ts);MR MVD coding (Candidate1x, f code, & vlc code mag ts, & residual ts, ts);
if(vlc code mag ts=vlc code mag &&residual ts=residual)if (vlc code mag ts = vlc code mag && residual ts = residual)
candidate num++;candidate num ++;
MR MVD coding(Candidate2x, f code, &vlc code mag ts, &residual ts,ts);MR MVD coding (Candidate2x, f code, & vlc code mag ts, & residual ts, ts);
if(vlc code mag ts=vlc code mag &&residual ts=residual)if (vlc code mag ts = vlc code mag && residual ts = residual)
candidate num++;candidate num ++;
/*Step3:Determine the MODEx and code it.*// * Step3: Determine the MODEx and code it. * /
if(candidate num==1)if (candidate num == 1)
No bit allocated for MODEx;No bit allocated for MODEx;
else if(candidate num==2)else if (candidate num == 2)
1 bit for MODEx1 bit for MODEx
}}
이상과 같은 알고리즘에 따른 본 발명의 움직임벡터 코딩방법을 플로우챠트를 참조하여 설명하면 다음과 같다.The motion vector coding method of the present invention according to the algorithm described above will be described with reference to a flowchart.
도 7은 본 발명의 움직임벡터 코딩방법을 설명하기 위한 플로우챠트이다.7 is a flowchart for explaining a motion vector coding method of the present invention.
도 7에 도시한 바와같이, 상호 연관성이 가장 높은 인접한 2개의 움직임벡터를 후보 움직임벡터로 정의한다(S701).As shown in Fig. 7, two adjacent motion vectors having the highest correlation are defined as candidate motion vectors (S701).
이후, 상기 정의된 2개의 후보 움직임벡터중에서 코딩시 가장 적은 비트량을 갖는 하나를 최종 후보 움직임벡터로 선택한다(S702).Thereafter, one of the two candidate motion vectors defined above having the smallest bit amount in coding is selected as the final candidate motion vector (S702).
이어, 최종 후보 움직임벡터와 실제 움직임벡터와의 차분치를 구하고(S703),구해진 움직임벡터 차분치와 예측모드정보를 디코더쪽으로 전송한다(S704).Next, the difference value between the final candidate motion vector and the actual motion vector is obtained (S703), and the obtained motion vector difference value and the prediction mode information are transmitted to the decoder (S704).
그리고 상기 움직임벡터 차분치를 코딩하기 위한 최소비트율을 추측한 후(S705), 상기 최소비트율을 이용하여 X성분 및 Y성분에 대한 움직임벡터 차분치를 코딩(S706)하면, 본 발명에 따른 움직임벡터의 코딩이 이루어진다.After estimating the minimum bit rate for coding the motion vector difference value (S705), if the motion vector difference values for the X component and the Y component are coded using the minimum bit rate (S706), the motion vector coding according to the present invention is performed. This is done.
이상 상술한 바와같이 본 발명의 움직임벡터 코딩방법은 2개의 후보 움직임벡터중에서 최종 후보 움직임벡터를 선택한 후, 그 차분치와 모드비트를 코딩하게 되므로 코딩량이 감소하게 되어 동화상 압축에 있어서 비트율을 줄여 압축율을 높이는 효과가 있다.As described above, in the motion vector coding method of the present invention, after selecting the final candidate motion vector from two candidate motion vectors, the difference value and the mode bit are coded, so that the coding amount is reduced, thereby reducing the bit rate in moving picture compression. It is effective to increase.
Claims (3)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019970079122A KR100293445B1 (en) | 1997-12-30 | 1997-12-30 | Method for coding motion vector |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019970079122A KR100293445B1 (en) | 1997-12-30 | 1997-12-30 | Method for coding motion vector |
Publications (2)
Publication Number | Publication Date |
---|---|
KR19990058929A KR19990058929A (en) | 1999-07-26 |
KR100293445B1 true KR100293445B1 (en) | 2001-08-07 |
Family
ID=37527288
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019970079122A KR100293445B1 (en) | 1997-12-30 | 1997-12-30 | Method for coding motion vector |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100293445B1 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100865034B1 (en) | 2002-07-18 | 2008-10-23 | 엘지전자 주식회사 | Method for predicting motion vector |
-
1997
- 1997-12-30 KR KR1019970079122A patent/KR100293445B1/en not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
KR19990058929A (en) | 1999-07-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100249223B1 (en) | Method for motion vector coding of mpeg-4 | |
KR100508798B1 (en) | Method for predicting bi-predictive block | |
KR100774296B1 (en) | Method and apparatus for encoding and decoding motion vectors | |
JP5081305B2 (en) | Method and apparatus for interframe predictive coding | |
JP4724351B2 (en) | Image encoding apparatus, image encoding method, image decoding apparatus, image decoding method, and communication apparatus | |
US20130128980A1 (en) | Motion vector predictive encoding method, motion vector decoding method, predictive encoding apparatus and decoding apparatus, and storage media storing motion vector predictive encoding and decoding programs | |
US7088772B2 (en) | Method and apparatus for updating motion vector memories | |
CN102077599B (en) | Apparatus and method for high quality intra mode prediction in a video coder | |
KR20010082934A (en) | Motion estimation method and device | |
KR100597397B1 (en) | Method For Encording Moving Picture Using Fast Motion Estimation Algorithm, And Apparatus For The Same | |
KR20010083717A (en) | Motion estimation method and appratus | |
CN112236995A (en) | Multi-hypothesis motion compensation techniques | |
JP3866624B2 (en) | Moving picture encoding method, moving picture decoding method, moving picture encoding apparatus, and moving picture decoding apparatus | |
KR100293445B1 (en) | Method for coding motion vector | |
KR100602148B1 (en) | Method for motion picture encoding use of the a quarter of a pixel motion vector in mpeg system | |
JP4642033B2 (en) | A method for obtaining a reference block of an image by an encoding method in which the number of reference frames is fixed. | |
KR100281924B1 (en) | Interlaced Schematic and Image Information Coding Method and Encoder | |
KR100457065B1 (en) | Motion vector generator for video signals | |
KR100240620B1 (en) | Method and apparatus to form symmetric search windows for bidirectional half pel motion estimation | |
KR100774297B1 (en) | Method and apparatus for decoding motion vectors | |
KR100242653B1 (en) | Intra-frame coding method and apparatus thereof | |
KR100196827B1 (en) | Method for compressing motion vector in image encoder | |
KR100207397B1 (en) | Method and apparatus for estimating motion of image in image encoder | |
KR0174441B1 (en) | Full motion image encoder by using adaptive motion compensation | |
WO2024211098A1 (en) | Sub-block based motion vector refinement |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20050322 Year of fee payment: 5 |
|
LAPS | Lapse due to unpaid annual fee |