KR100822928B1 - 직접 부호화 모드에서의 참조 이미지 블럭을 추정하는 방법 - Google Patents
직접 부호화 모드에서의 참조 이미지 블럭을 추정하는 방법 Download PDFInfo
- Publication number
- KR100822928B1 KR100822928B1 KR20067010567A KR20067010567A KR100822928B1 KR 100822928 B1 KR100822928 B1 KR 100822928B1 KR 20067010567 A KR20067010567 A KR 20067010567A KR 20067010567 A KR20067010567 A KR 20067010567A KR 100822928 B1 KR100822928 B1 KR 100822928B1
- Authority
- KR
- South Korea
- Prior art keywords
- factor
- scale
- len
- shift
- motion vector
- 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/577—Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/103—Selection of coding mode or of prediction mode
- H04N19/105—Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/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
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
본 발명은 "영방향(零方向)" 사입할 수 있는 방법을 제출하는 것을 통하여 정확한 움직임 벡터를 유지하게끔 하였을 뿐만 아니라 또한 비제산(dividerless)법 의 방식으로도 실현할 수 있으며 움직임 벡터 계산에 있어서 정확도를 향상시킬 수 있다. 또한, 진정으로 영상 중의 물체의 운동을 체현할 수 있으며 더욱 정확한 움직임 벡터 예측을 획득할 수 있으며 순방향 예측 부호화, 역방향 예측 부호화와 결합하여 하나의 새로운 예측 부호화의 방법을 실현하였으며 직접 모드에서의 부호화의 고 효율성을 보증할 수 있을 뿐만 아니라 하드웨어의 실현에도 편리하며 종래의 B 프레임 부호화와 유사한 효과를 얻을 수 있다.
Description
본 발명은 영상 부호화(video coding)에서 사용되는 참조 이미지 블럭 (reference image block)을 추정하는 방법에 관한 것이며 특히 직접 부호화 (direct coding) 모드에서의 참조 이미지 블럭(reference image block)을 추정하는 방법에 관한 것이며 영상 부호화/복호화(video coding/decoding) 기술분야에 속한다.
고효율의 영상 부호화/복호화 기술은 멀티미디어(multi media)에서 데이터의 저장과 전달을 질적 수준이 높고 원가가 낮게 실현하는 것이 관건이다. 현재 비교적 잘 사용되고 있는 영상 부호화 국제표준은 모두 이런 부호화 이론을 기초로 하고 있으며 블럭 정합(block matching)을 기초로 한 움직임 보상, 이산 코사인 변환과 양자화를 서로 결합한 부호화 방법을 채용하고 있다. 전형적인 것으로는 국제표준화기구/국제전기협회 합동기술위원회(ISO/IEC JTC1)에서 제정한 MPEG-1, MPEG-2 및 MPEG-4등 국제표준, 그리고 국제전기통신연합(ITU-T)에서 제출한 H.26x시리즈가 있다. 이런 영상 부호화 표준은 산업계에서 널리 이용되고 있다.
이런 영상 부호화 표준은 모두 혼합 영상 부호화 (Hybrid Video Coding) 책략을 채용하고 있으며 일반적으로 예측, 변환, 양자화 및 정보 엔트로피 부호화(entropy coding) 등 4개의 주요한 모듈을 포함하고 있다. 예측모듈의 주요한 기능은 이미 부호화 및 복원된 이미지를 이용하여 현재 부호화하려고 하는 이미지에 대해 예측을 진행하는 것이며, 즉 프레임간 예측을 한다. 또는 이미지 중에서 이미 부호화 및 복원된 이미지 블럭 혹은 매크로 블럭(macro block)을 이용하여 현재 부호화하려고 하는 이미지 블럭 혹은 매크로 블럭에 대해 예측하는 것이며, 즉 프레임 내 예측을 한다.
움직임 보상을 기초로 한 예측의 주요한 기능은 영상서열들의 시간상에서의 중복성을 제거하는데 있다. 영상 부호화의 대부분 부호화 효율은 예측 모듈과 관계 있다. 영상 부호화의 과정은 영상서열의 매 하나의 프레임 이미지에 대해 부호화를 진행하는 과정이다. 일반적으로 쓰이고 있는 영상 부호화 시스템의 매 하나 프레임에 대한 부호화는 매크로 블럭을 기본 단위로 진행한다. 현재 매크로 블럭을 부호화할 때, 현재 매크로 블럭과 참조 블럭 사이를 움직임 벡터를 이용하여 연결한다. 매 하나의 프레임을 부호화할 때, 또는 프레임 내 부호화 I 프레임, 예측 P 프레임 부호화와 양방향 B 프레임 부호화 등 경우로 나눌 수 있다. 부호화할 때, 일반적으로 I 프레임, P 프레임과 B 프레임 부호화를 교차하여 진행한다, 예를 들어 IBBPBBP의 순서로 진행한다.
B 프레임 기술은 순방향 및 역방향 움직임 예측을 동시에 진행해야 하기 때문에 계산상의 비교적 높은 복잡성이 필요하며 동시에 순방향 역방향 움직임 벡터를 구분하기 위하여 또 다른 표식 정보를 인입할 필요가 있다. 그러나 직접 부호화 모드를 채용하면 그들의 순방향 역방향 움직임 벡터는 역방향 참조 이미지의 움직임 벡터로부터 유도해낼 수 있어서 움직임 벡터 정보에 대해 부호화를 진행하지 않아도 되기 때문에 움직임 벡터 정보를 부호화하는 비트를 감소할 수 있으며 부호화의 효율을 향상시킬 수 있다.
종래기술에 의하면, 직접 부호화 모드(direct mode)에서 움직임 벡터의 유도는 다음과 같은 과정을 거쳐 실현된다.
MV
F
=
td/
tp
×
MV
MV
B
= (
td -
tp
)/
tp
×
MV
그 중, MVF 와 MVB는 각각 현재 블럭에 대응되는 순방향 움직임 벡터와 역방향 움직임 벡터이며 여기에서 tb는 현재 이미지와 순방향 참조 이미지의 시간영역에서의 거리이며 td는 순방향 참조 이미지와 역방향 참조 이미지의 시간영역에서의 거리이며 MV는 역방향 참조 이미지의 상응 부분의 순방향 참조 프레임에 대한 움직임 벡터이다.
이상의 계산식으로부터 알 수 있는 바와 같이, MVF와 MVB의 값은 정수가 아닐 수도 있으며 만약 움직임 벡터가 소수부분을 포함하였을 때, 움직임 벡터는 화소를 단위로 하기 때문에 참조 이미지 중에서 움직임 벡터가 가리키는 매칭 블럭(matching block)을 찾을 수 없다. 때문에 MVF와 MVB의 계산 값에 대해 처리할 필요가 있으며 정수의 움직임 벡터로 정할 필요가 있다.
예를 들어, H.264/AVC에 의해 직접 부호화 모드에서의 움직임 벡터 MVF와 MVB는 다음과 같은 계산식을 통해 얻은 것이다.
Z = (tb × 256)/ tp
W = Z - 256
MVF = (Z×MV + 128) >> 8
MVB = (W×MV + 128) >> 8
그중, " >> 8"은 오른쪽으로 8자리 움직임을 표시한다.
그러나 이런 사입(捨入)방법을 이용하여도 여전히 정확한 현재 블럭의 예측 블럭을 얻을 수 없으며 획득한 움직임 벡터가 가리키는 이미지 블럭에 편차가 생기어 직접 모드에서 움직임 벡터를 유도하는 정확성에 크게 영향을 준다. 직접 모드는 B 프레임이 사용하는 양식 중에서 약 70 - 80%를 차지하며, 이로 하여 B 프레임의 압축효율을 크게 감소한다. 따라서, 어떻게 하면 직접 모드의 움직임 벡터를 추정할 것인가 하는 것이 영상 압축분야에서의 난점으로 되고 있다.
본 발명이 이루고자 하는 기술적 과제는 직접 모드에서 영상 부호화 중 움직임 벡터를 추정하는 방법을 제공하여 더욱 정확하게 움직임 벡터 예측을 진행하여 압축효율을 향상시키는데 있다.
상기 목적을 실현하기 위하여, 본 발명의 기술방안은 단계 1, 단계 2와 단계 3을 포함하며;
단계 1에서는 B 프레임 역방향 참조 프레임 중에서 현재 이미지 블럭에 상대한 움직임 벡터를 획득하며;
단계 2에서는 이미 얻은 역방향 참조 프레임 중의 대응 이미지 블럭의 움직임 벡터에 근거하여 B 프레임 현재 이미지 블럭의 직접 모드에서의 움직임 벡터를 유도하는데 사용되는 벡터 MV(x, y)를 얻으며, 현재 블럭의 순방향 움직임 벡터 MVF를 다음 식을 이용하여 계산한다, 즉:
scale_factor = 2shift_len, td = tp - tb라고 설정하였을 경우,
만약 mv(i) < 0 이 성립되면,
MVF(i) = - (((scale_factor / tp)×(1 - mv(i)×tb)-1) >> shift_len)이며,
그렇지 않으면,
MVF(i) = ((scale_factor / tp)×(1 + mv(i)×tb)-1) >> shift_len)이며,
현재 블럭의 역방향 움직임 벡터 MVB를 다음 식을 이용하여 계산한다, 즉:
만약 mv(i) < 0 이 성립되면,
MVB(i) = ((scale_factor / tp)×(1 - mv(i)×td)-1) >> shift_len이며,
그렇지 않으면,
MVB(i) = - (((scale_factor / tp)×(1 + mv(i)×td)-1) >> shift_len이며,
그 중, scale_factor의 값은 소수확대인자이며 shift_len은 오른쪽으로 이동해야 하는 횟수이며, MVF와 MVB는 현재 블럭에 상응한 순방향 움직임 벡터와 역방향 움직임 벡터이며, tb는 현재 이미지와 순방향 참조 이미지의 시간영역에서의 거리이며, td는 순방향 참조 이미지와 역방향 참조 이미지의 시간영역에서의 거리이며,
MV는 역방향 참조 이미지 대응부분의 순방향 참조 프레임에 상대한 움직임 벡터를 표시하며,
MV(x, y) = (MV(x),MV(y))는 2차원 벡터이며, 그 상응한 성분들은 MV(x), MV(y)이며,
MV(i)는 MV(x) 혹은 MV(y)를 대표하며, a/b는 a와 b를 나눈 수를 영방향에서의 정수를 취한 값을 표시하며;
단계 3에서는 단계 2에서 얻은 움직임 벡터가 가리키는 순방향, 역방향 이미지 블럭이 바로 현재 이미지 블럭의 참조 이미지 블럭에 해당된다.
그리고 상기 식 중에서, "(1 ± mv(i)×tb)- 1"을 "1±mv(i)×tb)"로 바꾸어도 그 결과는 비슷하다. 그러나 일반적으로 "(1 ± mv(i)×tb)- 1"을 사용한 부호화 효과가 더욱 좋다.
본 발명을 통하여 "영방향(零方向)" 사입할 수 있는 방법을 제공하여 정확한 움직임 벡터를 유지하게끔 하였을 뿐만 아니라 또한 비제산(dividerless)법의 방식으로도 실현할 수 있으며 움직임 벡터 계산에 있어서 정확도를 향상시킬 수 있다. 또한, 진정으로 영상 중의 물체의 운동을 체현할 수 있으며 더욱 정확한 움직임 벡터 예측을 획득할 수 있으며 순방향 예측 부호화, 역방향 예측 부호화와 결합하여 하나의 새로운 예측 부호화의 방법을 실현하였으며 직접 모드에서의 부호화 고 효율성을 보증할 수 있을 뿐만 아니라 하드웨어의 실현에도 편리하며 종래의 B 프레임 부호화와 유사한 효과를 얻을 수 있다.
도 1은 본 발명을 직접 모드에 응용하였을 때의 개략도이다.
도 2는 본 발명의 기술방안의 흐름도이다.
이하, 첨부된 도면과 실시예를 결합하여 본 발명의 기술방안에 대해 추가로 상세히 설명하기로 한다.
도 1은 본 발명의 기술방안의 응용방식의 개략도이다. 도 중에 표시한 것은 직접 모드 하에서 움직임 벡터를 유도하는 과정이며, 그 중 tb는 현재 이미지와 순방향 참조 이미지의 시간영역에서의 거리이며, td는 순방향 참조 이미지와 역방향 참조 이미지의 시간영역에서의 거리이다. 우선, 설명중에 사용되는 정의들을 설명하기로 하자:
a/b는 a와 b를 나눈 값의 영방향에서의 정수를 표시하며, 예를 들어, 15/7=2, -15/7=-2; MV(x,y) = ( MV(x) , MV(y) )는 2차원 벡터이며 그 상응한 성분들은 MV(x), MV(y)이며, MV(i)는 MV(x) 혹은 MV(y)를 대표한다.
도 2를 참조하여, 부호화 측의 직접 모드 하에서 B 프레임 순방향 역방향 참조 블럭을 추정하는 과정은 다음과 같은 단계를 포함한다.
단계 1, B 프레임 역방향 참조 프레임 중에서 현재 이미지 블럭에 상대한 움직임 벡터를 획득한다;
단계 2, 이미 얻은 역방향 참조 프레임 중의 대응 이미지 블럭의 움직임 벡터에 근거하여 B 프레임 현재 이미지 블럭의 직접 모드에서의 움직임 벡터를 유도하는데 사용되는 벡터 MV (x,y)를 얻는다,
현재 블럭의 순방향 움직임 벡터 MVF는 다음 식을 이용하여 계산한다:
scale_factor = 2shift_len, td = tp - tb라고 설정하였을 경우,
만약 mv(i) < 0 이 성립되면
MVF(i) = - (((scale_factor / tp)×(1 - mv(i)×tb)-1) >> shift_len)이며,
그렇지 않으면,
MVF(i) = ((scale_factor / tp)×(1 + mv(i)×tb)-1) >> shift_len이다.
현재 블럭의 역방향 움직임 벡터 MVB는 다음 식을 이용하여 계산한다:
만약 mv(i) < 0 이 성립되면
MVB(i) = ((scale_factor / tp)×(1 - mv(i)×td)-1) >> shift_len이며,
그렇지 않으면,
MVB(i) = - (((scale_factor / tp)×(1 + mv(i)×td)-1) >> shift_len이다.
그 중, scale_factor의 값은 소수확대인자이며 scale_factor = 2shift_len, shift_len은 자연수이며 오른쪽으로 자리 움직인 차수를 표시한다. scale_factor의 값이 크면 클수록 공식 중의 계산결과가 더욱 정확하도록 보증한다.
단계 3, 단계 2에서 얻은 움직임 벡터가 가리키는 순방향, 역방향 이미지 블 럭이 바로 현재 이미지 블럭의 참조 이미지 블럭에 해당된다.
scale_factor는 확대인자이기 때문에 제법(除法)을 피하기 위해 먼저 나누어지는 수를 확대한 후, 오른쪽으로 움직임으로써 정확도의 손실을 감소시키고 있다. 이것이 바로 본 발명의 주요사상이다.
tp, td의 값이 일정한 범위에 속하기 때문에 일반적으로 tp, td은 10을 초과하지 않는다. 따라서 scale_factor / tp ,tb × scale_factor / tp,td / tp × scale_factor를 미리 계산해 낼 수 있으며 리스트를 형성할 수 있다. 계산에 필요할 때, 직접 리스트로부터 수요되는 값을 읽어낼 수 있어 계산의 복잡성을 감소시키며 계산의 속도를 향상시킨다.
또한, 이상의 계산식 중, "tb × scale_factor / tp × mv(i)-1"을 "tb × scale_factor / tp × mv(i)"로 바꿔도 결과는 비슷하다. 그러나 일반적인 정황하에서 "tb × scale_factor / tp × mv(i)-1"을 사용한 부호화 효과가 더욱 좋다.
동시에, td = tp tb이기 때문에 필요시 역방향 움직임 벡터의 유도과정을 진일보 간단화하여 다음과 같이 진행할 수 있다:
현재 블럭의 순방향 움직임 벡터 MVF는 다음 식을 이용하여 계산한다.
scale_factor = 2shift_len 라고 설정하였을 경우,
만약 mv(i) < 0 이 성립되면
MVF(i) = -(((scale_factor / tp) - (tb × scale_factor / tp) × mv(i)) >> shift_len)이며,
그렇지 않으면
MVF(i) = ((scale_factor / tp) + (tb × scale_factor / tp) × mv(i)) >> shift_len이다.
현재 블럭의 역방향 움직임 벡터 MVB는 다음 식을 이용하여 계산한다.
만약 mv(i) < 0 이 성립되면
MVB(i) = ((scale_factor / tp) - (td × scale_factor / tp)×mv(i)) >> shift_len이며,
그렇지 않으면,
MVB(i) = - (((scale_factor / tp) + (td × scale_factor / tp)×mv(i)) >> shift_len)이다.
역시, 이상의 계산식 중, "1 ± mv(i) × tb) - 1"을 "1 ± mv(i) × tb)"로 바꿔도 결과는 비슷하다. 그러나 일반적인 정황하에서 "1 ± mv(i) × tb) - 1"을 사용한 부호화 효과가 더욱 좋다.
이하, 구체적인 실시를 통해 본 발명의 기술방안에 대해 추가 설명하기로 한다.
tb=1, td=2, MV = (5,-7) 일 경우, tp = 3.
H.264/AVC에서,
Z = (tb × 256)/tp = 85
W = Z - 256 = -171
MVF(x) = (Z×MV(x) + 128) >> 8 = (Z×5 + 128) >> 8 = 2;
MVB(x) = (W×MV(x) + 128) >> 8 = (W×5 + 128) >> 8 = -3;
MVF(y) = (Z×MV(y) + 128) >> 8 = (Z×-7 + 128) >> 8 = 2;
MVB(y) = (W×MV(y) + 128) >> 8 = (W×-7 + 128) >> 8 = 5;
본 발명의 방법에 의하면 여기서 scale_factor = 256, shift_len = 8이며;
순방향 움직임 벡터를 놓고 볼 때:
mv(x) = 5 > 0이기 때문에
MVF(x) = ((256 / 3) + (1 × 256/3) × 5) >> 8 = 1이며,
mv(y) = -7 < 0이기 때문에
MVF (y) = -(((256 / 3) - (1 × 256 / 3)×-7) >> 8) = -2이며,
역방향 움직임 벡터를 놓고 볼 때:
mv(x) = 5 > 0이기 때문에
MVB(x) = - (((256/3) + (2 × 256 / 3)×5) >> 8) = -3이며,
mv(y) = -7 < 0이기 때문에
MVB(y) = ((256 / 3) - (2 × 256 / 3)×7) >> 8 = 4이다.
영상서열의 시간영역에서 접근한 이미지 사이에는 비교적 큰 시간영역 상관성을 갖고 있기에 그리고 서로 접근한 이미지 사이에서는 물체의 운동을 대부분 안정된 속도와 편차가 적은 수평이동운동으로 유지하기 때문에 본 발명은 위와 같은 방식을 채용하여 사입오차로 하여 생긴 움직임 벡터 유도에 대한 영향을 감소시킬 수 있으며 더욱 정확한 예측 참조 블럭을 얻을 수 있다.
마지막으로 설명하고 싶은 것은 이상의 실시예는 다만 본 발명의 기술방안을 설명하기 위한 것이지 본 발명을 제한하는 것이 아니다. 비록 최적 실시예를 참조하여 본 발명에 대해 상세히 설명하였지만 본 기술분야의 일반 기술인원들은 응당 본 발명의 기술방안에 대해 개정 혹은 동등한 교체를 할 수 있으며 본 발명의 기술방안의 사상과 범위를 떠나지 않는 한 응당 본 발명의 청구의 범위에 속한다고 이해하여야 할 것이다.
Claims (7)
- 단계 1, 단계 2와 단계 3을 포함하며;단계 1에서, B 프레임 역방향 참조 프레임 중에서 현재 이미지 블럭에 상대한 움직임 벡터를 획득하며;단계 2에서, 이미 획득한 역방향 참조 프레임 중의 대응 이미지 블럭의 움직임 벡터에 근거하여 B 프레임 현재 이미지 블럭의 직접 모드에서의 움직임 벡터를 유도하는데 사용되는 벡터 MV(x, y)를 획득하는데,현재 블럭의 순방향 움직임 벡터 MVF는 다음 식을 이용하여 계산되고:scale_factor = 2shift_len, td = tp - tb라고 설정하였을 경우,만약 mv(i) < 0 이 성립되면,MVF(i) = - (((scale_factor / tp)×(1 - mv(i)×tb)-1) >> shift_len)이며,그렇지 않으면,MVF(i) = ((scale_factor / tp)×(1 + mv(i)×tb)-1) >> shift_len)이며,현재 블럭의 역방향 움직임 벡터 MVB는 다음 식을 이용하여 계산되며:만약 mv(i) < 0 이 성립되면,MVB(i) = ((scale_factor / tp)×(1 - mv(i)×td)-1) >> shift_len이며,그렇지 않으면,MVB(i) = - (((scale_factor / tp)×(1 + mv(i)×td)-1) >> shift_len)이며,상기 scale_factor의 값은 소수확대인자이며, shift_len은 자연수이며, MVF와 MVB는 현재 블럭에 상응한 순방향 움직임 벡터와 역방향 움직임 벡터이며, tb는 현재 이미지와 순방향 참조 이미지의 시간영역에서의 거리이며, td는 순방향 참조 이미지와 역방향 참조 이미지의 시간영역에서의 거리이며, MV는 역방향 참조 이미지 대응부분의 순방향 참조 프레임에 상대한 움직임 벡터를 표시하며, MV(x, y) = (MV(x), MV(y))는 2차원 벡터이며 그 상응한 성분들은 MV(x), MV(y)이며, MV(i)는 MV(x) 혹은 MV(y)를 대표하며, a/b는 a와 b를 나눈 수를 영방향에서의 정수를 취한 것을 표시하며;단계 3에서, 단계 2에서 획득한 움직임 벡터가 가리키는 순방향, 역방향 이미지 블럭이 바로 현재 이미지 블럭의 참조 이미지 블럭에 해당되는 것을 특징으로 하는 직접 부호화 모드에서의 참조 이미지 블럭을 추정하는 방법.
- 제 1 항에 있어서,상기 단계 2에서, 다음과 같은 방법을 통해 B 프레임 현재 이미지 블럭의 직접 부호화에 사용하는 움직임 벡터 MV(x, y)를 획득하는데,현재 블럭의 순방향 움직임 벡터 MVF는 다음 식을 이용하여 계산되고:scale_factor = 2shift_len 라고 설정하였을 경우,만약 mv(i) < 0 이 성립되면,MVF(i) = -(((scale_factor / tp) - (tb × scale_factor / tp) × mv(i)-1) >> shift_len)이며,그렇지 않으면,MVF(i) = ((scale_factor / tp) + (tb × scale_factor / tp) × mv(i)-1) >> shift_len이고,현재 블럭의 역방향 움직임 벡터 MVB는 다음 식을 이용하여 계산되며:만약 mv(i) < 0 이 성립되면,MVB(i) = ((scale_factor / tp) - (td × scale_factor / tp) × mv(i)-1) >> shift_len이며,그렇지 않으면,MVB(i) = - (((scale_factor / tp) + (td × scale_factor / tp) × mv(i)-1) >> shift_len)이며,상기 scale_factor의 값은 소수확대인자이며, shift_len은 오른쪽으로 움직인 횟수를 표시하며, MVF와 MVB는 현재 블럭에 상응한 순방향 움직임 벡터와 역방향 움직임 벡터이며, tb는 현재 이미지와 순방향 참조 이미지의 시간영역에서의 거리이며, td는 순방향 참조 이미지와 역방향 참조 이미지의 시간영역에서의 거리이며, MV는 역방향 참조 이미지의 상응한 부분에 대응되는 순방향 참조 프레임의 움직임 벡터를 표시하며, MV(x, y) = ( MV(x) , MV(y) )는 2차원 벡터이며 그 상응한 성분들은 MV(x), MV(y)이며、 MV(i)는 MV(x) 혹은 MV(y)를 대표하며, a/b는 a와 b를 나눈 값의 영방향에서의 정수를 취한 것을 표시하는 것을 특징으로 하는 직접 부호화 모드에서의 참조 이미지 블럭을 추정하는 방법.
- 제 1 항에 있어서,상기 단계 2에서, 현재 블럭의 순방향 움직임 벡터 MVF는 다음 식을 이용하여 계산되고:scale_factor = 2shift_len, td = tp - tb라고 설정하였을 때,만약 mv(i) < 0 이 성립되면,MVF(i) = - (((scale_factor / tp)×(1 - mv(i)×tb)) >> shift_len)이며,그렇지 않으면,MVF(i) = ((scale_factor / tp)×(1 + mv(i)×tb)) >> shift_len이며,현재 블럭의 역방향 움직임 벡터 MVB는 다음 식을 이용하여 계산되며:만약 mv(i) < 0 이 성립되면,MVB(i) = ((scale_factor / tp)×(1 - mv(i)×td)) >> shift_len이며,그렇지 않으면,MVB(i) = - (((scale_factor / tp)×(1 + mv(i)×td)) >> shift_len인 것을 특징으로 하는 직접 부호화 모드에서의 참조 이미지 블럭을 추정하는 방법.
- 제 1 항에 있어서,상기 단계 2에서, 현재 블럭의 순방향 움직임 벡터 MVF는 다음 식을 이용하여 계산되고:scale_factor = 2shift_len라고 설정하였을 때,만약 mv(i) < 0이 성립되면,MVF(i) = -(((scale_factor / tp) - (tb × scale_factor / tp) × mv(i)) >> shift_len)이며,그렇지 않으면,MVF(i) = ((scale_factor / tp) + (tb × scale_factor / tp) × mv(i)) >> shift_len이며,현재 블럭의 역방향 움직임 벡터 MVB는 다음 식을 이용하여 계산되며:만약 mv(i) < 0이 성립되면,MVB(i) = ((scale_factor / tp) - (td × scale_factor / tp) × mv(i)) >> shift_len이며,그렇지 않으면,MVB(i) = - (((scale_factor / tp) + (td × scale_factor / tp) × mv(i)) >> shift_len)인 것을 특징으로 하는 직접 부호화 모드에서의 참조 이미지 블럭을 추정하는 방법.
- 제 2 항에 있어서,상기 단계 1 전에 미리 scale_factor / tp,tb × scale_factor / tp,td / tp × scale_factor 등 파라미터들을 계산하여 계산결과를 표에 저장해두며 단계 2의 계산중에 이를 직접 이용할 수 있는 것을 특징으로 하는 직접 부호화 모드에서의 참조 이미지 블럭을 추정하는 방법.
- 제 1 항 내지 제 3 항 중 어느 한 항에 있어서,상기 단계 2 중의 shift_len은 8보다 크거나 혹은 같은 자연수인 것을 특징으로 하는 직접 부호화 모드에서의 참조 이미지 블럭을 추정하는 방법.
- 제 1 항에 있어서,역방향 참조 프레임에 상응한 블럭의 움직임 벡터를 획득하는 과정은, 역방향 참조 프레임 P 프레임 중에서 B 프레임 중 부호화하려고 하는 매크로 블럭과 같은 매크로 블럭을 대응 매크로 블럭으로 선택하며 P 프레임 해당 매크로 블럭의 움직임 벡터를 획득하는 것을 포함하는 것을 특징으로 하는 직접 부호화 모드에서의 참조 이미지 블럭을 추정하는 방법.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2003101160902A CN1225128C (zh) | 2003-12-31 | 2003-12-31 | 直接编码模式下确定参考图像块的方法 |
CN200310116090.2 | 2003-12-31 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20060126974A KR20060126974A (ko) | 2006-12-11 |
KR100822928B1 true KR100822928B1 (ko) | 2008-04-16 |
Family
ID=34304834
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR20067010567A KR100822928B1 (ko) | 2003-12-31 | 2004-07-08 | 직접 부호화 모드에서의 참조 이미지 블럭을 추정하는 방법 |
Country Status (5)
Country | Link |
---|---|
US (1) | US7974344B2 (ko) |
JP (1) | JP4670085B2 (ko) |
KR (1) | KR100822928B1 (ko) |
CN (1) | CN1225128C (ko) |
WO (1) | WO2005067298A1 (ko) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070064809A1 (en) * | 2005-09-14 | 2007-03-22 | Tsuyoshi Watanabe | Coding method for coding moving images |
JP2009094828A (ja) * | 2007-10-10 | 2009-04-30 | Hitachi Ltd | 画像符号化装置及び画像符号化方法、画像復号化装置及び画像復号化方法 |
US9288501B2 (en) | 2011-03-08 | 2016-03-15 | Qualcomm Incorporated | Motion vector predictors (MVPs) for bi-predictive inter mode in video coding |
US20140119446A1 (en) * | 2012-11-01 | 2014-05-01 | Microsoft Corporation | Preserving rounding errors in video coding |
CN103024397B (zh) * | 2013-01-07 | 2015-07-08 | 华为技术有限公司 | 确定时域运动矢量预测值的方法和装置 |
CN116418992A (zh) | 2018-08-26 | 2023-07-11 | 北京字节跳动网络技术有限公司 | 组合的基于历史的运动矢量预测符和多运动模型解码 |
CN110650348A (zh) * | 2018-10-03 | 2020-01-03 | 北京达佳互联信息技术有限公司 | 运动矢量的推导方法和编码方法、装置、设备及介质 |
WO2021047540A1 (en) | 2019-09-09 | 2021-03-18 | Beijing Bytedance Network Technology Co., Ltd. | Coefficient scaling for high precision image and video coding |
WO2021052355A1 (en) | 2019-09-21 | 2021-03-25 | Beijing Bytedance Network Technology Co., Ltd. | High precision transform and quantization for image and video coding |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001033864A1 (en) * | 1999-10-29 | 2001-05-10 | Koninklijke Philips Electronics N.V. | Video encoding-method |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1449197A (zh) * | 2002-03-29 | 2003-10-15 | Lg电子株式会社 | 视频编码***中的b图象模式确定方法与装置 |
KR100508798B1 (ko) * | 2002-04-09 | 2005-08-19 | 엘지전자 주식회사 | 쌍방향 예측 블록 예측 방법 |
CN1290341C (zh) * | 2002-04-19 | 2006-12-13 | 松下电器产业株式会社 | 运动矢量的计算方法、动态图像的编码、解码方法及装置 |
JP2004007563A (ja) * | 2002-04-19 | 2004-01-08 | Matsushita Electric Ind Co Ltd | 動画像符号化方法および動画像復号化方法 |
JP2004088737A (ja) * | 2002-07-02 | 2004-03-18 | Matsushita Electric Ind Co Ltd | 画像符号化方法および画像復号化方法 |
JP2004040512A (ja) * | 2002-07-03 | 2004-02-05 | Matsushita Electric Ind Co Ltd | 画像符号化方法および画像復号方法 |
KR100506864B1 (ko) * | 2002-10-04 | 2005-08-05 | 엘지전자 주식회사 | 모션벡터 결정방법 |
-
2003
- 2003-12-31 CN CNB2003101160902A patent/CN1225128C/zh not_active Expired - Fee Related
-
2004
- 2004-07-08 US US10/584,777 patent/US7974344B2/en active Active
- 2004-07-08 JP JP2006545882A patent/JP4670085B2/ja not_active Expired - Lifetime
- 2004-07-08 KR KR20067010567A patent/KR100822928B1/ko active IP Right Grant
- 2004-07-08 WO PCT/CN2004/000770 patent/WO2005067298A1/zh active Application Filing
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001033864A1 (en) * | 1999-10-29 | 2001-05-10 | Koninklijke Philips Electronics N.V. | Video encoding-method |
Also Published As
Publication number | Publication date |
---|---|
JP4670085B2 (ja) | 2011-04-13 |
KR20060126974A (ko) | 2006-12-11 |
US20090304083A1 (en) | 2009-12-10 |
JP2007517437A (ja) | 2007-06-28 |
CN1225128C (zh) | 2005-10-26 |
US7974344B2 (en) | 2011-07-05 |
WO2005067298A1 (en) | 2005-07-21 |
CN1535026A (zh) | 2004-10-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110809887B (zh) | 用于多参考预测的运动矢量修正的方法和装置 | |
KR100897880B1 (ko) | 비디오 코딩에 사용되는 코딩단/디코딩단의 양방향예측방법 | |
KR100604392B1 (ko) | 비디오 부호화 방법 및 장치 | |
JP5052134B2 (ja) | 画像符号化方法,画像復号方法,画像符号化装置,画像復号装置,画像符号化プログラムおよび画像復号プログラム | |
CN101090494B (zh) | 活动图像编码/解码方法和设备 | |
KR100619377B1 (ko) | 움직임 추정 방법 및 장치 | |
US8385628B2 (en) | Image encoding and decoding method, apparatuses therefor, programs therefor, and storage media for storing the programs | |
JP5234587B2 (ja) | 映像符号化方法及び復号方法、それらの装置、及びそれらのプログラム並びにプログラムを記録した記憶媒体 | |
US10178383B2 (en) | Bi-prediction coding method and apparatus, bi-prediction decoding method and apparatus, and recording medium | |
US7088772B2 (en) | Method and apparatus for updating motion vector memories | |
US20050276327A1 (en) | Method and apparatus for predicting motion | |
KR20090074162A (ko) | 비디오 시퀀스에서 데이터 압축 방법 | |
KR100822928B1 (ko) | 직접 부호화 모드에서의 참조 이미지 블럭을 추정하는 방법 | |
CN117501689A (zh) | 视频处理的方法、设备和介质 | |
JPH10322705A (ja) | 動き検出及び動き補償予測回路 | |
WO2000034920A1 (en) | Motion vector estimation | |
JP2002335529A (ja) | 動画像符号化方法および装置 | |
KR100744435B1 (ko) | 고속 동영상 압축을 위한 dct 및 양자화 과정 생략 방법 | |
Wang et al. | Multi-hypothesis prediction based on implicit motion vector derivation for video coding | |
JP4642033B2 (ja) | 参照フレームの数を固定する符号化方式で画像の参照ブロックを取得する方法 | |
KR100767503B1 (ko) | 3차원 피팅을 이용한 움직임 벡터 보상 시스템 및 방법 | |
Tok et al. | A parametric merge candidate for high efficiency video coding | |
KR20070001054A (ko) | 이미지 플래그의 인코딩방법 | |
EP1408694A1 (en) | Direct mode motion vector calculation | |
Wang et al. | Implementation of Simple UMHexagon Search Algorithm in stereoscopic video encoding |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20130321 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20140319 Year of fee payment: 7 |
|
FPAY | Annual fee payment |
Payment date: 20170317 Year of fee payment: 10 |
|
FPAY | Annual fee payment |
Payment date: 20180403 Year of fee payment: 11 |
|
FPAY | Annual fee payment |
Payment date: 20190401 Year of fee payment: 12 |