KR100890513B1 - Method of determining motion vector - Google Patents
Method of determining motion vector Download PDFInfo
- Publication number
- KR100890513B1 KR100890513B1 KR1020080089781A KR20080089781A KR100890513B1 KR 100890513 B1 KR100890513 B1 KR 100890513B1 KR 1020080089781 A KR1020080089781 A KR 1020080089781A KR 20080089781 A KR20080089781 A KR 20080089781A KR 100890513 B1 KR100890513 B1 KR 100890513B1
- Authority
- KR
- South Korea
- Prior art keywords
- list
- picture
- motion vector
- direct mode
- frame
- 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
- H04N19/513—Processing of motion vectors
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/577—Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
본 발명에 따른 B 픽쳐의 다이렉트 모드 모션벡터 연산 방법은, 동영상 코딩 시스템에서 B(bi-predictive) 픽쳐의 다이렉트 모드 모션벡터를 추출함에 있어, B 픽쳐의 다이렉트 모드의 list 1 레퍼런스 픽쳐(list 1 reference picture for direct mode)가 상기 B 픽쳐 보다 시간적으로 앞 또는 뒤에 위치하는 경우에, 상기 다이렉트 모드의 list 1 레퍼런스 픽쳐에 있는 동일 위치의 블록(co-located block )이 가지고 있는, 모션벡터의 모드(list 0 및/또는 list 1)와 관계없이 결정된 모션벡터를 스케일링하여, list 0 모션벡터(MVF)와 list 1 모션벡터(MVB)를 유도하여 B 픽쳐의 다이렉트 모드 모션벡터를 연산한다.In the direct mode motion vector calculation method of a B picture according to the present invention, in extracting a direct mode motion vector of a B (bi-predictive) picture in a video coding system, a list 1 reference picture of a direct mode of a B picture (list 1 reference) When the picture for direct mode is located before or after the B picture in time, the mode of the motion vector, which is contained in the co-located block in the list 1 reference picture of the direct mode. The direct motion vector of the B picture is calculated by deriving the list 0 motion vector MV F and the list 1 motion vector MV B by scaling the determined motion vector regardless of 0 and / or list 1).
또한, 본 발명에 따른 B 픽쳐의 다이렉트 모드 모션벡터 연산 방법은, list 1 레퍼런스 픽쳐에 있는 동일 위치의 블록이 갖는 모션벡터가 가리키는 레퍼런스 픽쳐를 다이렉트 모드의 list 0 레퍼런스 픽쳐(list 0 reference picture for direct mode)로 결정하여 상기 B 픽쳐의 다이렉트 모드의 모션벡터를 연산하는 것을 특징으로 한다.In addition, the direct mode motion vector calculation method of the B picture according to the present invention includes a list 0 reference picture in direct mode that the reference picture indicated by the motion vector of the block having the same position in the list 1 reference picture. mode) to calculate the motion vector of the direct mode of the B picture.
Description
본 발명은 동영상 코딩 방법에 관한 것으로서, 특히 차세대 동영상 압축 기술에 정의된 B(Bi-predictive) 픽쳐에서의 모션벡터 결정 방법에 관한 것이다.BACKGROUND OF THE
종래 B 픽쳐는 포워드(forward), 백워드(backward), 양방향(bi-directional ), 다이렉트(direct), 그리고 인트라(intra) 모드 등 5 가지 예측모드를 가지고 있다. 여기에서 포워드, 백워드, 양방향 모드는 모드 이름에 방향 정보를 내포하고 있기 때문에 모드 이름을 보고 모션벡터의 방향성을 파악할 수 있다. 그리고, 특히 다이렉트 모드는 인접한 두 픽쳐 사이에 모션 연속성이 일정하게 유지된다는 시간적 중복성(temporal redundancy) 특성을 이용하여 인접 픽쳐에 있는 동일 위치의 블록이 갖는 모션으로부터 양방향의 모션벡터 두개를 유도하게 된다. 이러한 다이렉트 모드는 모션정보를 디코더에 전송하지 않기 때문에 비트율을 감소시킬 수 있는 장점이 있다. Conventional B pictures have five prediction modes, such as forward, backward, bi-directional, direct, and intra modes. Here, the forward, backward, and bidirectional modes contain direction information in the mode name, so that the direction of the motion vector can be determined by looking at the mode name. In particular, the direct mode derives two bidirectional motion vectors from a motion of a block in the same position in a neighboring picture by using a temporal redundancy characteristic that motion continuity between two adjacent pictures is kept constant. Since the direct mode does not transmit motion information to the decoder, there is an advantage that the bit rate can be reduced.
한편, H.264 또는 MPEG-4 part 10과 같은 차세대 동영상 압축 기술에서의 B 픽쳐는 B 픽쳐가 레퍼런스 픽쳐로서 사용되는 것을 허용하기 때문에 B 픽쳐는 레퍼런스 픽쳐 버퍼에 저장될 수 있는 특징이 있다. 또한, B 픽쳐의 예측 모드로서 list 0, list 1, 쌍예측(bi-predictive), 다이렉트(direct), 그리고 인트라(intra) 모드 등을 가지고 있다. On the other hand, the B picture in a next-generation video compression technology such as H.264 or MPEG-4
여기서, List 0 모드는 종래의 포워드 모드와 비슷한 모드로서, 모션정보인 레퍼런스 픽쳐 인덱스와 모션벡터 차는 각각 'ref_idx_fwdl0'와 'mvd_l0' 에 표시된다. List 1 모드도 종래 백워드 모드와 비슷하고 모션정보는 각각 ref_idx_l1과 mvd_l1 에 표시된다. 쌍예측 모드는 두 개의 레퍼런스 픽쳐를 갖게 되고 두 레퍼런스 픽쳐의 위치는 B 픽쳐에 비해 모두 시간적으로 앞에 위치하거나 모두 뒤에 위치할 수도 있고, 또는 B 픽쳐를 중심으로 앞뒤로 존재할 수도 있다. 이때 두 레퍼런스 픽쳐 인덱스와 모션벡터 차는 각각 ref_idx_l0, ref_idx_l1, mvd_l0, mvd_l1에 표시되고, 각 레퍼런스 픽쳐는 시간적 위치 정보인 POC(picture order count) 라는 데이터를 갖고 있다. Here, the
그리고, 다이렉트 모드는 모션벡터를 유도하기 위해 공간적 기법과 시간적 기법 중 한가지 기법을 선택하여 모션벡터를 구한다. 공간적 기법은 코딩하고자 하는 매크로블록의 주변 블록들로부터 list 0 및 list 1의 레퍼런스 픽쳐 인덱스와 모션벡터를 유도해내는 기법이다. 한편, 시간적 기법은 종래 B 픽쳐에서 사용되는 방법으로써 다이렉트 모드의 list 1 레퍼런스 픽쳐(list 1 reference picture for direct mode)에 있는 동일 위치의 블록이 갖고 있는 list 0 모션 벡터를 스케일링하여 list 0 모션벡터(MVF)와 list 1 모션벡터 (MVB)를 유도한다. 여기서 다이렉트 모드의 list 1 레퍼런스 픽쳐는 list 1 예측을 위한 인덱스가 0인 픽쳐이고, 다이 렉트 모드의 list 0 레퍼런스 픽쳐는 list 1 레퍼런스 픽쳐에 있는 동일 위치의 블록이 갖는 list 0 레퍼런스 픽쳐를 사용한다. The direct mode selects one of a spatial technique and a temporal technique to derive the motion vector. The spatial technique is a technique of deriving the reference picture index and the motion vector of
도 1은 사용 가능한 list 0와 list 1 레퍼런스 픽쳐 수(또는 short-term buffer 크기)가 6일 때, IBBBP 패턴에서의 각 B 픽쳐에 대한 list 0 예측을 위한 디폴트 인덱스, list 1 예측을 위한 디폴트 인덱스 및 다이렉트 모드의 list 1 레퍼런스 픽쳐를 각각 보여주고 있다. 여기에서 list 0 예측을 위한 디폴트 인덱스와 list 1 예측을 위한 디폴트 인덱스는 디코딩 순서와 관계없이 이미 디코딩된 레퍼런스 픽쳐의 output 순서, 즉 POC 값에 의해 인덱싱이 이루어진다. 도 1에서는 모든 B 픽쳐가 시간적으로 뒤에 따라나오는 P 픽쳐를 다이렉트 모드의 list 1 레퍼런스 픽쳐로써 사용하고 있다. 1 shows a default index for
한편, 도 2는 오직 B 픽쳐만을 사용하는 IBBB 패턴에서의 각 B 픽쳐에 대한 list 0 예측을 위한 디폴트 인덱스, list 1 예측을 위한 디폴트 인덱스 및 다이렉트 모드의 list 1 레퍼런스 픽쳐를 각각 보여준다. 도 2의 (a)는 코딩하는 B 픽쳐가 B8 일 때, list 1의 인덱스 0를 갖는 시간적으로 앞에 위치하는 B5가 다이렉트 모드의 list 1 레퍼런스 픽쳐가 되고, (b)에서 처럼 다음 디코딩 순서인 B7에 대한 다이렉트 모드의 list 1 레퍼런스 픽쳐는 시간적으로 뒤에 위치한 B8이 된다. 마지막으로 (c)와 같이 다음 디코딩 순서인 B9에 대한 다이렉트 모드의 list 1 레퍼런스 픽쳐는 시간적으로 앞에 위치한 B7이 된다.Meanwhile, FIG. 2 shows a default index for
결론적으로, 도 1과 도 2를 통하여 살펴본 바에 의하면, 다이렉트 모드의 list 1 레퍼런스 픽쳐는 코딩하려는 B 픽쳐보다 시간적으로 뒤에 위치한 P 또는 B 픽쳐가 될 수도 있으며, 또한 시간적으로 앞에 위치한 B 픽쳐가 될 수 있다. 1 and 2, the
도 3은 다이렉트 모드의 list 1 레퍼런스 픽쳐가 B 픽쳐보다 시간적으로 뒤에 위치할 경우에 동일 위치의 블록(co-located block)이 가질 수 있는 모드를 보여주고 있다. 이때, list 1 레퍼런스 픽쳐는 P 픽쳐 또는 B 픽쳐가 될 수 있으므로 list 1 레퍼런스 픽쳐의 동일 위치에 있는 블록은 한 개 또는 두 개의 모션벡터를 갖거나 인트라 모드를 갖게된다. H.264 또는 MPEG-4 part 10과 같은 차세대 동영상 압축기술은 슬라이스 레벨에서 레퍼런스 픽쳐 인덱스를 리오더링(reordering)하는 것이 허용되므로 list 1 예측을 위한 인덱스 0을 B 픽쳐 바로 뒤에 있는 픽쳐에 할당할 수 있다. 즉, list 1 레퍼런스 픽쳐는 B 픽쳐 바로 뒤에 존재할 수 있으므로 동일 위치의 블록이 갖는 모션벡터는 앞 또는 뒤 방향을 향할 수 있다.FIG. 3 illustrates a mode that a co-located block may have when the
그리고, 도 4는 다이렉트 모드의 list 1 레퍼런스 픽쳐가 B 픽쳐보다 시간적으로 앞에 위치할 경우에 동일 위치의 블록이 가질 수 있는 모드를 보여주고 있다. 앞에서와 같이 동일 위치의 블록은 한 개 또는 두 개의 모션벡터를 갖거나 인트라 모드를 갖는다. 이때 list 1 레퍼런스 픽쳐와 B 픽쳐 사이에 다른 레퍼런스 픽쳐가 존재할 수 있으므로 모션벡터 방향은 시간적으로 앞과 뒤를 향할 수 있다.4 illustrates a mode that a block having the same position may have when the
도 3 및 도 4에 나타낸 바와 같이, 다이렉트 모드의 list 1 레퍼런스 픽쳐는 다양한 예측 모드를 가질 수 있으므로, 이와 같은 다양한 경우가 고려된 다이렉트 모드의 모션벡터 연산 방법이 모색되어야 할 필요성이 발생된다. As shown in FIG. 3 and FIG. 4, since the
본 발명은, 차세대 동영상 압축 기술에 정의된 B(Bi-predictive) 픽쳐에서 다이렉트 모드 모션벡터 추출 기법을 제시하여, 다이렉트 모드가 매크로블록의 예측 모드로서 선택될 가능성을 높임으로서 B 픽쳐 코딩 효율(coding efficiency)을 향상시킬 수 있는 B 픽쳐의 다이렉트 모드 모션벡터 결정 방법을 제공함에 그 목적이 있다.The present invention proposes a direct mode motion vector extraction technique in B (Bi-predictive) pictures defined in the next-generation video compression technology, thereby increasing the likelihood that the direct mode is selected as the prediction mode of the macroblock. An object of the present invention is to provide a method for determining a direct mode motion vector of a B picture that can improve efficiency.
상기의 목적을 달성하기 위하여 본 발명에 따른 B 픽쳐의 다이렉트 모드 모션벡터 연산 방법은, list 1 레퍼런스 픽쳐에 있는 동일 위치의 블록이 list 0, list 1 모션벡터를 가지고 있으면 다이렉트 모드의 모션벡터를 유도하기 위해 사용될 모션벡터는 두 가지 방법에 의해 list 0 또는 list 1 모션벡터를 선택하는 점에 그 특징이 있다. In order to achieve the above object, the direct mode motion vector calculation method of the B picture according to the present invention derives the motion vector of the direct mode when the block having the same position in the
여기서 본 발명에 의하면, list 0, list 1 모션벡터 중 동일 위치의 블록이 존재하는 list 1 레퍼런스 픽쳐에서 시간적 거리가 가까운 모션벡터를 다이렉트 모드의 모션벡터를 유도하는 모션벡터로서 선택하고 만일 두 모션벡터가 동일 레퍼런스를 가리키면 list 0 모션벡터를 다이렉트 모드의 모션벡터를 유도하는 모션벡터로서 선택하는 방법이 있고, 다른 방법은 시간적 거리와 관계없이 무조건 list 0 모션벡터를 다이렉트 모드의 모션벡터를 유도하는 모션벡터로서 선택하는 점에 그 특징이 있다. According to the present invention, a motion vector having a close temporal distance from a
또한 본 발명에 의하면, 다이렉트 모드의 모션벡터는 동일위치의 블록이 갖는 list 0 모션벡터로부터 유도된다는 종래 기법을 list 1 레퍼런스 픽쳐의 동일 위치에 있는 블록이 오직 list 1 모션벡터만을 갖고 있는 경우에 적용할 경우, 동일 위치의 블록의 list 0 모션벡터는 0 이므로 다이렉트 모드의 모션벡터는 모두 0이 되는 문제를 발견하고 이것을 해결하기 위해, 본 발명은 동일위치의 블록이 갖는 모드 종류와 관계없이 그 블록이 갖고 있는 모션벡터를 이용하여 다이렉트 모드의 모션벡터를 유도하는 점에 그 특징이 있다.In addition, according to the present invention, the conventional technique that the motion vector of the direct mode is derived from the
여기서 본 발명은, list 1 레퍼런스 픽쳐에 있는 동일 위치의 블록이 오직 list 1 모션벡터만을 갖고 있는 경우에 다이렉트 모션벡터를 구할 수 있는 방법을 제시한다. 첫번째 방법은 다이렉트 모드 모션벡터 계산에 사용될 모션벡터 값을 0 으로 하고, 다이렉트 모드의 list 0 레퍼런스 픽쳐(list 0 reference picture for direct mode)는 시간적으로 B 픽쳐 바로 이전 위치에 존재하는 디코딩된 픽쳐라고 정의하는 것을 특징으로 한다. 두번째 방법은 다이렉트 모드 모션벡터 계산에 사용될 모션벡터 값은 동일위치의 블록이 갖고 있는 list 1 모션벡터를 그대로 이용하고, 대신 다이렉트 모드의 list 0 레퍼런스 픽쳐는 시간적으로 B 픽쳐 바로 이전 위치에 존재하는 디코딩된 픽쳐라고 정의하는 점에 그 특징이 있다. 세번째 방법은 다이렉트 모드 모션벡터 계산에 사용될 모션벡터 값은 동일위치의 블록이 갖고 있는 list 1 모션벡터를 그대로 이용하고, list 1 모션벡터가 가리키고 있는 레퍼런스 픽쳐를 다이렉트 모드의 list 0 레퍼런스 픽쳐로 결정하는 것을 특징으로 한다.Herein, the present invention provides a method for obtaining a direct motion vector when a block having the same position in the
또한 본 발명에 의하면, 종래 기법대로 다이렉트 모드의 list 1 레퍼런스 픽 쳐를 list 1 예측에 사용되는 인덱스가 0 인 픽쳐로서 정의할 경우, B 픽쳐와 인덱스 0인 픽쳐 사이에 다른 픽쳐가 디코딩될 때 인덱스 0인 픽쳐의 모션정보 및 레퍼런스 픽쳐 정보가 유지되어야 하므로 추가적인 메모리 사용이 필수적이지만 본 발명에서는 다이렉트 모드의 list 1 레퍼런스 픽쳐를 가장 최근에 디코딩된 픽쳐로서 정의함으로써 추가적인 메모리 사용이 절약될 수 있는 특징이 있다.In addition, according to the present invention, when the
또한 본 발명에 의하면, 동영상 코딩 시스템에서 B(bi-predictive) 픽쳐의 다이렉트 모드 모션벡터를 추출함에 있어, B 픽쳐의 다이렉트 모드의 list 1 레퍼런스 픽쳐가 상기 B 픽쳐 보다 시간적으로 앞에 위치하는 경우에, 상기 다이렉트 모드의 list 1 레퍼런스 픽쳐에 있는 동일 위치의 블록(co-located macroblock)이 가지고 있는 모션벡터를 스케일링하여, list 0 모션벡터(MVF)와 list 1 모션벡터 (MVB)를 유도하여 B 픽쳐의 다이렉트 모드 모션벡터를 연산하는 점에 그 특징이 있다.According to the present invention, when extracting a direct mode motion vector of a B (bi-predictive) picture in a video coding system, when the
여기서 본 발명에 의하면, 상기 B 픽쳐의 매크로블록과 list 1 레퍼런스 픽쳐의 동일 위치에 있는 매크로블록이 모두 프레임(frame) 모드이며, 상기 B 픽쳐의 다이렉트 모드의 list 0 레퍼런스 픽쳐가 list 1 레퍼런스 픽쳐보다 시간적으로 앞에 존재할 경우, 상기 B 픽쳐의 다이렉트 모드의 모션벡터 MVF, MVB는 다음식으로부터 산출되는 점에 그 특징이 있다.According to the present invention, the macroblock of the B picture and the macroblock at the same position of the
MVF = TDB x MV / TDD MV F = TD B x MV / TD D
MVB = (TDB - TDD) x MV / TDD MV B = (TD B -TD D ) x MV / TD D
또는 or
Z = TDB x 256 / TDD MVF = (Z x MV + 128) >> 8Z = TD B x 256 / TD D MV F = (Z x MV + 128) >> 8
W = Z - 256 MVB = (W x MV + 128) >> 8W = Z-256 MV B = (W x MV + 128) >> 8
여기서, TDB는 현재 B 프레임과 list 0 레퍼런스 프레임 사이의 시간적 거리이며, TDD 는 list 1 레퍼런스 프레임과 list 0 레퍼런스 프레임 사이의 시간적 거리이고, MV는 상기 다이렉트 모드의 list 1 레퍼런스 픽쳐에 있는 동일 위치의 블록이 가지고 있는 모션벡터이다.Where TD B is the temporal distance between the current B frame and the
또한 본 발명에 의하면, 상기 B 픽쳐의 매크로블록과 list 1 레퍼런스 픽쳐의 동일 위치에 있는 매크로블록이 모두 프레임 모드이며, 상기 B 픽쳐의 다이렉트 모드의 list 0 레퍼런스 픽쳐가 list 1 레퍼런스 픽쳐보다 시간적으로 뒤에 존재할 경우, 상기 B 픽쳐의 다이렉트 모드의 모션벡터 MVF, MVB는 다음식으로부터 산출되는 점에 그 특징이 있다.According to the present invention, both the macroblock of the B picture and the macroblock at the same position of the
MVF = - TDB x MV / TDD MV F =-TD B x MV / TD D
MVB = - (TDB + TDD) x MV / TDD MV B =-(TD B + TD D ) x MV / TD D
또는 or
Z = - TDB x 256 / TDD MVF = (Z x MV + 128) >> 8Z =-TD B x 256 / TD D MV F = (Z x MV + 128) >> 8
W = Z - 256 MVB = (W x MV + 128) >> 8W = Z-256 MV B = (W x MV + 128) >> 8
여기서, TDB는 현재 B 프레임과 list 0 레퍼런스 프레임 사이의 시간적 거리이며, TDD 는 list 1 레퍼런스 프레임과 list 0 레퍼런스 프레임 사이의 시간적 거리이고, MV는 상기 다이렉트 모드의 list 1 레퍼런스 픽쳐에 있는 동일 위치의 블록이 가지고 있는 모션벡터이다.Where TD B is the temporal distance between the current B frame and the
또한 본 발명에 의하면, 상기 B 픽쳐의 매크로블록과 list 1 레퍼런스 픽쳐의 동일 위치에 있는 매크로블록이 모두 피일드(field) 모드이며, 상기 B 픽쳐의 다이렉트 모드의 list 0 레퍼런스 픽쳐가 list 1 레퍼런스 픽쳐보다 시간적으로 앞에 존재할 경우, 상기 B 프레임의 각 피일드 i에 대한 다이렉트 모드의 모션벡터 MVF,i, MVB ,i는 다음식으로부터 산출되는 점에 그 특징이 있다.According to the present invention, the macroblock of the B picture and the macroblock at the same position of the
MVF ,i = TDB ,i x MVi / TDD ,i MV F , i = TD B , i x MV i / TD D , i
MVB ,i = (TDB ,i - TDD ,i) x MVi / TDD ,i MV B , i = (TD B , i -TD D , i ) x MV i / TD D , i
또는 or
Z = TDB ,i x 256 / TDD ,i MVF ,i = (Z x MVi + 128) >> 8Z = TD B , i x 256 / TD D , i MV F , i = (Z x MV i + 128) >> 8
W = Z - 256 MVB ,i = (W x MVi + 128) >> 8W = Z-256 MV B , i = (W x MV i + 128) >> 8
여기서, TDB ,i는 현재 B 피일드와 list 0 레퍼런스 피일드 사이의 시간적 거리이며, TDD ,i 는 list 1 레퍼런스 피일드와 list 0 레퍼런스 피일드 사이의 시간적 거리이고, MVi는 상기 다이렉트 모드의 list 1 레퍼런스 피일드에 있는 동일 위치의 블록이 가지고 있는 모션벡터이다.Here, TD B , i is the temporal distance between the current B-feed and the
또한 본 발명에 의하면, 상기 B 픽쳐의 매크로블록과 list 1 레퍼런스 픽쳐의 동일 위치에 있는 매크로블록이 모두 피일드(field) 모드이며, 상기 B 픽쳐의 다이렉트 모드의 list 0 레퍼런스 픽쳐가 list 1 레퍼런스 픽쳐보다 시간적으로 뒤에 존재할 경우, 상기 B 프레임의 각 피일드 i에 대한 다이렉트 모드의 모션벡터 MVF,i, MVB ,i는 다음식으로부터 산출되는 점에 그 특징이 있다.According to the present invention, the macroblock of the B picture and the macroblock at the same position of the
MVF ,i = - TDB ,i x MVi / TDD ,i MV F , i =-TD B , i x MV i / TD D , i
MVB ,i = - (TDB ,i + TDD ,i) x MVi / TDD ,i MV B , i =-(TD B , i + TD D , i ) x MV i / TD D , i
또는 or
Z = -TDB ,i x 256 / TDD ,i MVF ,i = (Z x MVi + 128) >> 8Z = -TD B , i x 256 / TD D , i MV F , i = (Z x MV i + 128) >> 8
W = Z - 256 MVB ,i = (W x MVi + 128) >>8W = Z-256 MV B , i = (W x MV i + 128) >> 8
여기서, TDB ,i는 현재 B 피일드와 list 0 레퍼런스 피일드 사이의 시간적 거리이며, TDD ,i 는 list 1 레퍼런스 피일드와 list 0 레퍼런스 피일드 사이의 시간적 거리이고, MVi는 상기 다이렉트 모드의 list 1 레퍼런스 피일드에 있는 동일 위치의 블록이 가지고 있는 모션벡터이다.Here, TD B , i is the temporal distance between the current B-feed and the
또한 본 발명에 의하면, 상기 B 픽쳐의 매크로블록이 피일드 모드이고 list 1 레퍼런스 픽쳐의 동일 위치에 있는 매크로블록이 프레임 모드이며, 상기 B 픽쳐의 다이렉트 모드의 list 0 레퍼런스 픽쳐가 list 1 레퍼런스 픽쳐보다 시간적으로 앞에 존재할 경우, 상기 B 프레임의 각 피일드 i에 대한 다이렉트 모드의 모션벡터 MVF,i, MVB ,i는 다음식으로부터 산출되는 점에 그 특징이 있다.Further, according to the present invention, the macroblock of the B picture is in the shield mode and the macroblock at the same position of the
MVF ,i = TDB ,i x MV / TDD MV F , i = TD B , i x MV / TD D
MVB ,i = (TDB ,i - TDD) x MV / TDD MV B , i = (TD B , i -TD D ) x MV / TD D
또는 or
Z = TDB ,i x 256 / TDD MVF ,i = (Z x MV + 128) >> 8Z = TD B , i x 256 / TD D MV F , i = (Z x MV + 128) >> 8
W = Z - 256 MVB ,i = (W x MV + 128) >> 8W = Z-256 MV B , i = (W x MV + 128) >> 8
여기서, TDB ,i는 현재 B 피일드와 list 0 레퍼런스 피일드 사이의 시간적 거리이며, TDD 는 list 1 레퍼런스 프레임과 list 0 레퍼런스 프레임 사이의 시간적 거리이고, MV는 상기 다이렉트 모드의 list 1 레퍼런스 프레임에 있는 동일 위치의 블록이 가지고 있는 모션벡터이다.Here, TD B , i is the temporal distance between the current B-feed and the
또한 본 발명에 의하면, 상기 B 픽쳐의 매크로블록이 피일드 모드이고 list 1 레퍼런스 픽쳐의 동일 위치에 있는 매크로블록이 프레임 모드이며, 상기 B 픽쳐의 다이렉트 모드의 list 0 레퍼런스 픽쳐가 list 1 레퍼런스 픽쳐보다 시간적으로 뒤에 존재할 경우, 상기 B 프레임의 각 피일드 i에 대한 다이렉트 모드의 모션벡터 MVF,i, MVB ,i는 다음식으로부터 산출되는 점에 그 특징이 있다.Further, according to the present invention, the macroblock of the B picture is in the shield mode and the macroblock at the same position of the
MVF ,i = - TDB ,i x MV / TDD MV F , i =-TD B , i x MV / TD D
MVB ,i = - (TDB ,i + TDD) x MV / TDD MV B , i =-(TD B , i + TD D ) x MV / TD D
또는 or
Z = - TDB ,i x 256 / TDD MVF ,i = (Z x MV + 128) >> 8Z =-TD B , i x 256 / TD D MV F , i = (Z x MV + 128) >> 8
W = Z - 256 MVB ,i = (W x MV + 128) >> 8W = Z-256 MV B , i = (W x MV + 128) >> 8
여기서, TDB ,i는 현재 B 피일드와 list 0 레퍼런스 피일드 사이의 시간적 거리이며, TDD 는 list 1 레퍼런스 프레임과 list 0 레퍼런스 프레임 사이의 시간적 거리이고, MV는 상기 다이렉트 모드의 list 1 레퍼런스 프레임에 있는 동일 위치의 블록이 가지고 있는 모션벡터이다.Here, TD B , i is the temporal distance between the current B-feed and the
또한 본 발명에 의하면, 상기 B 픽쳐의 매크로블록이 프레임 모드이고 list 1 레퍼런스 픽쳐의 동일 위치에 있는 매크로블록이 피일드 모드이며, 상기 B 픽쳐의 다이렉트 모드의 list 0 레퍼런스 픽쳐가 list 1 레퍼런스 픽쳐보다 시간적으로 앞에 존재할 경우, 상기 B 프레임의 다이렉트 모드의 모션벡터 MVF, MVB는 다음식으로부터 산출되는 점에 그 특징이 있다. 여기서 list 1 레퍼런스 프레임의 피일드 1에 있는 동일 위치의 블록이 갖는 모션정보가 다이렉트 모드의 모션벡터를 구하는데 사용된다.According to the present invention, the macroblock of the B picture is a frame mode and the macroblock at the same position of the
MVF = TDB x MV1 / TDD ,1 MV F = TD B x MV 1 / TD D , 1
MVB = (TDB - TDD ,1) x MV1/ TDD ,1 MV B = (TD B -TD D , 1 ) x MV 1 / TD D , 1
또는 or
Z = TDB x 256 / TDD ,1 MVF = (Z x MV1 + 128) >> 8Z = TD B x 256 / TD D , 1 MV F = (Z x MV 1 + 128) >> 8
W = Z - 256 MVB = (W x MV1 + 128) >> 8W = Z-256 MV B = (W x MV 1 + 128) >> 8
여기서, TDB는 현재 B 프레임과 list 0 레퍼런스 프레임 사이의 시간적 거리이며, TDD , 1는 list 1 레퍼런스 프레임의 피일드 1과 list 0 레퍼런스 피일드 사이의 시간적 거리이고, MV1는 상기 list 1 레퍼런스 프레임의 피일드 1에 있는 동일 위치의 블록이 가지고 있는 모션벡터이다.Here, TD B is the temporal distance between the current B frame and the
또한 본 발명에 의하면, 상기 B 픽쳐의 매크로블록이 프레임 모드이고 list 1 레퍼런스 픽쳐의 동일 위치에 있는 매크로블록이 피일드 모드이며, 상기 B 픽쳐의 다이렉트 모드의 list 0 레퍼런스 픽쳐가 list 1 레퍼런스 픽쳐보다 시간적으로 뒤에 존재할 경우, 상기 B 프레임의 다이렉트 모드의 모션벡터 MVF, MVB는 다음식으로부터 산출되는 점에 그 특징이 있다. 여기서 list 1 레퍼런스 프레임의 피일드 1에 있는 동일 위치의 블록이 갖는 모션정보가 다이렉트 모드의 모션벡터를 구하는데 사용된다.According to the present invention, the macroblock of the B picture is a frame mode and the macroblock at the same position of the
MVF = - TDB x MV1 / TDD ,1 MV F =-TD B x MV 1 / TD D , 1
MVB = - (TDB + TDD ,1) x MV1/ TDD ,1 MV B =-(TD B + TD D , 1 ) x MV 1 / TD D , 1
또는 or
Z = - TDB x 256 / TDD ,1 MVF = (Z x MV1 + 128) >> 8Z =-TD B x 256 / TD D , 1 MV F = (Z x MV 1 + 128) >> 8
W = Z - 256 MVB = (W x MV1 + 128) >> 8W = Z-256 MV B = (W x MV 1 + 128) >> 8
*여기서, TDB는 현재 B 프레임과 list 0 레퍼런스 프레임 사이의 시간적 거리이며, TDD , 1는 list 1 레퍼런스 프레임의 피일드 1과 list 0 레퍼런스 피일드 사이의 시간적 거리이고, MV1는 상기 list 1 레퍼런스 프레임의 피일드 1에 있는 동일 위치의 블록이 가지고 있는 모션벡터이다.Where TD B is the temporal distance between the current B frame and the
또한 본 발명에 의하면, 상기 B 픽쳐의 다이렉트 모드의 list 1 레퍼런스 픽쳐의 동일 위치에 있는 매크로블록이 두 개의 모션벡터를 가질 경우에는 하나의 모션벡터(list 0 또는 list 1 모션벡터)를 선택하고, 이 선택된 모션벡터로부터 B 픽쳐의 다이렉트 모드의 모션벡터를 유도하는 점에 그 특징이 있다.According to the present invention, when the macroblock at the same position of the
또한, 상기의 목적을 달성하기 위하여 본 발명에 따른 B 픽쳐의 다이렉트 모드 모션벡터 연산 방법의 다른 실시 예는,In addition, in order to achieve the above object, another embodiment of the direct mode motion vector calculation method of the B picture according to the present invention,
동영상 코딩 시스템에서 B(bi-predictive) 픽쳐의 다이렉트 모드 모션벡터를 추출함에 있어, B 픽쳐의 다이렉트 모드의 list 0 레퍼런스 픽쳐와 list 1 레퍼런스 픽쳐가 모두 상기 B 픽쳐보다 시간적으로 뒤에 존재할 경우에, 상기 다이렉트 모드의 list 1 레퍼런스 픽쳐에 있는 동일 위치의 블록(co-located block)이 가지 고 있는 모션벡터를 스케일링하여, list 0 모션벡터(MVF)와 list 1 모션벡터(MVB)를 유도하여 B 픽쳐의 다이렉트 모드 모션벡터를 연산하는 점에 그 특징이 있다.In extracting the direct mode motion vector of the B (bi-predictive) picture in the video coding system, when both the
여기서 본 발명에 의하면, 상기 B 픽쳐의 매크로블록과 list 1 레퍼런스 픽쳐의 동일 위치에 있는 매크로블록이 모두 프레임 모드이며, 상기 B 픽쳐의 list 0 레퍼런스 픽쳐가 list 1 레퍼런스 픽쳐에 비해 시간적으로 뒤에 존재하는 경우, 상기 B 픽쳐의 다이렉트 모드의 모션벡터 MVF, MVB는 다음식으로부터 산출되는 점에 그 특징이 있다.According to the present invention, the macroblock of the B picture and the macroblock at the same position of the
MVF = TDB x MV / TDD MV F = TD B x MV / TD D
MVB = (TDB - TDD) x MV / TDD MV B = (TD B -TD D ) x MV / TD D
또는 or
Z = TDB x 256 / TDD MVF = (Z x MV + 128) >> 8Z = TD B x 256 / TD D MV F = (Z x MV + 128) >> 8
W = Z - 256 MVB = (W x MV + 128) >> 8W = Z-256 MV B = (W x MV + 128) >> 8
여기서, TDB는 현재 B 프레임과 list 0 레퍼런스 프레임 사이의 시간적 거리이며, TDD 는 list 1 레퍼런스 프레임과 list 0 레퍼런스 프레임 사이의 시간적 거리이고, MV는 상기 다이렉트 모드의 list 1 레퍼런스 픽쳐에 있는 동일 위치의 블록이 가지고 있는 모션벡터이다.Where TD B is the temporal distance between the current B frame and the
또한 본 발명에 의하면, 상기 B 픽쳐의 매크로블록과 list 1 레퍼런스 픽쳐의 동일 위치에 있는 매크로블록이 모두 프레임 모드이며, 상기 B 픽쳐의 list 0 레퍼런스 픽쳐가 list 1 레퍼런스 픽쳐에 비해 시간적으로 앞에 존재하는 경우, 상기 B 픽쳐의 다이렉트 모드의 모션벡터 MVF, MVB는 다음식으로부터 산출되는 점에 그 특징이 있다.In addition, according to the present invention, both the macroblock of the B picture and the macroblock at the same position of the
MVF = - TDB x MV / TDD MV F =-TD B x MV / TD D
MVB = - (TDB + TDD) x MV / TDD MV B =-(TD B + TD D ) x MV / TD D
또는 or
Z = - TDB x 256 / TDD MVF = (Z x MV + 128) >> 8Z =-TD B x 256 / TD D MV F = (Z x MV + 128) >> 8
W = Z - 256 MVB = (W x MV + 128) >> 8W = Z-256 MV B = (W x MV + 128) >> 8
여기서, TDB는 현재 B 프레임과 list 0 레퍼런스 프레임 사이의 시간적 거리이며, TDD 는 list 1 레퍼런스 프레임과 list 0 레퍼런스 프레임 사이의 시간적 거리이고, MV는 상기 다이렉트 모드의 list 1 레퍼런스 픽쳐에 있는 동일 위치의 블록이 가지고 있는 모션벡터이다.Where TD B is the temporal distance between the current B frame and the
또한 본 발명에 의하면, 상기 B 픽쳐의 매크로블록과 list 1 레퍼런스 픽쳐의 동일 위치에 있는 매크로블록이 모두 피일드(field) 모드이며, 상기 B 픽쳐의 list 0 레퍼런스 픽쳐가 list 1 레퍼런스 픽쳐에 비해 시간적으로 뒤에 존재하는 경우, 상기 B 프레임의 각 피일드 i에 대한 다이렉트 모드의 모션벡터 MVF ,i, MVB ,i는 다음식으로부터 산출되는 점에 그 특징이 있다.According to the present invention, both the macroblock of the B picture and the macroblock at the same position of the
MVF ,i = TDB ,i x MVi / TDD ,i MV F , i = TD B , i x MV i / TD D , i
MVB ,i = (TDB ,i - TDD ,i) x MVi / TDD ,i MV B , i = (TD B , i -TD D , i ) x MV i / TD D , i
또는 or
Z = TDB ,i x 256 / TDD ,i MVF ,i = (Z x MVi + 128) >> 8Z = TD B , i x 256 / TD D , i MV F , i = (Z x MV i + 128) >> 8
W = Z - 256 MVB ,i = (W x MVi + 128) >> 8W = Z-256 MV B , i = (W x MV i + 128) >> 8
여기서, TDB ,i는 현재 B 피일드와 list 0 레퍼런스 피일드 사이의 시간적 거리이며, TDD ,i 는 list 1 레퍼런스 피일드와 list 0 레퍼런스 피일드 사이의 시간적 거리이고, MVi는 상기 다이렉트 모드의 list 1 레퍼런스 피일드에 있는 동일 위치의 블록이 가지고 있는 모션벡터이다.Here, TD B , i is the temporal distance between the current B-feed and the
또한 본 발명에 의하면, 상기 B 픽쳐의 매크로블록과 list 1 레퍼런스 픽쳐의 동일 위치에 있는 매크로블록이 모두 피일드(field) 모드이며, 상기 B 픽쳐의 list 0 레퍼런스 픽쳐가 list 1 레퍼런스 픽쳐에 비해 시간적으로 앞에 존재하는 경우, 상기 B 프레임의 각 피일드 i에 대한 다이렉트 모드의 모션벡터 MVF ,i, MVB ,i는 다음식으로부터 산출되는 점에 그 특징이 있다.According to the present invention, both the macroblock of the B picture and the macroblock at the same position of the
MVF ,i = - TDB ,i x MVi / TDD ,i MV F , i =-TD B , i x MV i / TD D , i
MVB ,i = - (TDB ,i + TDD ,i) x MVi / TDD ,i MV B , i =-(TD B , i + TD D , i ) x MV i / TD D , i
또는 or
Z = -TDB ,i x 256 / TDD ,i MVF ,i = (Z x MVi + 128) >> 8Z = -TD B , i x 256 / TD D , i MV F , i = (Z x MV i + 128) >> 8
W = Z - 256 MVB ,i = (W x MVi + 128) >>8W = Z-256 MV B , i = (W x MV i + 128) >> 8
여기서, TDB ,i는 현재 B 피일드와 list 0 레퍼런스 피일드 사이의 시간적 거리이며, TDD ,i 는 list 1 레퍼런스 피일드와 list 0 레퍼런스 피일드 사이의 시간적 거리이고, MVi는 상기 다이렉트 모드의 list 1 레퍼런스 피일드에 있는 동일 위치의 블록이 가지고 있는 모션벡터이다.Here, TD B , i is the temporal distance between the current B-feed and the
또한 본 발명에 의하면, 상기 B 픽쳐의 매크로블록이 피일드 모드이고 list 1 레퍼런스 픽쳐의 동일 위치에 있는 매크로블록이 프레임 모드이며, 상기 B 픽쳐의 list 0 레퍼런스 픽쳐가 list 1 레퍼런스 픽쳐에 비해 시간적으로 뒤에 존재하는 경우, 상기 B 프레임의 각 피일드 i에 대한 다이렉트 모드의 모션벡터 MVF ,i, MVB,i는 다음식으로부터 산출되는 점에 그 특징이 있다.Further, according to the present invention, the macroblock of the B picture is in the shield mode, the macroblock at the same position of the
MVF ,i = TDB ,i x MV / TDD MV F , i = TD B , i x MV / TD D
MVB ,i = (TDB ,i - TDD) x MV / TDD MV B , i = (TD B , i -TD D ) x MV / TD D
또는 or
Z = TDB ,i x 256 / TDD MVF ,i = (Z x MV + 128) >> 8Z = TD B , i x 256 / TD D MV F , i = (Z x MV + 128) >> 8
W = Z - 256 MVB ,i = (W x MV + 128) >> 8W = Z-256 MV B , i = (W x MV + 128) >> 8
여기서, TDB ,i는 현재 B 피일드와 list 0 레퍼런스 피일드 사이의 시간적 거리이며, TDD 는 list 1 레퍼런스 프레임과 list 0 레퍼런스 프레임 사이의 시간적 거리이고, MV는 상기 다이렉트 모드의 list 1 레퍼런스 프레임에 있는 동일 위치의 블록이 가지고 있는 모션벡터이다.Here, TD B , i is the temporal distance between the current B-feed and the
또한 본 발명에 의하면, 상기 B 픽쳐의 매크로블록이 피일드 모드이고 list 1 레퍼런스 픽쳐의 동일 위치에 있는 매크로블록이 프레임 모드이며, 상기 B 픽쳐의 list 0 레퍼런스 픽쳐가 list 1 레퍼런스 픽쳐에 비해 시간적으로 앞에 존재하는 경우, 상기 B 프레임의 각 피일드 i에 대한 다이렉트 모드의 모션벡터 MVF ,i, MVB,i는 다음식으로부터 산출되는 점에 그 특징이 있다.Further, according to the present invention, the macroblock of the B picture is in the shield mode, the macroblock at the same position of the
MVF ,i = - TDB ,i x MV / TDD MV F , i =-TD B , i x MV / TD D
MVB ,i = - (TDB ,i + TDD) x MV / TDD MV B , i =-(TD B , i + TD D ) x MV / TD D
또는 or
Z = - TDB ,i x 256 / TDD MVF ,i = (Z x MV + 128) >> 8Z =-TD B , i x 256 / TD D MV F , i = (Z x MV + 128) >> 8
W = Z - 256 MVB ,i = (W x MV + 128) >> 8W = Z-256 MV B , i = (W x MV + 128) >> 8
여기서, TDB ,i는 현재 B 피일드와 list 0 레퍼런스 피일드 사이의 시간적 거리이며, TDD 는 list 1 레퍼런스 프레임과 list 0 레퍼런스 프레임 사이의 시간적 거리이고, MV는 상기 다이렉트 모드의 list 1 레퍼런스 프레임에 있는 동일 위치의 매크로블록이 가지고 있는 모션벡터이다.Here, TD B , i is the temporal distance between the current B-feed and the
또한 본 발명에 의하면, 상기 B 픽쳐의 매크로블록이 프레임 모드이고 list 1 레퍼런스 픽쳐의 동일 위치에 있는 매크로블록이 피일드 모드이며, 상기 B 픽쳐의 list 0 레퍼런스 픽쳐가 list 1 레퍼런스 픽쳐에 비해 시간적으로 뒤에 존재하는 경우, 상기 B 프레임의 다이렉트 모드의 모션벡터 MVF, MVB는 다음식으로부터 산출되는 점에 그 특징이 있다. 여기서 list 1 레퍼런스 프레임의 피일드 0에 있는 동일 위치의 블록이 갖는 모션정보가 다이렉트 모드의 모션벡터를 구하는데 사용된다.According to the present invention, the macroblock of the B picture is a frame mode, the macroblock at the same position of the
MVF = TDB x MV0 / TDD ,1 MV F = TD B x MV 0 / TD D , 1
MVB = (TDB - TDD ,0) x MV0/ TDD ,0 MV B = (TD B -TD D , 0 ) x MV 0 / TD D , 0
또는 or
Z = TDB x 256 / TDD ,0 MVF = (Z x MV0 + 128) >> 8Z = TD B x 256 / TD D , 0 MV F = (Z x MV 0 + 128) >> 8
W = Z - 256 MVB = (W x MV0 + 128) >> 8W = Z-256 MV B = (W x MV 0 + 128) >> 8
여기서, TDB는 현재 B 프레임과 list 0 레퍼런스 프레임 사이의 시간적 거리이며, TDD , 1는 list 1 레퍼런스 프레임의 피일드 0과 list 0 레퍼런스 피일드 사이의 시간적 거리이고, MV0는 상기 다이렉트 모드를 위한 list 1 레퍼런스 프레임의 피일드 0에 있는 동일 위치의 블록이 가지고 있는 모션벡터이다.Here, TD B is the temporal distance between the current B frame and the
또한 본 발명에 의하면, 상기 B 픽쳐의 매크로블록이 프레임 모드이고 list 1 레퍼런스 픽쳐의 동일 위치에 있는 매크로블록이 피일드 모드이며, 상기 B 픽쳐의 list 0 레퍼런스 픽쳐가 list 1 레퍼런스 픽쳐에 비해 시간적으로 앞에 존재하는 경우, 상기 B 프레임의 다이렉트 모드의 모션벡터 MVF, MVB는 다음식으로부터 산출되는 점에 그 특징이 있다. 여기서 list 1 레퍼런스 프레임의 피일드 0에 있는 동일 위치의 블록이 갖는 모션정보가 다이렉트 모드의 모션벡터를 구하는데 사용된다.According to the present invention, the macroblock of the B picture is a frame mode, the macroblock at the same position of the
MVF = - TDB x MV0 / TDD ,0 MV F =-TD B x MV 0 / TD D , 0
MVB = - (TDB + TDD ,0) x MV0/ TDD ,0 MV B =-(TD B + TD D , 0 ) x MV 0 / TD D , 0
또는 or
Z = - TDB x 256 / TDD ,0 MVF = (Z x MV0 + 128) >> 8Z =-TD B x 256 / TD D , 0 MV F = (Z x MV 0 + 128) >> 8
W = Z - 256 MVB = (W x MV0 + 128) >> 8W = Z-256 MV B = (W x MV 0 + 128) >> 8
여기서, TDB는 현재 B 프레임과 list 0 레퍼런스 프레임 사이의 시간적 거리이며, TDD , 1는 list 1 레퍼런스 프레임의 피일드 0과 list 0 레퍼런스 피일드 사이의 시간적 거리이고, MV0는 상기 다이렉트 모드 list 1 레퍼런스 프레임의 피일드 0에 있는 동일 위치의 블록이 가지고 있는 모션벡터이다.Here, TD B is the temporal distance between the current B frame and the
또한 본 발명에 의하면, 상기 B 픽쳐의 다이렉트 모드의 list 1 레퍼런스 픽쳐의 동일 위치에 있는 블록이 두 개의 모션벡터를 가질 경우에는 하나의 모션벡 터(MV1 또는 MV2)를 선택하고, 이 선택된 모션벡터로부터 B 픽쳐의 다이렉트 모드의 모션벡터를 유도하는 점에 그 특징이 있다.According to the present invention, when a block located at the same position of the
또한, 상기의 목적을 달성하기 위하여 본 발명에 따른 B 픽쳐의 다이렉트 모드 모션벡터 연산 방법의 또 다른 실시 예는,In addition, to achieve the above object another embodiment of a direct mode motion vector calculation method of a B picture according to the present invention,
동영상 코딩 시스템에서 B(bi-predictive) 픽쳐의 다이렉트 모드 모션벡터를 추출함에 있어, 다이렉트 모드 모션벡터를 구하는데 사용하는 수식을 단순화하기 위해 픽쳐 사이의 시간적 거리를 부호가 있는 값으로 표현함으로써 B 픽쳐의 다이렉트 모드의 list 0 레퍼런스 픽쳐와 list 1 레퍼런스 픽쳐의 위치에 관계없이 상기 다이렉트 모드의 list 1 레퍼런스 픽쳐에 있는 동일 위치의 블록(co-located block)이 가지고 있는 모션벡터를 스케일링하여, list 0 모션벡터 (MVF)와 list 1 모션벡터(MVB)를 유도하여 B 픽쳐의 다이렉트 모드 모션벡터를 연산하는 점에 그 특징이 있다. In extracting the direct mode motion vector of a B (bi-predictive) picture in a video coding system, the B picture is represented by representing the temporal distance between the pictures as a signed value to simplify the equation used to obtain the direct mode motion vector. Regardless of the position of the
여기서 본 발명에 의하면, 상기 B 픽쳐의 매크로블록과 list 1 레퍼런스 픽쳐의 동일 위치에 있는 매크로블록이 모두 프레임 모드일 경우, 상기 B 픽쳐의 다이렉트 모드의 모션벡터 MVF, MVB는 다음식으로부터 산출되는 점에 그 특징이 있다.According to the present invention, when the macroblock of the B picture and the macroblock at the same position of the
MVF = TDB x MV / TDD MV F = TD B x MV / TD D
MVB = (TDB - TDD) x MV / TDD MV B = (TD B -TD D ) x MV / TD D
또는 or
Z = TDB x 256 / TDD MVF = (Z x MV + 128) >> 8Z = TD B x 256 / TD D MV F = (Z x MV + 128) >> 8
W = Z - 256 MVB = (W x MV + 128) >> 8W = Z-256 MV B = (W x MV + 128) >> 8
여기서, TDB는 현재 B 프레임과 list 0 레퍼런스 프레임 사이의 시간적 거리로써 B 프레임으로부터 계산된 시간적 거리는 양(+)의 부호로 표시되고 list 0 레퍼런스 프레임으로부터 계산된 시간적 거리는 음(-)의 부호로 표시되며, TDD는 list 1 레퍼런스 프레임과 list 0 레퍼런스 프레임 사이의 시간적 거리로써 list 1 레퍼런스 프레임으로부터 계산된 시간적 거리는 양(+)의 부호로 표시되고 list 0 레퍼런스 프레임으로부터 계산된 시간적 거리는 음(-)의 부호로 표시되며, MV는 상기 다이렉트 모드의 list 1 레퍼런스 픽쳐에 있는 동일 위치의 블록이 가지고 있는 모션벡터이다.Here, TD B is the temporal distance between the current B frame and the
*또한 본 발명에 의하면, 상기 B 픽쳐의 매크로블록과 list 1 레퍼런스 픽쳐의 동일 위치에 있는 매크로블록이 모두 피일드(field) 모드일 경우, 상기 B 프레임의 각 피일드 i에 대한 다이렉트 모드의 모션벡터 MVF ,i, MVB ,i는 다음식으로부터 산출되는 점에 그 특징이 있다.In addition, according to the present invention, when both the macroblock of the B picture and the macroblock at the same position of the
MVF ,i = TDB ,i x MVi / TDD ,i MV F , i = TD B , i x MV i / TD D , i
MVB ,i = (TDB ,i - TDD ,i) x MVi / TDD ,i MV B , i = (TD B , i -TD D , i ) x MV i / TD D , i
또는 or
Z = TDB ,i x 256 / TDD ,i MVF ,i = (Z x MVi + 128) >> 8Z = TD B , i x 256 / TD D , i MV F , i = (Z x MV i + 128) >> 8
W = Z - 256 MVB ,i = (W x MVi + 128) >> 8W = Z-256 MV B , i = (W x MV i + 128) >> 8
여기서, TDB ,i는 현재 B 피일드와 list 0 레퍼런스 피일드 사이의 시간적 거리로써 B 피일드로부터 계산된 시간적 거리는 양(+)의 부호로 표시되고 list 0 레퍼런스 피일드로부터 계산된 시간적 거리는 음(-)의 부호로 표시되며, TDD ,i는 list 1 레퍼런스 피일드와 list 0 레퍼런스 피일드 사이의 시간적 거리로써 list 1 레퍼런스 피일드로부터 계산된 시간적 거리는 양(+)의 부호로 표시되고 list 0 레퍼런스 피일드로부터 계산된 시간적 거리는 음(-)의 부호로 표시되며, MVi는 상기 다이렉트 모드의 list 1 레퍼런스 피일드에 있는 동일 위치의 블록이 가지고 있는 모션벡터이다.Where TD B , i is the temporal distance between the current B and
또한 본 발명에 의하면, 상기 B 픽쳐의 매크로블록이 피일드 모드이고 list 1 레퍼런스 픽쳐의 동일 위치에 있는 매크로블록이 프레임 모드일 경우, 상기 B 프레임의 각 피일드 i에 대한 다이렉트 모드의 모션벡터 MVF ,i, MVB ,i는 다음식으로부터 산출되는 점에 그 특징이 있다. Further, according to the present invention, when the macroblock of the B picture is in the shield mode and the macroblock at the same position of the
MVF ,i = TDB ,i x MV / TDD MV F , i = TD B , i x MV / TD D
MVB ,i = (TDB ,i - TDD) x MV / TDD MV B , i = (TD B , i -TD D ) x MV / TD D
또는 or
Z = TDB ,i x 256 / TDD MVF ,i = (Z x MV + 128) >> 8Z = TD B , i x 256 / TD D MV F , i = (Z x MV + 128) >> 8
W = Z - 256 MVB ,i = (W x MV + 128) >> 8W = Z-256 MV B , i = (W x MV + 128) >> 8
여기서, TDB ,i는 현재 B 피일드와 list 0 레퍼런스 피일드 사이의 시간적 거리로써 B 피일드로부터 계산된 시간적 거리는 양(+)의 부호로 표시되고 list 0 레퍼런스 피일드로부터 계산된 시간적 거리는 음(-)의 부호로 표시되며, TDD는 list 1 레퍼런스 프레임과 list 0 레퍼런스 프레임 사이의 시간적 거리로써 list 1 레퍼런스 프레임으로부터 계산된 시간적 거리는 양(+)의 부호로 표시되고 list 0 레퍼런스 프레임으로부터 계산된 시간적 거리는 음(-)의 부호로 표시되며, MV는 상기 다이렉트 모드의 list 1 레퍼런스 프레임에 있는 동일 위치의 블록이 가지고 있는 모션벡터이다.Where TD B , i is the temporal distance between the current B and
또한 본 발명에 의하면, 상기 B 픽쳐의 매크로블록이 프레임 모드이고 list 1 레퍼런스 픽쳐의 동일 위치에 있는 매크로블록이 피일드 모드이며, list 1 레퍼런스 픽쳐가 상기 B 픽쳐보다 시간적으로 뒤에 존재하는 경우, 상기 B 프레임의 다이렉트 모드의 모션벡터 MVF, MVB는 list 1 레퍼런스 프레임의 피일드 0 에 있는 동일 위치의 매크로블록의 모션정보가 다이렉트 모드의 모션벡터를 구하는데 사용되는 다음식으로부터 산출되는 점에 그 특징이 있다. Also, according to the present invention, when the macroblock of the B picture is a frame mode and the macroblock at the same position of the
MVF = TDB x MV0 / TDD ,0 MV F = TD B x MV 0 / TD D , 0
MVB = (TDB - TDD ,0) x MV0/ TDD ,0 MV B = (TD B -TD D , 0 ) x MV 0 / TD D , 0
또는or
Z = TDB x 256 / TDD ,0 MVF = (Z x MV0 + 128) >> 8Z = TD B x 256 / TD D , 0 MV F = (Z x MV 0 + 128) >> 8
W = Z - 256 MVB = (W x MV0 + 128) >> 8W = Z-256 MV B = (W x MV 0 + 128) >> 8
여기서, TDB는 현재 B 프레임과 list 0 레퍼런스 프레임 사이의 시간적 거리로써 B 프레임으로부터 계산된 시간적 거리는 양(+)의 부호로 표시되고 list 0 레퍼런스 프레임으로부터 계산된 시간적 거리는 음(-)의 부호로 표시되며, TDD , 0는 list 1 레퍼런스 프레임의 피일드 0과 list 0 레퍼런스 피일드 사이의 시간적 거리로써 list 1 레퍼런스 프레임의 피일드 0으로부터 계산된 시간적 거리는 양(+)의 부호로 표시되고 list 0 레퍼런스 피일드로부터 계산된 시간적 거리는 음(-)의 부호로 표시되며, MV0는 상기 다이렉트 모드의 list 1 레퍼런스 프레임의 피일드 0에 있는 동일 위치의 블록이 가지고 있는 모션벡터이다.Here, TD B is the temporal distance between the current B frame and the
또한 본 발명에 의하면, 상기 B 픽쳐의 매크로블록이 프레임 모드이고 list 1 레퍼런스 픽쳐의 동일 위치에 있는 매크로블록이 피일드 모드이며, list 1 레퍼런스 픽쳐가 상기 B 픽쳐보다 시간적으로 앞에 존재하는 경우, 상기 B 프레임의 다이렉트 모드의 모션벡터 MVF, MVB는 list 1 레퍼런스 프레임의 피일드 1 에 있는 동일 위치의 블록의 모션정보가 다이렉트 모드의 모션벡터를 구하는데 사용되는 다음식으로부터 산출되는 점에 그 특징이 있다. According to the present invention, when the macroblock of the B picture is the frame mode and the macroblock at the same position of the
MVF =TDB x MV1 / TDD ,1 MV F = TD B x MV 1 / TD D , 1
MVB = (TDB -TDD ,1) x MV1 / TDD ,1 MV B = (TD B -TD D , 1 ) x MV 1 / TD D , 1
또는or
Z = TDB x 256 / TDD ,1 MVF = (Z x MV1 + 128) >> 8Z = TD B x 256 / TD D , 1 MV F = (Z x MV 1 + 128) >> 8
W = Z - 256 MVB = (W x MV1 + 128) >> 8W = Z-256 MV B = (W x MV 1 + 128) >> 8
여기서, TDB는 현재 B 프레임과 list 0 레퍼런스 프레임 사이의 시간적 거리로써 B 프레임으로부터 계산된 시간적 거리는 양(+)의 부호로 표시되고 list 0 레퍼런스 프레임으로부터 계산된 시간적 거리는 음(-)의 부호로 표시되며, TDD , 1는 list 1 레퍼런스 프레임의 피일드 1과 list 0 레퍼런스 피일드 사이의 시간적 거리로써 list 1 레퍼런스 프레임의 피일드 1로부터 계산된 시간적 거리는 양(+)의 부호로 표시되고 list 0 레퍼런스 피일드로부터 계산된 시간적 거리는 음(-)의 부호로 표시되며, MV1는 상기 다이렉트 모드의 list 1 레퍼런스 프레임의 피일드 1에 있는 동일 위치의 블록이 가지고 있는 모션벡터이다.Here, TD B is the temporal distance between the current B frame and the
또한, 상기의 목적을 달성하기 위하여 본 발명에 따른 B 픽쳐의 다이렉트 모드 모션벡터 연산 방법의 또 다른 실시 예는,In addition, to achieve the above object another embodiment of a direct mode motion vector calculation method of a B picture according to the present invention,
동영상 코딩 시스템에서 B(bi-predictive) 픽쳐의 다이렉트 모드 모션벡터를 추출함에 있어, B 픽쳐의 다이렉트 모드의 list 1 레퍼런스 픽쳐에 있는 동일 위치의 매크로블록(co-located macroblock)이 인트라 모드인 경우에는, 공간적 중복성 (spatial redundancy)을 이용하여, 상기 B 픽쳐의 코딩하려는 매크로블록의 주변 블록으로부터 list 0, list 1 레퍼런스 픽쳐와 각 list에 대한 모션벡터를 예측, 산출하고 B 픽쳐의 다이렉트 모드 모션벡터를 연산하는 점에 그 특징이 있다.In extracting the direct mode motion vector of a B (bi-predictive) picture in a video coding system, when the co-located macroblock in the
여기서 본 발명에 의하면, 상기 list 1 레퍼런스 픽쳐를 선택함에 있어, 상기 코딩하려는 매크로블록의 주변 매크로블록 A, B, C가 참조하는 레퍼런스 픽쳐가 서로 다를 경우에는, 가장 작은 인덱스를 갖는 레퍼런스 픽쳐를 list 1 레퍼런스 픽쳐로 선택하는 점에 그 특징이 있다.According to the present invention, in selecting the
또한 본 발명에 의하면, 상기 list 1 레퍼런스 픽쳐를 선택함에 있어, 상기 코딩하려는 매크로블록의 주변 매크로블록 중 두 개 이상의 매크로블록이 참조하는 레퍼런스 픽쳐가 동일한 인덱스를 가지고 있으면, 그 인덱스를 갖는 레퍼런스 픽쳐를 list 1 레퍼런스 픽쳐로 선택하는 점에 그 특징이 있다.According to the present invention, in selecting the
또한 본 발명에 의하면, 상기 각 list에 대한 모션벡터를 예측함에 있어, 주변 매크로블록 A, B, C 중 인트라 모드를 갖는 매크로블록이 있으면, 그 매크로블록의 list 0와 list 1의 모션벡터를 각각 0으로 설정하고, 상기 각 list 레퍼런스 픽쳐의 시간적 위치와 동일한 방향을 갖는 모션벡터를 주변 매크로블록으로부터 선택하고 미디언 연산을 통해 각 list의 모션벡터를 구하거나, 만일 주변 매크로블록이 동일한 방향의 모션벡터를 두 개 가지고 있으면 그 매크로블록에서 한 개만을 선택하여 미디언 연산에 포함하여 각 list의 모션벡터를 구하는 것에 그 특징이 있다. According to the present invention, in predicting the motion vectors for the respective lists, if there are macroblocks having intra modes among the neighboring macroblocks A, B, and C, the motion vectors of
또한 본 발명에 의하면, 상기 각 list에 대한 유효한 레퍼런스 픽쳐 인덱스를 모두 유도해낼 수 없다면, list 0, list 1의 레퍼런스 픽쳐 인덱스는 각각 0이 되고 각 list에 대한 모션벡터는 0으로 설정하는 것에 그 특징이 있다. According to the present invention, if all valid reference picture indices for each list cannot be derived, the reference picture indices of
이와 같은 본 발명에 의하면, 차세대 동영상 압축 기술에 정의된 B(Bi-predictive) 픽쳐에서 다이렉트 모드 모션벡터 추출 기법을 제시하여, 다이렉트 모드가 매크로블록의 예측 모드로서 선택될 가능성을 높임으로서 B 픽쳐 코딩 효율(coding efficiency)을 향상시킬 수 있는 장점이 있다.According to the present invention, by presenting a direct mode motion vector extraction technique in the B (Bi-predictive) picture defined in the next generation video compression technology, B picture coding by increasing the likelihood that the direct mode is selected as the prediction mode of the macroblock. There is an advantage to improve the coding (coding efficiency).
이상의 설명에서와 같이 본 발명에 따른 B 픽쳐의 다이렉트 모드 모션벡터 연산 방법에 의하면, 차세대 동영상 압축 기술에 정의된 B(Bi-predictive) 픽쳐에서 다이렉트 모드 모션벡터 추출 기법을 제시하여, 다이렉트 모드가 매크로블록의 예측 모드로서 선택될 가능성을 높임으로서 B 픽쳐 코딩 효율(coding efficiency)을 향상시킬 수 있는 장점이 있다.As described above, according to the method of calculating a direct mode motion vector of a B picture according to the present invention, a direct mode motion vector extraction technique is proposed in a B (bi-predictive) picture defined in a next-generation video compression technique, and the direct mode is a macro. There is an advantage in that the B picture coding efficiency can be improved by increasing the probability of being selected as the prediction mode of the block.
이하, 첨부된 도면을 참조하여 본 발명에 따른 실시 예를 상세히 설명한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.
본 발명은 다이렉트 모드의 list 1 레퍼런스 픽쳐에 있는 동일 위치의 매크로블록이 인트라 모드일 때 다이렉트 모션벡터를 유도하는 방법과, list 1 레퍼런스 픽쳐가 B 픽쳐보다 시간적으로 뒤에 위치하는 경우, 그리고 B 픽쳐보다 시간적으로 앞에 위치하는 경우에 대해 다이렉트 모션벡터를 구하는 방법, 그리고 다이렉트 모드 모션벡터를 구하는데 사용하는 수식을 단순화하기 위해 픽쳐 사이의 시간적 거리를 부호가 있는 값으로 표현함으로써 다이렉트 모드를 위한 list 0, list 1 레퍼런스 픽쳐 위치에 관계없이 다이렉트 모드 모션벡터를 구하는 방법에 대해 각 각 구분하여 제시한다. 이때 픽쳐 레벨(picture level) 에서 프레임(frame) 모드와 피일드(field) 모드가 스위칭 되어지므로 B 픽쳐와 list 1 레퍼런스 픽쳐는 프레임 구조 또는 피일드 구조로 코딩될 수 있다. 따라서 B 픽쳐의 매크로블록과 list 1 레퍼런스 픽쳐에 있는 동일 위치의 매크로블록은 4 가지 경우의 프레임/피일드 코딩 조합을 갖게 된다. The present invention provides a method of deriving a direct motion vector when a macroblock of the same position in the
[1] list 1 레퍼런스 픽쳐에 있는 동일위치의 매크로블록이 인트라 모드를 갖는 경우 [1]
도 3의 (f) 및 도 4의 (f)에 나타낸 바와 같이, 다이렉트 모드의 list 1 레퍼런스 픽쳐(list 1 reference picture for direct mode)에 있는 동일 위치의 매크로블록은 레퍼런스 픽쳐의 시간적 위치에 관계없이 인트라 모드를 가질 수 있다. 이러한 모드를 갖는 매크로블록은 모션정보를 갖고 있지 않으므로, 종래 기법에서는 단순히 다이렉트 모션벡터를 0으로 놓고 list 0 레퍼런스 픽쳐는 가장 최근에 디코딩된 픽쳐로 정의하였다. 하지만 종래 기법은 높은 코딩 효율을 보장할 수 없으므로 본 발명에서는 B 픽쳐의 코딩하려는 매크로블록의 주변 블록으로부터 list 0, list 1 레퍼런스 픽쳐와 각 list에 대한 모션벡터를 공간적 중복성(spatial redundancy)을 이용하여 예측, 산출한다. As shown in FIGS. 3F and 4F, macroblocks in the same position in the
각 list에 대한 레퍼런스 픽쳐 인덱스는 다음과 같은 방법으로 구한다. 도 5는 일반적인 공간적 중복성을 고려하여, 주변 블록 A, B, C의 모션벡터를 이용하여 블록 E의 예측 모션벡터를 연산하는 것을 설명하기 위한 도면이다.The reference picture index for each list is obtained by the following method. FIG. 5 is a diagram for explaining calculation of a predicted motion vector of block E using motion vectors of neighboring blocks A, B, and C in consideration of general spatial redundancy.
-- 만일, 주변 매크로블록 A, B, C의 레퍼런스 픽쳐 인덱스가 서로 다를 경우에는, 그 중에서 가장 작은 레퍼런스 픽쳐 인덱스가 다이렉트 모드의 레퍼런스 픽쳐 인덱스로 결정된다. If the reference picture indices of neighboring macroblocks A, B, and C are different from each other, the smallest reference picture index among them is determined as the reference picture index of the direct mode.
-- 만일, 주변 매크로블록 중 두 개의 블록이 동일한 레퍼런스 픽쳐 인덱스를 가지고 있으면, 그 인덱스가 다이렉트 모드의 레퍼런스 픽쳐 인덱스로 결정된다. -If two of the neighboring macroblocks have the same reference picture index, the index is determined as the reference picture index of the direct mode.
-- 만일, 주변 매크로블록 모두 같은 레퍼런스 픽쳐 인덱스를 가지고 있으면, 그 인덱스가 다이렉트 모드의 레퍼런스 픽쳐 인덱스로 결정된다. If all of the neighboring macroblocks have the same reference picture index, the index is determined as the reference picture index of the direct mode.
또한, 각 list에 대한 모션벡터는 다음과 같은 모션벡터 예측을 통해 구한다. 이때 주변 매크로블록 A, B, C 중 인트라 모드를 갖는 매크로블록이 있으면, 그 매크로블록의 list 0와 list 1의 모션벡터를 각각 0으로 설정한다. In addition, the motion vector for each list is obtained through the following motion vector prediction. At this time, if there is a macroblock having an intra mode among the neighboring macroblocks A, B, and C, the motion vectors of
-- 위에서 구한 각 list의 레퍼런스 픽쳐의 시간적 위치와 동일한 방향을 갖는 모션벡터를 주변 매크로블록으로부터 선택하고 미디언 연산을 통해 각 list의 모션벡터를 구한다. -Motion vectors with the same direction as the temporal position of the reference picture of each list obtained above are selected from the surrounding macroblocks, and the motion vectors of each list are obtained through median operation.
-- 만일, 주변 매크로블록이 동일한 방향의 모션벡터를 두 개 가지고 있으면, 그 매크로블록에서는 한 개만을 선택하여 미디언 연산에 포함시키도록 한다.If a neighboring macroblock has two motion vectors in the same direction, select only one of the macroblocks to be included in the median operation.
한편, 만일 주변 블록으로부터 list 0, list 1에 대한 유효한 레퍼런스 픽쳐 인덱스를 모두 유도해낼 수 없다면, list 0, list 1의 레퍼런스 픽쳐 인덱스는 각 각 0이 되고 각 list에 대한 모션벡터는 0으로 설정한다.On the other hand, if all valid reference picture indices for
[2] 다이렉트 모드의 list 1 레퍼런스 픽쳐가 B 픽쳐보다 시간적으로 뒤에 위치하는 경우 [2]
Case 1: B 픽쳐의 매크로블록과 list 1 레퍼런스 픽쳐의 동일 위치에 있는 매크로블록이 모두 프레임 모드일 때 Case 1: Macroblock and
도 3의 (a)~(f)에서 알 수 있듯이, list 1 레퍼런스 픽쳐의 동일 위치에 있는 블록은 한 개의 모션벡터를 갖거나 두 개의 모션벡터를 가질 수 있다. 본 발명에서는 동일 위치의 블록이 두 개의 모션벡터를 가질 경우에는 하나의 모션벡터(L0 MV 또는 L1 MV)를 선택하고, 이 선택된 모션벡터로부터 다이렉트 모드의 모션벡터를 유도하기로 한다(이하에서는 L0 MV(list 0 모션벡터)가 선택된 경우를 기준으로 설명하기로 한다). As shown in (a) to (f) of FIG. 3, a block at the same position of the
따라서 도 3의 (a)(c)는 도 6의 (a)와 같게 되며, 도 3의 (b)(d)(e)는 도 6의 (c), 도 3의 (g)(h)는 도 6의 (b)와 같이 단순화되어 표시될 수 있게 된다. Therefore, FIG. 3A and FIG. 3C are the same as FIG. 6A, and FIG. 3B and FIG. 3E are FIG. 6C and 3G, respectively. May be simplified and displayed as shown in FIG.
만일 다이렉트 모드의 list 0 레퍼런스 픽쳐와 list 1 레퍼런스 픽쳐가 B 픽쳐를 중심으로 시간적으로 앞, 뒤에 존재할 경우(도 6의 (a)), 또는 다이렉트 모드의 list 0, list 1 레퍼런스 픽쳐 모두 B 픽쳐보다 시간적으로 뒤에 존재하면서 list 0 레퍼런스 픽쳐가 list 1 레퍼런스 픽쳐보다 뒤에 존재할 경우(도 6의 (b)) 에 다이렉트 모드의 모션벡터 MVF , MVB 는 다음과 같이 계산되어진다.If the
MVF = TDB x MV / TDD MV F = TD B x MV / TD D
MVB = (TDB - TDD) x MV / TDD MV B = (TD B -TD D ) x MV / TD D
여기서, TDB 는 현재 B 프레임과 list 0 레퍼런스 프레임 사이의 시간적 거리를 나타내고, TDD 는 list 1 레퍼런스 프레임과 list 0 레퍼런스 프레임 사이의 시간적 거리를 각각 나타낸다.Where TD B Denotes the temporal distance between the current B frame and the
그리고 윗 식은 다음과 같이 표현될 수도 있는데, 이는 실제 연산 수행시의 편리성을 위하여 비트 오퍼레이션(bit operation)을 적용하는 경우를 나타낸 것이다.In addition, the above expression may be expressed as follows, which represents a case in which a bit operation is applied for convenience in performing an actual operation.
Z = TDB x 256 / TDD MVF = (Z x MV + 128) >> 8Z = TD B x 256 / TD D MV F = (Z x MV + 128) >> 8
W = Z - 256 MVB = (W x MV + 128) >> 8W = Z-256 MV B = (W x MV + 128) >> 8
만일, 다이렉트 모드의 list 0, list 1 레퍼런스 픽쳐 모두 B 픽쳐보다 시간적으로 뒤에 존재하면서 list 0 레퍼런스 픽쳐가 list 1 레퍼런스 픽쳐보다 앞에 존재할 경우(도 6의 (c))에 다이렉트 모드의 모션벡터 MVF, MVB 는 다음과 같이 계산되어진다.If both
MVF = - TDB x MV / TDD MV F =-TD B x MV / TD D
MVB = - (TDB + TDD) x MV / TDD MV B =-(TD B + TD D ) x MV / TD D
또는 다음과 같은 식으로 표현될 수도 있다.Or it may be represented by the following equation.
Z = - TDB x 256 / TDD MVF = (Z x MV + 128) >> 8Z =-TD B x 256 / TD D MV F = (Z x MV + 128) >> 8
W = Z - 256 MVB = (W x MV + 128) >> 8W = Z-256 MV B = (W x MV + 128) >> 8
Case 2: B 픽쳐의 매크로블록과 list 1 레퍼런스 픽쳐의 동일 위치에 있는 매크로블록이 모두 피일드 모드일 때 Case 2: Macroblock and
도 7에서는 B 픽쳐의 매크로블록과 list 1 레퍼런스 픽쳐의 동일 위치에 있는 매크로블록이 모두 피일드 모드인 경우를 보여준다. B 픽쳐의 매크로블록의 각 블록에서의 모션벡터는 동일 패러티(parity) 의 list 1 레퍼런스 피일드에 있는 동일 위치의 list 0 모션벡터로부터 유도되어진다. FIG. 7 illustrates a case in which both the macroblocks of the B picture and the macroblocks at the same position of the
만일 다이렉트 모드의 list 0, list 1 레퍼런스 픽쳐가 B 픽쳐를 중심으로 시간적으로 앞, 뒤에 존재하는 경우(도 7의 (a)), 또는 다이렉트 모드의 list 0, list 1 레퍼런스 픽쳐 모두 B 픽쳐보다 시간적으로 뒤에 존재하면서 list 0 레퍼런스 픽쳐가 list 1 레퍼런스 픽쳐보다 뒤에 존재할 경우(도 7의 (b))에는 B 프레임의 각 피일드 i(i=0은 첫번째 피일드, i=1은 두번째 피일드를 의미)에 대한 다이렉트 모드의 list 0, list 1 모션벡터 MVF ,i , MVB ,i 는 다음과 같이 계산되어진다. If the
MVF ,i = TDB ,i x MVi / TDD ,i MV F , i = TD B , i x MV i / TD D , i
MVB ,i = (TDB ,i - TDD ,i) x MVi / TDD ,i MV B , i = (TD B , i -TD D , i ) x MV i / TD D , i
여기서, MVi 는 list 1 레퍼런스 프레임의 i 에 있는 동일 위치의 블록이 갖는 list 0 모션벡터, TDB ,i 는 현재 B 피일드와 list 0 레퍼런스 피일드 사이의 시간적 거리, TDD ,i 는 list 1 레퍼런스 피일드와 list 0 레퍼런스 피일드 사이의 시간적 거리를 각각 의미한다. 윗 식은 다음과 같이 표현될 수 있다. Where MV i Is the
Z = TDB ,i x 256 / TDD ,i MVF ,i = (Z x MVi + 128) >> 8Z = TD B , i x 256 / TD D , i MV F , i = (Z x MV i + 128) >> 8
W = Z - 256 MVB ,i = (W x MVi + 128) >> 8W = Z-256 MV B , i = (W x MV i + 128) >> 8
만일 list 1 레퍼런스 프레임의 피일드 i에 있는 동일 위치의 블록이 B 픽쳐보다 시간적으로 뒤에 존재하는 프레임의 피일드를 가리키는 모션벡터를 가짐으로써, 다이렉트 모드의 list 0, list 1 레퍼런스 픽쳐 모두 B 픽쳐보다 시간적으로 뒤에 존재하면서 list 0 레퍼런스 픽쳐가 list 1 레퍼런스 픽쳐보다 앞에 존재할 경우(도 7의 (c) 및 (d)), 다이렉트 모드의 list 0, list 1 모션벡터 MVF ,i, MVB ,i 는 다음과 같이 계산되어진다.If a block at the same position in the frame i of the
MVF ,i = - TDB ,i x MVi / TDD ,i MV F , i =-TD B , i x MV i / TD D , i
MVB ,i = - (TDB ,i + TDD ,i) x MVi / TDD ,i MV B , i =-(TD B , i + TD D , i ) x MV i / TD D , i
또는 다음과 같은 식으로 표현될 수도 있다.Or it may be represented by the following equation.
Z = -TDB ,i x 256 / TDD ,i MVF ,i = (Z x MVi + 128) >> 8Z = -TD B , i x 256 / TD D , i MV F , i = (Z x MV i + 128) >> 8
W = Z - 256 MVB ,i = (W x MVi + 128) >> 8W = Z-256 MV B , i = (W x MV i + 128) >> 8
Case 3: B 픽쳐의 매크로블록이 피일드 모드이고 list 1 레퍼런스 픽쳐의 동일 위치에 있는 매크로블록이 프레임 모드일 때 Case 3: Macroblock of B Picture is
도 8은 B 픽쳐의 매크로블록이 피일드 모드이고 list 1 레퍼런스 픽쳐의 동일 위치에 있는 매크로블록이 프레임 모드인 경우를 보여준다. 여기서 현재 매크로블록의 수직 좌표가 ycurrent 이고 list 1 레퍼런스 픽쳐의 동일위치의 매크로블록 수직 좌표를 yco - located라 하면, 두 좌표 사이에는 yco - located=2 x ycurrent 관계가 성립된다. 그리고 list 0, list 1 레퍼런스 피일드는 각각의 list 0, list1 레퍼런스 프레임의 동일 패러티에 존재하게 된다.FIG. 8 shows a case in which a macroblock of a B picture is in a shield mode and a macroblock at the same position of the
만일 다이렉트 모드의 list 0, list 1 레퍼런스 픽쳐가 B 픽쳐를 중심으로 시간적으로 앞, 뒤에 존재하는 경우(도 8의 (a)), 또는 다이렉트 모드의 list 0, list 1 레퍼런스 픽쳐 모두 B 픽쳐보다 시간적으로 뒤에 존재하면서 list 0 레퍼런스 픽쳐가 list 1 레퍼런스 픽쳐보다 뒤에 존재할 경우(도 8의 (b)), B 프레임의 각 피일드 i에 대한 다이렉트 모드의 list 0, list 1 모션벡터 MVF ,i, MVB ,i는 다음과 같이 계산되어진다. If the
MVF ,i =TDB ,i x MV / TDD MV F , i = TD B , i x MV / TD D
MVB ,i = (TDB ,i -TDD) x MV / TDD MV B , i = (TD B , i -TD D ) x MV / TD D
윗 식은 다음과 같이 표현될 수 있다. The above expression can be expressed as
Z = TDB ,i x 256 / TDD MVF ,i = (Z x MV + 128) >> 8Z = TD B , i x 256 / TD D MV F , i = (Z x MV + 128) >> 8
W = Z - 256 MVB ,i = (W x MV + 128) >> 8W = Z-256 MV B , i = (W x MV + 128) >> 8
만일 list 1 레퍼런스 프레임에 있는 동일 위치의 블록이 B 픽쳐보다 시간적으로 뒤에 존재하는 프레임을 가리키는 모션벡터를 가짐으로써, 다이렉트 모드의 list 0, list 1 레퍼런스 픽쳐 모두 B 픽쳐보다 시간적으로 뒤에 존재하며서 list 0 레퍼런스 픽쳐가 list 1 레퍼런스 픽쳐보다 앞에 존재할 경우(도 8의 (c)), B 프레임의 각 피일드 i에 대한 다이렉트 모드의 list 0, list 1 모션벡터 MVF ,i, MVB ,i는 다음과 같이 계산되어진다. If the same block in the
MVF ,i = -TDB ,i x MV / TDD MV F , i = -TD B , i x MV / TD D
MVB ,i = - (TDB ,i +TDD) x MV / TDD MV B , i =-(TD B , i + TD D ) x MV / TD D
또는 다음과 같은 식으로 표현될 수도 있다.Or it may be represented by the following equation.
Z = - TDB ,i x 256 / TDD MVF ,i = (Z x MV + 128) >> 8Z =-TD B , i x 256 / TD D MV F , i = (Z x MV + 128) >> 8
W = Z - 256 MVB ,i = (W x MV + 128) >> 8W = Z-256 MV B , i = (W x MV + 128) >> 8
여기서, TDB ,i는 현재 B 피일드와 list 0 레퍼런스 피일드 사이의 시간적 거 리이며, TDD 는 list 1 레퍼런스 프레임과 list 0 레퍼런스 프레임 사이의 시간적 거리이고, MV는 상기 다이렉트 모드의 list 1 레퍼런스 프레임에 있는 동일 위치의 블록이 가지고 있는 모션벡터이다.Here, TD B , i is the temporal distance between the current B-feed and the
Case 4: B 픽쳐의 매크로블록이 프레임 모드이고 list 1 레퍼런스 픽쳐의 동일 위치에 있는 매크로블록이 피일드 모드일 때 Case 4: The macroblock of the B picture is in
도 9는 B 픽쳐의 매크로블록이 프레임 모드이고 list 1 레퍼런스 픽쳐의 동일 위치에 있는 매크로블록이 피일드 모드인 경우를 보여준다. 여기서 현재 매크로블록의 수직 좌표가 ycurrent 이고 list 1 레퍼런스 픽쳐의 동일 위치의 매크로블록 수직 좌표를 yco - located라 하면, 두 좌표 사이에는 yco - located= ycurrent / 2 관계가 성립된다. 그리고 list 1 레퍼런스 프레임의 피일드 0가 피일드 1 보다 B 픽쳐에 시간적 거리가 가까우므로 피일드 0에 있는 동일 위치의 블록의 모션정보가 다이렉트 모드의 모션벡터를 구하는데 사용된다.FIG. 9 shows a case in which a macroblock of a B picture is a frame mode and a macroblock at the same position of a
만일 다이렉트 모드의 list 0, list 1 레퍼런스 픽쳐가 B 픽쳐를 중심으로 시간적으로 앞, 뒤에 존재하는 경우(도 9의 (a)) 또는 다이렉트 모드의 list 0, list 1 레퍼런스 픽쳐 모두 B 픽쳐보다 시간적으로 뒤에 존재하면서 list 0 레퍼런스 픽쳐가 list 1 픽쳐보다 뒤에 존재할 경우(도 9의 (b)), B 프레임의 다이렉트 모드의 list 0, list 1 모션벡터 MVF, MVB는 다음과 같이 계산되어진다. If the
MVF = TDB x MV0 / TDD ,0 MV F = TD B x MV 0 / TD D , 0
MVB = (TDB -TDD ,0) x MV0 / TDD ,0 MV B = (TD B -TD D , 0 ) x MV 0 / TD D , 0
윗 식은 다음과 같이 표현될 수 있다. The above expression can be expressed as
Z = TDB x 256 / TDD ,0 MVF = (Z x MV0 + 128) >> 8Z = TD B x 256 / TD D , 0 MV F = (Z x MV 0 + 128) >> 8
W = Z - 256 MVB = (W x MV0 + 128) >> 8W = Z-256 MV B = (W x MV 0 + 128) >> 8
만일 list 1 레퍼런스 프레임의 피일드 0 에 있는 동일 위치의 블록이 B 픽쳐보다 시간적으로 뒤에 존재하는 프레임의 피일드를 가리키는 모션벡터를 가짐으로써, 다이렉트 모드의 list 0, list 1 레퍼런스 픽쳐 모두 B 픽쳐보다 시간적으로 뒤에 존재하면서 list 0 레퍼런스 픽쳐가 list 1 레퍼런스 픽쳐보다 앞에 존재할 경우(도 9의 (c)), 다이렉트 모드의 list 0, list 1 모션벡터 MVF, MVB 는 다음과 같이 계산되어진다.If a block at the same position in
MVF = - TDB x MV0 / TDD ,0 MV F =-TD B x MV 0 / TD D , 0
MVB = - (TDB +TDD ,0) x MV0 / TDD ,0 MV B =-(TD B + TD D , 0 ) x MV 0 / TD D , 0
또는 다음과 같은 식으로 표현될 수도 있다.Or it may be represented by the following equation.
Z = - TDB x 256 / TDD ,0 MVF = (Z x MV0 + 128) >> 8Z =-TD B x 256 / TD D , 0 MV F = (Z x MV 0 + 128) >> 8
W = Z - 256 MVB = (W x MV0 + 128) >> 8W = Z-256 MV B = (W x MV 0 + 128) >> 8
여기서, TDB는 현재 B 프레임과 list 0 레퍼런스 프레임 사이의 시간적 거리이며, TDD , 1는 list 1 레퍼런스 프레임의 피일드 0과 list 0 레퍼런스 피일드 사이의 시간적 거리이고, MV0는 상기 다이렉트 모드의 list 1 레퍼런스 피일드 0에 있는 동일 위치의 블록이 가지고 있는 모션벡터이다.Here, TD B is the temporal distance between the current B frame and the
[3] 다이렉트 모드의 list 1 레퍼런스 픽쳐가 B 픽쳐보다 시간적으로 앞에 위치하는 경우 [3] direct Mod list One reference Picture is B Than picture In time BeforeIf located
이 경우에는 list 0, list 1 레퍼런스 픽쳐 모두 B 픽쳐보다 항상 시간적으로 앞에 위치하고 있다. In this case, both the
Case 1: B 픽쳐의 매크로블록과 list 1 레퍼런스 픽쳐의 동일 위치에 있는 매크로블록이 모두 프레임 모드일 때 Case 1: Macroblock and
도 4에 나타낸 바와 같이, list 1 레퍼런스 픽쳐의 동일 위치에 있는 블록은 한 개의 모션벡터를 갖거나 두 개의 모션벡터를 가질 수 있다. 본 발명에서는 동일 위치의 블록이 두 개의 모션벡터를 가질 경우에는 하나의 모션벡터 (L0 MV 또는 L1 MV)를 선택하고, 이 선택된 모션벡터로부터 다이렉트 모드의 모션벡터를 유도하기로 한다(이하에서는 L0 MV(list 0 모션벡터)이 선택된 경우를 기준으로 설명하기로 한다). As shown in FIG. 4, a block at the same position of the
따라서 도 4의 (a)(c)(e)(g)(h)는 도 10의 (a)와 같게 되며, 도 4의 (b)(d) 는 도 10의 (b)와 같이 단순화 되어 표시될 수 있게 된다. Therefore, FIG. 4 (a) (c) (e) (g) (h) becomes the same as FIG. 10 (a), and FIG. 4 (b) (d) is simplified as shown in FIG. 10 (b). It can be displayed.
만일 다이렉트 모드의 list 0 레퍼런스 픽쳐가 list 1 레퍼런스 픽쳐보다 시간적으로 앞에 존재할 경우, 다이렉트 모드의 모션벡터 MVF , MVB 는 다음과 같이 계산되어진다(도 10의 (a)).If the
MVF = TDB x MV / TDD MV F = TD B x MV / TD D
MVB = (TDB - TDD) x MV / TDD MV B = (TD B -TD D ) x MV / TD D
여기서, TDB는 현재 B 프레임과 list 0 레퍼런스 프레임 사이의 시간적 거리이며, TDD 는 list 1 레퍼런스 프레임과 list 0 레퍼런스 프레임 사이의 시간적 거리이고, MV는 상기 다이렉트 모드의 list 1 레퍼런스 픽쳐에 있는 동일 위치의 블록이 가지고 있는 모션벡터이다.Where TD B is the temporal distance between the current B frame and the
그리고 윗 식은 다음과 같이 표현될 수 있다. And the above expression can be expressed as
Z = TDB x 256 / TDD MVF = (Z x MV + 128) >> 8Z = TD B x 256 / TD D MV F = (Z x MV + 128) >> 8
W = Z - 256 MVB = (W x MV + 128) >> 8W = Z-256 MV B = (W x MV + 128) >> 8
만일 다이렉트 모드의 list 0 레퍼런스 픽쳐가 list 1 레퍼런스 픽쳐보다 시간적으로 뒤에 존재할 경우, 다이렉트 모드의 모션벡터 MVF, MVB 는 다음과 같이 계산되어진다(도 10의 (b)).If the
MVF = - TDB x MV / TDD MV F =-TD B x MV / TD D
MVB = - (TDB + TDD) x MV / TDD MV B =-(TD B + TD D ) x MV / TD D
또는 다음과 같은 식으로 표현될 수도 있다.Or it may be represented by the following equation.
Z = - TDB x 256 / TDD MVF = (Z x MV + 128) >> 8Z =-TD B x 256 / TD D MV F = (Z x MV + 128) >> 8
W = Z - 256 MVB = (W x MV + 128) >> 8W = Z-256 MV B = (W x MV + 128) >> 8
여기서, TDB는 현재 B 프레임과 list 0 레퍼런스 프레임 사이의 시간적 거리이며, TDD 는 list 1 레퍼런스 프레임과 list 0 레퍼런스 프레임 사이의 시간적 거리이고, MV는 상기 다이렉트 모드의 list 1 레퍼런스 픽쳐에 있는 동일 위치의 블록이 가지고 있는 모션벡터이다.Where TD B is the temporal distance between the current B frame and the
Case 2: B 픽쳐의 매크로블록과 list 1 레퍼런스 픽쳐의 동일 위치에 있는 매크로블록이 모두 피일드 모드일 때 Case 2: Macroblock and
만일 다이렉트 모드의 list 0 레퍼런스 픽쳐가 list 1 레퍼런스 픽쳐보다 시간적으로 앞에 존재할 경우, B 프레임의 각 피일드 i에 대한 다이렉트 모드의 list 0, list 1 모션벡터 MVF ,i, MVB ,i는 다음과 같이 계산되어진다(도 11의 (a) 및 (b)). If the
MVF ,i = TDB ,i x MVi / TDD ,i MV F , i = TD B , i x MV i / TD D , i
MVB ,i = (TDB ,i - TDD ,i) x MVi / TDD ,i MV B , i = (TD B , i -TD D , i ) x MV i / TD D , i
윗 식은 다음과 같이 표현될 수 있다. The above expression can be expressed as
Z = TDB ,i x 256 / TDD ,i MVF ,i = (Z x MVi + 128) >> 8Z = TD B , i x 256 / TD D , i MV F , i = (Z x MV i + 128) >> 8
W = Z - 256 MVB ,i = (W x MVi + 128) >> 8W = Z-256 MV B , i = (W x MV i + 128) >> 8
여기서, TDB ,i는 현재 B 피일드와 list 0 레퍼런스 피일드 사이의 시간적 거리이며, TDD ,i 는 list 1 레퍼런스 피일드와 list 0 레퍼런스 피일드 사이의 시간적 거리이고, MVi는 상기 다이렉트 모드의 list 1 레퍼런스 피일드에 있는 동일 위치의 블록이 가지고 있는 모션벡터이다.Here, TD B , i is the temporal distance between the current B-feed and the
만일 list 1 레퍼런스 프레임의 피일드 i에 있는 동일 위치의 블록이 시간적으로 뒤에 존재하는 프레임의 피일드를 가리키는 모션벡터를 가짐으로써, 다이렉트 모드의 list 0 레퍼런스 픽쳐가 list 1 레퍼런스 픽쳐보다 시간적으로 뒤에 존재할 경우 다이렉트 모드의 list 0, list 1 모션벡터 MVF ,i, MVB ,i는 다음과 같이 계산되어진다(도 11의 (c) 및 (d)).If a block at the same position in the frame i of the
MVF ,i = -TDB ,i x MVi / TDD ,i MV F , i = -TD B , i x MV i / TD D , i
MVB ,i = - (TDB ,i +TDD ,i) x MVi / TDD ,i MV B , i =-(TD B , i + TD D , i ) x MV i / TD D , i
또는 다음과 같은 식으로 표현될 수도 있다.Or it may be represented by the following equation.
Z = - TDB ,i x 256 / TDD ,i MVF ,i = (Z x MVi + 128) >> 8Z =-TD B , i x 256 / TD D , i MV F , i = (Z x MV i + 128) >> 8
W = Z - 256 MVB ,i = (W x MVi + 128) >> 8W = Z-256 MV B , i = (W x MV i + 128) >> 8
여기서, TDB ,i는 현재 B 피일드와 list 0 레퍼런스 피일드 사이의 시간적 거리이며, TDD ,i 는 list 1 레퍼런스 피일드와 list 0 레퍼런스 피일드 사이의 시간적 거리이고, MVi는 상기 다이렉트 모드의 list 1 레퍼런스 피일드에 있는 동일 위치의 블록이 가지고 있는 모션벡터이다.Here, TD B , i is the temporal distance between the current B-feed and the
Case 3: B 픽쳐의 매크로블록이 피일드 모드이고 list 1 레퍼런스 픽쳐의 동일 위치에 있는 매크로블록이 프레임 모드일 때 Case 3: Macroblock of B Picture is
만일 다이렉트 모드의 list 0 레퍼런스 픽쳐가 list 1 레퍼런스 픽쳐보다 시간적으로 앞에 존재할 경우, B 프레임의 각 피일드 i에 대한 다이렉트 모드의 list 0, list 1 모션벡터 MVF ,i, MVB ,i는 다음과 같이 계산되어진다(도 12의 (a)). If the
MVF ,i = TDB ,i x MV / TDD MV F , i = TD B , i x MV / TD D
MVB ,i = (TDB ,i - TDD) x MV / TDD MV B , i = (TD B , i -TD D ) x MV / TD D
윗 식은 다음과 같이 표현될 수 있다. The above expression can be expressed as
Z = TDB ,i x 256 / TDD MVF ,i = (Z x MV + 128) >> 8Z = TD B , i x 256 / TD D MV F , i = (Z x MV + 128) >> 8
W = Z - 256 MVB ,i = (W x MV + 128) >> 8W = Z-256 MV B , i = (W x MV + 128) >> 8
여기서, TDB ,i는 현재 B 피일드와 list 0 레퍼런스 피일드 사이의 시간적 거 리이며, TDD 는 list 1 레퍼런스 프레임과 list 0 레퍼런스 프레임 사이의 시간적 거리이고, MV는 상기 다이렉트 모드의 list 1 레퍼런스 프레임에 있는 동일 위치의 블록이 가지고 있는 모션벡터이다.Here, TD B , i is the temporal distance between the current B-feed and the
만일 list 1 레퍼런스 프레임에 있는 동일 위치의 블록이 시간적으로 뒤에 존재하는 프레임을 가리키는 모션벡터를 가짐으로써, 다이렉트 모드의 list 0 레퍼런스 픽쳐가 list 1 레퍼런스 픽쳐보다 시간적으로 뒤에 존재할 경우, B 프레임의 각 피일드 i에 대한 다이렉트 모드의 list 0, list 1 모션벡터 MVF ,i, MVB ,i는 다음과 같이 계산되어진다(도 12의 (b)). If a block in the same position in the
MVF ,i = - TDB ,i x MV / TDD MV F , i =-TD B , i x MV / TD D
MVB ,i = - (TDB ,i + TDD) x MV / TDD MV B , i =-(TD B , i + TD D ) x MV / TD D
또는 다음과 같은 식으로 표현될 수도 있다.Or it may be represented by the following equation.
Z = - TDB ,i x 256 / TDD MVF ,i = (Z x MV + 128) >> 8Z =-TD B , i x 256 / TD D MV F , i = (Z x MV + 128) >> 8
W = Z - 256 MVB ,i = (W x MV + 128) >> 8W = Z-256 MV B , i = (W x MV + 128) >> 8
여기서, TDB ,i는 현재 B 피일드와 list 0 레퍼런스 피일드 사이의 시간적 거리이며, TDD 는 list 1 레퍼런스 프레임과 list 0 레퍼런스 프레임 사이의 시간적 거리이고, MV는 상기 다이렉트 모드의 list 1 레퍼런스 프레임에 있는 동일 위치의 블록이 가지고 있는 모션벡터이다.Here, TD B , i is the temporal distance between the current B-feed and the
Case 4: B 픽쳐의 매크로블록이 프레임 모드이고 list 1 레퍼런스 픽쳐의 동일 위치에 있는 매크로블록이 피일드 모드일 때 Case 4: The macroblock of the B picture is in
list 1 레퍼런스 프레임의 피일드 1(f1)이 피일드 0(f0) 보다 B 픽쳐에 시간적 거리가 가까우므로 피일드 1(f1)에 있는 동일 위치의 블록의 모션정보가 다이렉트 모드의 모션벡터를 구하는데 사용된다.Since the
만일 다이렉트 모드의 list 0 레퍼런스 픽쳐가 list 1 레퍼런스 픽쳐보다 시간적으로 앞에 존재할 경우, B 프레임의 각 피일드 i에 대한 다이렉트 모드의 list 0, list 1 모션벡터 MVF, MVB 는 다음과 같이 계산되어진다(도 13의 (a)). If the
MVF =TDB x MV1 / TDD ,1 MV F = TD B x MV 1 / TD D , 1
MVB = (TDB -TDD ,1) x MV1 / TDD ,1 MV B = (TD B -TD D , 1 ) x MV 1 / TD D , 1
윗 식은 다음과 같이 표현될 수 있다. The above expression can be expressed as
Z = TDB x 256 / TDD ,1 MVF = (Z x MV1 + 128) >> 8Z = TD B x 256 / TD D , 1 MV F = (Z x MV 1 + 128) >> 8
W = Z - 256 MVB = (W x MV1 + 128) >> 8W = Z-256 MV B = (W x MV 1 + 128) >> 8
여기서, TDB는 현재 B 프레임과 list 0 레퍼런스 프레임 사이의 시간적 거리이며, TDD , 1는 list 1 레퍼런스 프레임의 피일드 1과 list 0 레퍼런스 피일드 사이의 시간적 거리이고, MV1는 상기 다이렉트 모드의 list 1 레퍼런스 프레임의 피일드 1에 있는 동일 위치의 블록이 가지고 있는 모션벡터이다.Here, TD B is the temporal distance between the current B frame and the
만일 list 1 레퍼런스 프레임의 피일드 1(f1)에 있는 동일 위치의 블록이 시간적으로 뒤에 존재하는 프레임의 피일드를 가리키는 모션벡터를 가짐으로써, 다이렉트 모드의 list 0 레퍼런스 픽쳐가 list 1 레퍼런스 픽쳐보다 시간적으로 뒤에 존재할 경우 다이렉트 모드의 list 0, list 1 모션벡터 MVF, MVB는 다음과 같이 계산되어진다(도 13의 (b)).If a block at the same position in feed 1 (f1) of the
MVF = - TDB x MV1 / TDD ,1 MV F =-TD B x MV 1 / TD D , 1
MVB = - (TDB + TDD ,1) x MV1 / TDD ,1 MV B =-(TD B + TD D , 1 ) x MV 1 / TD D , 1
또는 다음과 같은 식으로 표현될 수도 있다.Or it may be represented by the following equation.
Z = -TDB x 256 / TDD ,1 MVF = (Z x MV1 + 128) >> 8Z = -TD B x 256 / TD D , 1 MV F = (Z x MV 1 + 128) >> 8
W = Z - 256 MVB = (W x MV1 + 128) >> 8W = Z-256 MV B = (W x MV 1 + 128) >> 8
여기서, TDB는 현재 B 프레임과 list 0 레퍼런스 프레임 사이의 시간적 거리이며, TDD , 1는 list 1 레퍼런스 프레임의 피일드 1과 list 0 레퍼런스 피일드 사이의 시간적 거리이고, MV1는 상기 다이렉트 모드의 list 1 레퍼런스 프레임의 피일드 1에 있는 동일 위치의 블록이 가지고 있는 모션벡터이다.Here, TD B is the temporal distance between the current B frame and the
[4] 픽쳐 사이의 시간적 거리를 부호가 있는 값으로 표현하여 다이렉트 모드 모션벡터를 연산하는 경우 To express the temporal distance between the [4] to a value that is a picture numeral direct mode When calculating a motion vector
상기 다이렉트 모드의 list 1 레퍼런스 픽쳐가 B 픽쳐보다 시간적으로 앞에 위치하거나 또는 뒤에 위치하는 경우에, 각 case에 대해 두 가지 종류의 수식이 존재하게 되므로 이를 단순화하기 위한 방법으로써 픽쳐 사이의 시간적 거리를 부호가 있는 값으로 표현하면 다음과 같이 단순화되어 표현될 수 있게 된다. When the
Case 1: B 픽쳐의 매크로블록과 list 1 레퍼런스 픽쳐의 동일 위치에 있는 매크로블록이 모두 프레임 모드일 때 Case 1: Macroblock and
B 픽쳐의 매크로블록과 list 1 레퍼런스 픽쳐의 동일 위치에 있는 매크로블록이 모두 프레임 모드일 경우, 상기 B 픽쳐의 다이렉트 모드의 모션벡터 MVF, MVB는 다음식으로부터 구할 수 있다. When the macroblocks of the B picture and the macroblocks at the same position of the
MVF = TDB x MV / TDD MV F = TD B x MV / TD D
MVB = (TDB - TDD) x MV / TDD MV B = (TD B -TD D ) x MV / TD D
또는 or
Z = TDB x 256 / TDD MVF = (Z x MV + 128) >> 8Z = TD B x 256 / TD D MV F = (Z x MV + 128) >> 8
W = Z - 256 MVB = (W x MV + 128) >> 8W = Z-256 MV B = (W x MV + 128) >> 8
여기서, TDB는 현재 B 프레임과 list 0 레퍼런스 프레임 사이의 시간적 거리로써 B 프레임으로부터 계산된 시간적 거리는 양(+)의 부호로 표시되고 list 0 레퍼런스 프레임으로부터 계산된 시간적 거리는 음(-)의 부호로 표시되며, TDD는 list 1 레퍼런스 프레임과 list 0 레퍼런스 프레임 사이의 시간적 거리로써 list 1 레퍼런스 프레임으로부터 계산된 시간적 거리는 양(+)의 부호로 표시되고 list 0 레퍼런스 프레임으로부터 계산된 시간적 거리는 음(-)의 부호로 표시되며, MV는 상기 다이렉트 모드의 list 1 레퍼런스 픽쳐에 있는 동일 위치의 블록이 가지고 있는 모션벡터이다.Here, TD B is the temporal distance between the current B frame and the
Case 2: B 픽쳐의 매크로블록과 list 1 레퍼런스 픽쳐의 동일 위치에 있는 매크로블록이 모두 피일드 모드일 때 Case 2: Macroblock and
B 픽쳐의 매크로블록과 list 1 레퍼런스 픽쳐의 동일 위치에 있는 매크로블록이 모두 피일드(field) 모드일 경우, 상기 B 프레임의 각 피일드 i에 대한 다이렉트 모드의 모션벡터 MVF ,i, MVB ,i는 다음식으로부터 구할 수 있다. When the macroblocks of the B picture and the macroblocks at the same position of the
MVF ,i = TDB ,i x MVi / TDD ,i MV F , i = TD B , i x MV i / TD D , i
MVB ,i = (TDB ,i - TDD ,i) x MVi / TDD ,i MV B , i = (TD B , i -TD D , i ) x MV i / TD D , i
또는 or
Z = TDB ,i x 256 / TDD ,i MVF ,i = (Z x MVi + 128) >> 8Z = TD B , i x 256 / TD D , i MV F , i = (Z x MV i + 128) >> 8
W = Z - 256 MVB ,i = (W x MVi + 128) >> 8W = Z-256 MV B , i = (W x MV i + 128) >> 8
여기서, TDB ,i는 현재 B 피일드와 list 0 레퍼런스 피일드 사이의 시간적 거리로써 B 피일드로부터 계산된 시간적 거리는 양(+)의 부호로 표시되고 list 0 레 퍼런스 피일드로부터 계산된 시간적 거리는 음(-)의 부호로 표시되며, TDD ,i는 list 1 레퍼런스 피일드와 list 0 레퍼런스 피일드 사이의 시간적 거리로써 list 1 레퍼런스 피일드로부터 계산된 시간적 거리는 양(+)의 부호로 표시되고 list 0 레퍼런스 피일드로부터 계산된 시간적 거리는 음(-)의 부호로 표시되며, MVi는 상기 다이렉트 모드의 list 1 레퍼런스 피일드에 있는 동일 위치의 블록이 가지고 있는 모션벡터이다.Where TD B , i is the temporal distance between the current B and
Case 3: B 픽쳐의 매크로블록이 피일드 모드이고 list 1 레퍼런스 픽쳐의 동일 위치에 있는 매크로블록이 프레임 모드일 때 Case 3: Macroblock of B Picture is
B 픽쳐의 매크로블록이 피일드 모드이고 list 1 레퍼런스 픽쳐의 동일 위치에 있는 매크로블록이 프레임 모드일 경우, 상기 B 프레임의 각 피일드 i에 대한 다이렉트 모드의 모션벡터 MVF ,i, MVB ,i는 다음식으로부터 구할 수 있다. When the macroblock of the B picture is in the shield mode and the macroblock at the same position of the
MVF ,i = TDB ,i x MV / TDD MV F , i = TD B , i x MV / TD D
MVB ,i = (TDB ,i - TDD) x MV / TDD MV B , i = (TD B , i -TD D ) x MV / TD D
또는 or
Z = TDB ,i x 256 / TDD MVF ,i = (Z x MV + 128) >> 8Z = TD B , i x 256 / TD D MV F , i = (Z x MV + 128) >> 8
W = Z - 256 MVB ,i = (W x MV + 128) >> 8W = Z-256 MV B , i = (W x MV + 128) >> 8
여기서, TDB ,i는 현재 B 피일드와 list 0 레퍼런스 피일드 사이의 시간적 거리로써 B 피일드로부터 계산된 시간적 거리는 양(+)의 부호로 표시되고 list 0 레퍼런스 피일드로부터 계산된 시간적 거리는 음(-)의 부호로 표시되며, TDD는 list 1 레퍼런스 프레임과 list 0 레퍼런스 프레임 사이의 시간적 거리로써 list 1 레퍼런스 프레임으로부터 계산된 시간적 거리는 양(+)의 부호로 표시되고 list 0 레퍼런스 프레임으로부터 계산된 시간적 거리는 음(-)의 부호로 표시되며, MV는 상기 다이렉트 모드의 list 1 레퍼런스 프레임에 있는 동일 위치의 블록이 가지고 있는 모션벡터이다.Where TD B , i is the temporal distance between the current B and
Case 4: B 픽쳐의 매크로블록이 프레임 모드이고 list 1 레퍼런스 픽쳐의 동일 위치에 있는 매크로블록이 피일드 모드일 때 Case 4: The macroblock of the B picture is in
B 픽쳐의 매크로블록이 프레임 모드이고 list 1 레퍼런스 픽쳐의 동일 위치에 있는 매크로블록이 피일드 모드이며, list 1 레퍼런스 픽쳐가 상기 B 픽쳐보다 시간적으로 뒤에 존재하는 경우, list 1 레퍼런스 프레임의 피일드 0가 피일드 1 보다 B 픽쳐에 시간적 거리가 가까우므로 피일드 0에 있는 동일 위치의 블록의 모션정보가 다이렉트 모드의 모션벡터를 구하는데 사용된다. 따라서 상기 B 프레임의 다이렉트 모드의 모션벡터 MVF, MVB는 list 1 레퍼런스 프레임의 피일드 0 에 있는 동일 위치의 블록의 모션정보가 다이렉트 모드의 모션벡터를 구하는데 사용되는 다음식으로부터 구할 수 있다. If the macroblock of the B picture is in frame mode and the macroblock at the same position of the
MVF = TDB x MV0 / TDD ,0 MVF = TDB x MV0 / TDD ,0
MVB = (TDB - TDD ,0) x MV0/ TDD ,0 MV B = (TD B -TD D , 0 ) x MV 0 / TD D , 0
또는or
Z = TDB x 256 / TDD ,0 MVF = (Z x MV0 + 128) >> 8Z = TD B x 256 / TD D , 0 MV F = (Z x MV 0 + 128) >> 8
W = Z - 256 MVB = (W x MV0 + 128) >> 8W = Z-256 MV B = (W x MV 0 + 128) >> 8
여기서, TDB는 현재 B 프레임과 list 0 레퍼런스 프레임 사이의 시간적 거리로써 B 프레임으로부터 계산된 시간적 거리는 양(+)의 부호로 표시되고 list 0 레퍼런스 프레임으로부터 계산된 시간적 거리는 음(-)의 부호로 표시되며, TDD , 0는 list 1 레퍼런스 프레임의 피일드 0과 list 0 레퍼런스 피일드 사이의 시간적 거리로써 list 1 레퍼런스 프레임의 피일드 0으로부터 계산된 시간적 거리는 양(+)의 부호로 표시되고, list 0 레퍼런스 피일드로부터 계산된 시간적 거리는 음(-)의 부호로 표시되며, MV0는 상기 다이렉트 모드의 list 1 레퍼런스 프레임의 피일드 0에 있는 동일 위치의 블록이 가지고 있는 모션벡터이다.Here, TD B is the temporal distance between the current B frame and the
만일, list 1 레퍼런스 픽쳐가 상기 B 픽쳐보다 시간적으로 앞에 존재하는 경우, list 1 레퍼런스 프레임의 피일드 1이 피일드 0 보다 B 픽쳐에 시간적 거리가 가까우므로 피일드 1에 있는 동일 위치의 블록의 모션정보가 다이렉트 모드의 모션벡터를 구하는데 사용된다. 따라서 상기 B 프레임의 다이렉트 모드의 모션벡터 MVF, MVB는 list 1 레퍼런스 프레임의 피일드 1 에 있는 동일 위치의 블록의 모션정보가 다이렉트 모드의 모션벡터를 구하는데 사용되는 다음식으로부터 구할 수 있 다. If the
MVF =TDB x MV1 / TDD ,1 MV F = TD B x MV 1 / TD D , 1
MVB = (TDB -TDD ,1) x MV1 / TDD ,1 MV B = (TD B -TD D , 1 ) x MV 1 / TD D , 1
또는or
Z = TDB x 256 / TDD ,1 MVF = (Z x MV1 + 128) >> 8Z = TD B x 256 / TD D , 1 MV F = (Z x MV 1 + 128) >> 8
W = Z - 256 MVB = (W x MV1 + 128) >> 8W = Z-256 MV B = (W x MV 1 + 128) >> 8
여기서, TDB는 현재 B 프레임과 list 0 레퍼런스 프레임 사이의 시간적 거리로써 B 프레임으로부터 계산된 시간적 거리는 양(+)의 부호로 표시되고 list 0 레퍼런스 프레임으로부터 계산된 시간적 거리는 음(-)의 부호로 표시되며, TDD , 1는 list 1 레퍼런스 프레임의 피일드 1과 list 0 레퍼런스 피일드 사이의 시간적 거리로써 list 1 레퍼런스 프레임의 피일드 1로부터 계산된 시간적 거리는 양(+)의 부호로 표시되고 list 0 레퍼런스 피일드로부터 계산된 시간적 거리는 음(-)의 부호로 표시되며, MV1는 상기 다이렉트 모드의 list 1 레퍼런스 프레임의 피일드 1에 있는 동일 위치의 블록이 가지고 있는 모션벡터이다.Here, TD B is the temporal distance between the current B frame and the
도 1은 일반적인 IBBBP 패턴에서의 다이렉트 모드의 list 1 레퍼런스 픽쳐(list 1 reference picture for direct mode)를 설명하기 위한 도면.1 is a view for explaining a
도 2는 일반적인 IBBB 패턴에서의 다이렉트 모드의 list 1 레퍼런스 픽쳐를 설명하기 위한 도면.2 is a view for explaining a
도 3은 일반적인 다이렉트 모드의 list 1 레퍼런스 픽쳐가 B 픽쳐보다 시간적으로 뒤에 위치하는 경우를 나타낸 도면(L0 MV:list 0 모션벡터, L1 MV:list 1 모션벡터).3 is a diagram illustrating a case where a
도 4는 일반적인 다이렉트 모드의 list 1 레퍼런스 픽쳐가 B 픽쳐보다 시간적으로 앞에 위치하는 경우를 나타낸 도면(L0 MV:list 0 모션벡터, L1 MV:list 1 모션벡터).FIG. 4 is a diagram illustrating a case where a
도 5는 일반적인 공간적 중복성을 고려하여, 주변 블록 A, B, C의 모션벡터를 이용하여 블록 E의 예측 모션벡터를 연산하는 것을 설명하기 위한 도면.FIG. 5 is a diagram for explaining calculation of a predictive motion vector of block E using motion vectors of neighboring blocks A, B, and C in consideration of general spatial redundancy. FIG.
도 6은 일반적인 다이렉트 모드의 list 1 레퍼런스 픽쳐가 B 픽쳐보다 시간적으로 뒤에 위치할 때, B 픽쳐의 매크로블록과 list 1 레퍼런스 픽쳐의 동일 위치에 있는 매크로블록이 모두 프레임 모드인 경우를 나타낸 도면.FIG. 6 is a diagram illustrating a case in which both macroblocks of a B picture and macroblocks at the same position of the
도 7은 일반적인 다이렉트 모드의 list 1 레퍼런스 픽쳐가 B 픽쳐보다 시간적으로 뒤에 위치할 때, B 픽쳐의 매크로블록과 list 1 레퍼런스 픽쳐의 동일 위치에 있는 매크로블록이 모두 피일드 모드인 경우를 나타낸 도면.FIG. 7 is a diagram illustrating a case in which both macroblocks of a B picture and macroblocks at the same position of the
도 8은 일반적인 다이렉트 모드의 list 1 레퍼런스 픽쳐가 B 픽쳐보다 시간 적으로 뒤에 위치할 때, B 픽쳐의 매크로블록이 피일드 모드이고 list 1 레퍼런스 픽쳐의 동일 위치에 있는 매크로블록이 프레임 모드인 경우를 나타낸 도면.FIG. 8 illustrates a case in which a macroblock of a B picture is a shield mode and a macroblock in the same position of the
도 9는 일반적인 다이렉트 모드의 list 1 레퍼런스 픽쳐가 B 픽쳐보다 시간적으로 뒤에 위치할 때, B 픽쳐의 매크로블록이 프레임 모드이고 list 1 레퍼런스 픽쳐의 동일 위치에 있는 매크로블록이 피일드 모드인 경우를 나타낸 도면.FIG. 9 illustrates a case in which a macroblock of a B picture is a frame mode and a macroblock at the same position of the
도 10은 일반적인 다이렉트 모드의 list 1 레퍼런스 픽쳐가 B 픽쳐보다 시간적으로 앞에 위치할 때, B 픽쳐의 매크로블록과 list 1 레퍼런스 픽쳐의 동일 위치에 있는 매크로블록이 모두 프레임 모드인 경우를 나타낸 도면.FIG. 10 is a diagram illustrating a case in which both macroblocks of a B picture and macroblocks at the same position of the
도 11은 일반적인 다이렉트 모드의 list 1 레퍼런스 픽쳐가 B 픽쳐보다 시간적으로 앞에 위치할 때, B 픽쳐의 매크로블록과 list 1 레퍼런스 픽쳐의 동일 위치에 있는 매크로블록이 모두 피일드 모드인 경우를 나타낸 도면.FIG. 11 is a diagram illustrating a case in which both macroblocks of a B picture and macroblocks at the same position of the
도 12는 일반적인 다이렉트 모드의 list 1 레퍼런스 픽쳐가 B 픽쳐보다 시간적으로 앞에 위치할 때, B 픽쳐의 매크로블록이 피일드 모드이고 list 1 레퍼런스 픽쳐의 동일 위치에 있는 매크로블록이 프레임 모드인 경우를 나타낸 도면.12 illustrates a case in which a macroblock of a B picture is a shield mode and a macroblock at the same position of the
도 13은 일반적인 다이렉트 모드의 list 1 레퍼런스 픽쳐가 B 픽쳐보다 시간적으로 앞에 위치할 때, B 픽쳐의 매크로블록이 프레임 모드이고 list 1 레퍼런스 픽쳐의 동일 위치에 있는 매크로블록이 피일드 모드인 경우를 나타낸 도면.FIG. 13 illustrates a case in which a macroblock of a B picture is a frame mode and a macroblock at the same position of the
Claims (1)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020080089781A KR100890513B1 (en) | 2008-09-11 | 2008-09-11 | Method of determining motion vector |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020080089781A KR100890513B1 (en) | 2008-09-11 | 2008-09-11 | Method of determining motion vector |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020050048920A Division KR20050067117A (en) | 2005-06-08 | 2005-06-08 | Method of determining motion vector |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20080088557A KR20080088557A (en) | 2008-10-02 |
KR100890513B1 true KR100890513B1 (en) | 2009-03-26 |
Family
ID=40150660
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020080089781A KR100890513B1 (en) | 2008-09-11 | 2008-09-11 | Method of determining motion vector |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100890513B1 (en) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010012403A1 (en) | 1996-02-29 | 2001-08-09 | Hiroshi Takizawa | An image coding process and notion detecting process using bidirectional prediction |
-
2008
- 2008-09-11 KR KR1020080089781A patent/KR100890513B1/en active IP Right Grant
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010012403A1 (en) | 1996-02-29 | 2001-08-09 | Hiroshi Takizawa | An image coding process and notion detecting process using bidirectional prediction |
Also Published As
Publication number | Publication date |
---|---|
KR20080088557A (en) | 2008-10-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100985268B1 (en) | Method of determining motion vector | |
KR100890511B1 (en) | Method of determining motion vector | |
KR100907174B1 (en) | Method of determining motion vector | |
KR100883025B1 (en) | Method of determining motion vector | |
KR100985263B1 (en) | Method of determining motion vector | |
KR100991618B1 (en) | Method of determining motion vector | |
KR100890510B1 (en) | Method of determining motion vector | |
KR100890512B1 (en) | Method of determining motion vector | |
KR100985379B1 (en) | Method of determining motion vector | |
KR100985353B1 (en) | Method of determining motion vector | |
KR100890513B1 (en) | Method of determining motion vector | |
KR100907173B1 (en) | Method of determining motion vector | |
KR100890508B1 (en) | Method of determining motion vector | |
KR100890514B1 (en) | Method of determining motion vector | |
KR100991568B1 (en) | Method of determining motion vector | |
KR100864791B1 (en) | Method of determining motion vector | |
KR100864792B1 (en) | Method of determining motion vector | |
KR100864790B1 (en) | Method of determining motion vector | |
KR100890504B1 (en) | Method of determining motion vector | |
KR100890509B1 (en) | Method of determining motion vector | |
KR100890506B1 (en) | Method of determining motion vector | |
KR100890507B1 (en) | Method of determining motion vector | |
KR100890505B1 (en) | Method of determining motion vector | |
KR100991624B1 (en) | Method of determining motion vector | |
KR100890516B1 (en) | Method of determining motion vector |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A107 | Divisional application of patent | ||
A201 | Request for examination | ||
A302 | Request for accelerated 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: 20130226 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20140224 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20150224 Year of fee payment: 7 |
|
FPAY | Annual fee payment |
Payment date: 20160224 Year of fee payment: 8 |
|
FPAY | Annual fee payment |
Payment date: 20170214 Year of fee payment: 9 |
|
FPAY | Annual fee payment |
Payment date: 20190214 Year of fee payment: 11 |