KR100325253B1 - 움직임벡터 검색방법 및 장치 - Google Patents

움직임벡터 검색방법 및 장치 Download PDF

Info

Publication number
KR100325253B1
KR100325253B1 KR1019990016758A KR19990016758A KR100325253B1 KR 100325253 B1 KR100325253 B1 KR 100325253B1 KR 1019990016758 A KR1019990016758 A KR 1019990016758A KR 19990016758 A KR19990016758 A KR 19990016758A KR 100325253 B1 KR100325253 B1 KR 100325253B1
Authority
KR
South Korea
Prior art keywords
search
motion
template
vector
image
Prior art date
Application number
KR1019990016758A
Other languages
English (en)
Other versions
KR19990088182A (ko
Inventor
미나미도시히로
곤도도시오
나카무라겐
이케다미츠오
요시토메다케시
오구라다케시
Original Assignee
미야즈 준이치롯
니혼덴신뎅와가부시키가이샤
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 미야즈 준이치롯, 니혼덴신뎅와가부시키가이샤 filed Critical 미야즈 준이치롯
Publication of KR19990088182A publication Critical patent/KR19990088182A/ko
Application granted granted Critical
Publication of KR100325253B1 publication Critical patent/KR100325253B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/527Global motion vector estimation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation

Abstract

본 발명은, 소정의 템플레이트와 동일한 크기의 화소블럭군 사이에서 소정 연산에 의해 움직임을 평가하여 템플레이트에 대해 동작화상 내의 움직임벡터를 구하는 방법에 관한 것이다. 본 발명은, 넓은 영역을 탐색하여 화상 전체의 움직임을 도시하는 기준벡터를 구하는 제1단계(S1)와, 기준벡터를 구한 해당 화상을 이용하여 해당 화상 내의 모든 템플레이트에서 개별적으로 기준벡터를 중심으로 한 좁은 영역을 탐색하여 개개의 템플레이트에서 기준벡터로부터의 변이벡터를 구하는 제2단계(S2)와, 개개의 템플레이트에 대해서 기준벡터와 변이벡터를 가산하여 그 결과를 개개의 템플레이트의 움직임벡터로 하는 제3단계(S3)를 구비한다.

Description

움직임벡터 검색방법 및 장치{Motion vector search method and apparatus}
본 발명은 동화상의 프레임간 화상부호화 등에 사용되는 기술로서, 한 화상 내의 화소블럭이 다른 화상 내의 어느 위치에서 움직여 왔는지를 벡터로 표현하는 움직임벡터를 탐색하기 위한 움직임벡터 탐색방법, 움직임벡터 탐색장치 및 움직임벡터 탐색프로그램을 기억한 기억매체에 관한 것이다.
이하, 모식적 설명도를 참조하여 종래의 각종 움직임벡터 탐색방법에 관해 설명한다.
도 11은 움직임벡터를 구하는 대상인 템플레이트(1)와, 움직임벡터의 탐색범위인 탐색영역(2)을 모식적으로 도시한 도면이다. 템플레이트(1)는 처리대상인 화상내 화소블럭, 탐색영역(2)은 비교대상인 다른 화상내 화소블럭으로서 템플레이트(1)보다 큰 화소블럭이다. 또한 도에서 흰 세모로 도시한 3은 템플레이트(1)를 구성하는 화소, 흰 동그라미로 도시한 4는 탐색영역(2)을 구성하는 화소를 나타낸다.
도 11에서는 탐색영역(2) 위에 템플레이트(1)를 겹쳐 도시했기 때문에 중첩부분의 탐색영역내 화소(4)(○)는 표시하지 않았다. 또한 이하, 수평방향 화소수의 단위를「화소」,수직방향 화소수의 단위를「라인」이라 칭한다. 따라서 도 11에 도시한 템플레이트(1)는 4화소×4라인, 탐색영역(2)은 11화소×11라인이다.
그런데 템플레이트(1)에 대한 움직임벡터를 탐색하기 위한 종래의 제1방법인「전탐색법」에 관해 설명한다. 이 방법에서는 탐색영역(2)으로부터 템플레이트(1)와 같은 크기의 4화소×4라인의 영역을 순서대로 잘라내어 이 잘라낸 영역의 각 화소의 화소치와, 템플레이트(1)에 대응하는 화소의 화소치 사이에서 차례로 차분절대치나 차분자승치 등을 구하고 이 구한 값의 각 화소에 대한 총합을 잘라낸 영역마다 구한다.
즉, 탐색영역(2)에 있어서 왼쪽위에서부터 오른쪽아래에 걸쳐 4화소×4라인 영역을 1화소 또는 1라인씩 비켜놓으면 탐색영역(2)은 11화소×11라인이기 때문에 합계 8×8=64개의 영역이 템플레이트(1)와의 사이에서 연산(차분절대치나 차분자승치 등을 구하는 연산)을 실행하는 대상이 된다. 그리고 연산결과가 최소가 되는 영역에서 이 템플레이트(1)가 이동해 온 것으로써 움직임벡터를 구한다.
도 11에 있어서, 템플레이트(1)에 대응하는 위치의 화소블럭의 움직임벡터를(0,0)으로 하면 움직임벡터가 취할 수 있는 값의 범위는 수평방향, 수직방향 모두「-4∼+3」이다. 이것은 도 11을 참조하면 알 수 있듯이 템플레이트(1)가 수평방향 및 수직방향의 각각에 있어서 한쪽에 4화소(또는 4라인)분, 다른쪽에 3화소(또는 3라인)분 이동할 수 있는 것에 의한 것이다.
그리고 예컨대 화소블럭(5)의 연산치(차분절대치합, 차분자승치합 등)이 최소인 경우, 도 11을 참조하면 그 움직임벡터(V)는 (-2,-2)이 된다. 이상이 움직임벡터를 구하는 원리설명인데 도 12의 모식도를 참조하여 이 움직임벡터 탐색을 일반화한 것에 관해 설명한다.
처리대상이 되는 화상내 템플레이트(6)의 크기를 a화소×b라인, 비교대상이 되는 다른 화상내에서의 탐색영역(7)의 크기를 c화소×d라인(c≥a, d≥b), 템플레이트(6)에 대응한 탐색영역(7)의 중심 화소블럭의 움직임벡터를「(0,O)」으로 하면 움직임벡터가 얻을 수 있는 값의 범위는「수평방향:-(c-a+1)/2∼(c-a)/2, 수직방향:-(d-b+1)/2∼(d-b)/2」이고, 「(c-a+1)×(d-b+1)개」의 움직임벡터를 평가할 필요가 있다.
이와 관련하여, 도 12에 도시한 왼쪽위 모퉁이의 화소블럭(8)의 움직임벡터는 (-(c-a+1)/2,-(d-b+1)/2), 오른쪽아래 모퉁이의 화소블럭(9)의 움직임벡터는 ((c-a)/2,(d-b)/2)이다. 또한 움직임벡터를 구하기 위한 움직임벡터 탐색연산식으로서 이하, 차분절대치합을 사용하는 경우에 관해서만 설명한다. 물론 다른 연산식으로서 차분자승치합 등의 평가식을 사용하는 것도 고려할 수 있다.
그런데 이러한 전탐색법을 채용하면 도 11의 탐색영역(2)을 탐색하기 위해서는 64×16=1024회(16화소로 이루어진 1영역을 64개 잘라낸다)의 차분절대치를 계산해야 하기 때문에 방대한 연산량이 된다. 따라서 연산량을 삭감하기 위해서 제2 종래기술로서 우선 서브샘플링에 의해 얻어진 축소화상 위에서 움직임을 평가하고 그 결과 얻어진 움직임벡터를 초기값으로 하여 좁은 범위에서만 탐색하는 기술도 제안되고 있었다.
이것을 도 13의 모식도를 참조하여 설명한다. 도 13은 2화소×2라인당 1화소 서브샘플링할 때 이 서브샘플링으로 취출되는 화소를 모식적으로 도시한 도면이다. 검은 세모로 도시한 10, 검은 동그라미로 도시한 11은 각각 템플레이트(1), 탐색영역(2)에서 서브샘플링되는 화소를 나타내고 있다.
우선 서브샘플링으로 축소화상을 구하여 이 축소화상 위에서 16×4= 64회(4화소로 이루어진 1영역을 16개 잘라낸다)의 차분절대치를 계산한다. 이 방법으로는 상기 제1 종래기술에 비해 연산량은 1/16로 감소한다. 단, 원래의 화상 위에서 초기값 주위의「-1∼+1」의 범위를 탐색하기 위해서 9×16=144회의 차분절대치 계산이 필요하다. 따라서 연산량의 합계는 208회(64회+144회)가 되어 전탐색법에 비하면 연산량이 대폭 줄어든다.
또 이러한 축소화상을 이용한 움직임벡터 탐색방법은, 예컨대 「N.Hayashi, T.Kitui, I.Tamitani, H.Honma, Y.Ooi, T.Miyazaki, K.Oobuchi: 'A bidirectional motion compensation LSI with a compact motion estimator ' IEICE Trans. Electron, E78-C, 12, pp.1682-1690, Dec. 1995」등의 문헌에 기재되어 있다.
상기 제2 종래기술과 현재의 최신 LSI제조기술을 조합하면 통상의 움직임 화상에서 양호한 화질을 얻기 위해 필요한「수평방향:-128∼+128, 수직방향:-64∼+64」정도의 탐색범위까지는 1칩에 집적가능하고 저비용으로 실현가능하다.
그런데 스포츠중계와 같이 움직임이 매우 빠른 화상에서는「수평방향:-200∼+200, 수직방향:-100∼+100」정도의 광범위를 탐색할 필요가 있다. 이러한 넓은 탐색범위를 가진 움직임벡터 탐색장치는 예컨대,「E.Ogra, M.Takashima, D.Hiranaka, T.Ishikawa, Y.Yanagita, S.Suzuki, T.Fukuda, T.Ishii; 'A 1.2W Single-Chip MPEG2 MP@ML Video Encoder LSI including Wide Search Range Motion Estimation and 81 MOPS Controller' ISSCC98 Digest of Technical Papers, Feb.1998」등의 문헌에 기재되어 있다. 또 이 문헌의 예에서의 탐색범위는「수평방향:-288∼+287.5, 수직방향:-96∼+95.5」이다.
이러한 광대한 탐색범위를 실현하기 위해 4화소×2라인당 1화소 또는 4화소×4라인당 1화소 서브샘플링하고 또 해상도를 낮춘 축소화상 위에서 탐색하는 것도 고려할 수 있으나 해상도를 낮추면 낮출수록 움직임벡터를 잘못 검출할 가능성이 높아지며, 움직임이 적은 화상에서는 좁은 범위를 상기 제1 종래기술이나 제2 종래기술로 탐색한 경우에 비해 화질의 열화를 일으키는 결점이 있다.
그 때문에 제3 종래기술로 탐색영역을 복수개 영역으로 분할하고 분할된 개개의 탐색영역에 별개의 움직임벡터 탐색장치를 할당하여 넓은 범위를 탐색하는 방법이 제안되었다.
이것을 도 14의 모식도를 참조하여 설명한다. 도 14는 움직임벡터를 구하는 대상인 템플레이트(13)와 움직임벡터의 탐색범위인 탐색영역(12)을 모식적으로 도시한 것이다. 움직임벡터가 취할 수 있는 값의 범위는 수평방향, 수직방향 모두「-8∼+7」이고, 탐색영역(12)은 19화소×19라인이기 때문에 도 11의 4배인 16×16=256개의 영역이 템플레이트(13)와의 사이에서 차분절대치연산을 하는 대상이 된다.
즉 움직임벡터 탐색장치에는 움직임벡터가 취할 수 있는 값의 범위가 수평방향, 수직방향 모두「-4∼+3」일 때에 비해 4배의 연산능력이 요구된다. 이 때 도 14에 도시한 바와 같이 탐색영역(12)을 경계화소가 오버랩한 4개의 영역(14),(15),(16),(17)으로 분할하여 각각의 영역을 별개의 움직임벡터 탐색장치에서 병렬로 탐색하는 것으로 하면, 64개의 영역에서 차분절대치합 연산을 실행하는 능력을 갖는 움직임벡터 탐색장치 4대로 256개의 영역에서 차분절대치합 연산을 실행할 수 있다.
이러한 탐색영역을 복수개 영역으로 분할하여 분할된 개개의 탐색영역에 별개의 움직임벡터 탐색장치를 할당하는 탐색방법은 예컨대 「K.Yang, M.T.Sun, L.Wu: 'A Family of VLSI Designs for the Motion Compensation Block-Matching Algorithm' IEEE Trans.CAS, pp.1317-1325, Oct.1989」등의 문헌에 기재되어 있다.
그러나 상기 제3 종래기술로는 탐색범위가 넓어짐에 따라 움직임벡터 탐색장치의 연산능력을 증가시켜야만 하기 때문에 비용이 증대된다. 그리하여 비용 증대 없이 탐색범위를 유사하게 확대하는 방법으로서 제4 종래기술이 제안되었다.
제4 종래기술에서는 동화상에서 화상 위 물체의 움직임은 시간적으로 연속되어 있기 때문에 과거에 부호화된 화상의 움직임벡터 분포를 조사함으로써 현재 부호화 중인 화상 전체의 움직임을 어느 정도 예측할 수 있다는 점에 착안하여 예측한 움직임 방향으로 탐색범위의 중심을 시프트하여 탐색한다. 이것을 도 15의 모식도를 참조하여 설명한다.
도 15는 화상 전체의 움직임을 (-2,-3)으로 예측하여 움직임벡터=(-2,-3)인 화소블럭(19)을 중심으로 한 움직임벡터를 탐색하는 것을 도시하고 있다. 즉, 화소블럭(13)에 대하여 수평방향「-6∼+1」, 수직방향「-7∼0」범위의 움직임벡터를 탐색하는 것을 도시하고 있다. 시프트 후의 화소블럭(19)을 기준으로 하면 탐색하는 탐색영역(18)의 화소수는 수평방향, 수직방향 모두「-4∼+3」범위의 움직임벡터를 탐색하는 경우와 동일하다. 이 방법으로는 화상 전체가 오른쪽이나 위쪽 등 한쪽으로 움직이는 경우에 연산량 증가 없이 유사하게 넓은 범위를 탐색할 수 있다.
이러한 탐색범위의 중심을 시프트하여 유사하게 넓은 범위를 탐색하는 움직임벡터 탐색방법은 예컨대「朱漱楡,水野正之,橫山裕,大井康,“1칩 MPEG2-MP@ML 비디오 부호화 LSI에서의 움직임벡터 탐색윈도우시프트', 1997신학회 종합전대(總合全大), SC-11-5」(S.Zhu, etal., 'Video Quality Improvement by Search Window Shifting', Preceding of the 1997 IEICE General Conference, pp.306, 1997)등의 문헌에 기재되어 있다.
또한 지금까지 연산량에만 착안하여 설명했지만 탐색범위가 넓어지면 탐색영역의 화소수가 많은 것도 문제가 된다. 움직임벡터 탐색장치의 전형적인 구성을 도 16에 도시한다.
템플레이트, 탐색영역은 움직임벡터 탐색장치(20)의 외부 화상메모리(24)에 함께 기억되어 있으며 움직임 탐색시 각각 움직임벡터 탐색장치(20) 내부의 템플레이트용 메모리(22)와 탐색영역용 메모리(23)로 읽어들여져 차분절대치합 연산/최소치 검출기(21)에 보내진다.
보통 움직임벡터 탐색장치(20) 내부의 화소 전송, 즉 템플레이트용 메모리(22)와 차분절대치합 연산/최소치 검출기(21)간, 및 탐색영역용 메모리(23)와 차분절대치합 연산/최소치검출기(21)간의 전송은 고속이지만, 움직임벡터 탐색장치(20)의 외부 전송, 즉 템플레이트용 메모리(22)와 화상메모리(24)간, 탐색영역용 메모리(23)와 화상메모리(24)간의 전송은 저속이다.
여기서 템플레이트의 화소수는 적기 때문에 움직임벡터 탐색장치(20)를 구성함에 있어서 템플레이트용 메모리(22)와 화상메모리(24)간의 전송이 문제가 되지는 않지만, 탐색영역의 화소수는 많기 때문에 탐색영역용 메모리(23)와 화상메모리(24)간의 전송량을 최소로 할 필요가 있다.
도 17을 통해 화상부호화에 있어서, 이 전송량을 삭감하기 위해 통상 사용되는 제5 종래기술을 설명한다.
화상부호화에서는, 화상은 세로방향으로 템플레이트의 크기로 분할되는데 이들을 슬라이스라 부른다. 슬라이스는 다시 가로방향으로 템플레이트의 크기로 분할된다. 부호화는 슬라이스에 있어서 위에서 아래의 순서로, 개개의 슬라이스 내에서는 왼쪽에서 오른쪽으로의 템플레이트 순서로 실행된다. 따라서 인접하는 두 템플레이트의 탐색영역은 상당한 부분이 겹쳐있다.
예컨대, 도 17에 도시된 슬라이스(26)내의 템플레이트(27)와 템플레이트(28)의 탐색영역은 각각 영역(29)과 영역(30)이며 템플레이트(27)의 움직임벡터 검출이 끝났을 때 도 16 내의 탐색영역용 메모리(23)에는 탐색영역(29)의 화소가 전부 존재하고 있다. 템플레이트(27)의 움직임벡터 검출에 이어 템플레이트(28)의 움직임벡터를 구하는 것으로 하면 템플레이트(27)의 움직임벡터 검출이 끝났을 때 새롭게 영역(31)의 화소를 읽어들이면 탐색영역용 메모리(23)내에 템플레이트(28)의 탐색영역(30)화소가 전부 갖추어진다. 즉 슬라이스내의 왼쪽에서 오른쪽으로의 템플레이트 순서로 움직임벡터를 탐색하면 화상메모리(24)로부터 탐색영역용 메모리(23)로 개개의 템플레이트 탐색영역의 화소를 전부 전송할 필요는 없고 왼쪽옆의 템플레이트 탐색영역과 겹쳐져 있지 않은 부분만 전송하면 된다.
도 17에 있어서 탐색영역(29)과 탐색영역(30)의 수직방향 화소위치는 일치하지만 도면에서는 보기 쉽게 2개의 탐색영역(29),(30)의 위치를 비켜 도시했다.
또한 여기에서 설명한 제5 종래기술은, 제4 종래기술과 잘 정합된다. 즉 제4 종래기술에 있어서 슬라이스에 포함되는 모든 템플레이트의 탐색범위를 똑같이 시프트하면 제5 종래기술을 쉽게 적용할 수 있다.
그러나 비용 증대를 억제하면서 탐색범위를 확대하기 위해 제안된 제4 종래기술로는, 과거에 부호화된 화상의 움직임벡터를 분석하여 움직임의 변화를 예측하기 때문에 현재 부호화중인 화상의 움직임이 갑자기 변화하여 실제로 탐색하는 좁은 영역내에서 움직임벡터를 검출할 수 없을 경우에 그 후 탐색영역을 시프트하는 양을 정할 수 없는 문제가 있다. 예컨대 장면 전환 직후부터 실제 좁은 탐색영역을넘는 움직임을 가진 화상이 연속해서 계속될 경우에는 가령 일정방향, 일정속도로 움직였다고 해도 처음에 시프트하는 화소수를 정할 수 없기 때문에 그 후의 움직임을 예측할 수가 없다.
또한 상기 제4 종래기술에 있어서 화상 전체에서 동일한 시프트를 실행하기 때문에 화상 내에 다른 움직임이 존재하는 경우에 대응할 수 없다. 예컨대 진자가 클로즈업되어 있는 화상에서는 진자의 지점측은 천천히 움직이고 끝부분에 가까워질수록 빨리 움직인다. 또한 예컨대, 열차를 묘사하는화상에서는 배경은 정지해 있고 열차는 수평방향으로 평행이동한다. 이들 화상에 있어서 가능한 한 좁은 탐색영역에서 움직임벡터를 검출하려면 동일한 화상 내에서도 탐색영역을 시프트하는 양을 변경할 필요가 있다.
또한 상기 제4 종래기술로는 화상 내의 일부분을 탐색한 결과 과거의 화상에서 움직임이 변화된 것을 검출하더라도 동일화상 내의 나머지 부분 탐색에 그것을 반영할 수 없다.
본 발명은 이러한 종래의 과제를 해결하기 위해 이루어진 것으로서, 그 목적은 움직임벡터 탐색장치의 비용 증가 없이 탐색범위를 확대함과 동시에 과거에 부호화된 화상에 상관없이 현재 부호화중인 화상의 움직임을 확대된 탐색범위에서 조사함으로써 해당 확대된 탐색범위 내의 움직임이면 반드시 움직임을 검출하여 탐색영역을 시프트하는 화소수를 정할 수 있는 수단을 제공하는 데 있다.
도 1은 제1 발명에 있어서 제1-1,제1-2,제1-3,제1-4 실시형태에 관한 움직임벡터 탐색장치의 구성예를 도시한 블럭도이고,
도 2는 제1-1 실시형태에서의 처리를 도시한 흐름도이고,
도 3은 제1-2 실시형태를 설명하기 위한 도면이고,
도 4는 제1-2 실시형태에서의 처리를 도시한 흐름도이고,
도 5는 제1-3 실시형태에서의 처리를 도시한 흐름도이고,
도 6은 제1-4 실시형태에서의 처리를 도시한 흐름도이고,
도 7은 제1 발명에 있어서 제1-5와 제1-6 실시형태에 관한 움직임벡터 탐색장치의 구성예를 도시한 블럭도이고,
도 8은 제1-5 실시형태에서의 처리를 도시한 흐름도이고,
도 9는 제1-5 실시형태의 모식적 설명도이고,
도 10은 제1-6 실시형태에서의 처리를 도시한 흐름도이고,
도 11 내지 도 15는 종래 기술의 모식적 설명도이고,
도 16은 종래 기술의 전형적인 움직임벡터 탐색장치의 구성을 도시한 도면이고,
도 17은 종래 기술의 모식적 설명도이고,
도 18은 제2 발명에 관한 움직임벡터 탐색장치의 구성도이고,
도 19는 제2 발명의 모식적 설명도이고,
도 20은 제2-1 실시형태에서의 처리를 도시한 흐름도이고,
도 21은 제2-2 실시형태에서의 처리를 도시한 흐름도이고,
도 22는 제2-3 실시형태에서의 처리를 도시한 흐름도이고,
도 23은 제2-4 실시형태에서의 처리를 도시한 흐름도이고,
도 24는 제2-5 실시형태의 모식적 흐름도이고,
도 25는 제2-6 실시형태의 모식적 흐름도이고,
도 26은 텔레스코픽 탐색을 설명하기 위한 도면이다.
상기 목적을 달성하기 위한 본 발명의 움직임벡터 탐색방법 및 장치는, 처음에 넓은 영역을 탐색하여 화상 전체의 움직임을 도시하는 기준벡터를 구한 다음 해당 화상 내의 모든 템플레이트에 대해서 개별적으로 기준벡터를 중심으로 한 좁은 영역을 상세히 탐색하여 개개의 템플레이트에 대한 기준벡터로부터의 변이벡터를 구한다. 그리고 개개의 템플레이트에 기준벡터와 변이벡터를 가산하여 그 결과를 개개의 템플레이트의 움직임벡터로 한다.
이로써 움직임벡터 탐색장치의 비용 증가 없이 탐색범위를 확대시킴과 동시에 그 확대된 탐색범위내의 움직임이면 반드시 움직임을 검출할 수 있다.
또한 화상 전체의 움직임을 도시한 기준벡터를 검출하여 그 주위만 상세히 탐색함으로써 오류검출로 인한 움직임벡터의 분산이 억제되고 그 결과 화질이 향상된다.
또한 상기 목적을 달성하기 위해 본 발명의 움직임벡터 탐색방법 및 장치는 일정한 수의 템플레이트로 이루어진 템플레이트군 전체의 움직임을 평가하여 해당 템플레이트군 전체의 움직임을 검출할 수 있을 때에는 그 움직임을 출력하고, 움직임을 검출할 수 없을 때에는 움직임을 검출할 수 없는 것을 출력한다. 템플레이트군 전체의 움직임을 검출할 수 있을 때에는 그 움직임에 맞춰 다음에 탐색할 템플레이트군의 탐색영역을 시프트하고, 템플레이트군 전체의 움직임을 검출할 수 없을 때에는 다음에 탐색할 템플레이트군의 탐색에 있어서 탐색영역을 소정의 위치에 시프트한다.
이로써 움직임벡터 탐색장치의 비용증가 없이 탐색범위를 확대시킴과 동시에그 확대된 탐색범위 내의 움직임이면 반드시 움직임을 검출할 수 있고, 또한 화상 내 일부분의 탐색결과를 반영하여 탐색영역의 시프트량을 수정할 수 있다.
또한 일정수의 템플레이트 전체(템플레이트군)의 움직임을 평가하여 그 일정수의 템플레이트 전체(템플레이트군)의 움직임에 맞춰 다음에 탐색할 템플레이트군의 탐색영역을 시프트하여 상세히 탐색함으로써 오류검출로 인한 움직임벡터의 분산이 억제되고 그 결과 화질이 향상된다.
이하의 실시예는 청구항에 관한 발명을 한정하는 것은 아니다. 또한 목적하는 바의 달성을 위해 실시예 내에 설명되어 있는 특징의 모든 조합이 반드시 필요한 것은 아니다.
본 실시형태에서는 각각 다른 특징을 갖춘 2개의 움직임벡터 탐색장치 및 방법을 개시한다.
첫번째 움직임벡터 탐색방법 및 장치의 처리 개요는 다음과 같다.
우선 소정 방법에 의해 처리대상이 되는 화상 전체의 움직임벡터를 구하여 이것을 화상 전체의 움직임을 도시한 기준벡터로 한다. 여기서 소정 방법의 예로는, 처리대상의 화상내 몇개의 템플레이트에 대하여 넓은 범위의 탐색영역에서 움직임벡터를 구하는 방법, 서브샘플링에 의해 작성한 축소화상 위에서 탐색하는 방법 등이 있다.
그리고 처리대상의 화상 내 개개의 템플레이트에서 기준벡터를 중심으로 한 좁은 탐색영역을 설정하고 이 범위 내에서 탐색하여 변이벡터를 구한다. 그 템플레이트의 움직임벡터는, 구한 변이벡터와 기준벡터를 더한 벡터로 한다. 이 처리를처리대상의 화상 내 모든 템플레이트에서 실시한다.
두번째 움직임벡터 탐색방법 및 장치의 처리개요는 다음과 같다.
처리대상이 되는 화상에서 1 이상의 템플레이트를 단위로 한 템플레이트군을 설정한다. 그리고 템플레이트군 내 개개의 템플레이트의 움직임벡터에서 템플레이트군으로서의 움직임벡터를 검출할 수 있는 경우에는 전 템플레이트군 전체의 움직임벡터를 이용하여 다음 템플레이트군에서의 탐색영역의 시프트 위치를 설정한다. 한편 템플레이트군으로서의 움직임벡터를 검출할 수 없는 경우에는 다음 템플레이트군의 탐색영역 시프트 위치를 이전 템플레이트군의 탐색영역 시프트위치와 다른 것으로 한다.
이하, 첫번째 움직임벡터 탐색방법 및 장치에 관해서 제1-1∼1-6 실시형태로 설명한다. 또한 두번째 움직임벡터 탐색방법 및 장치에 관해서 제2-1∼2-7 실시형태로 설명한다.
이하, 첫번째 움직임벡터 탐색방법 및 장치에 관한 본 발명의 실시형태를 도면을 참조하여 설명한다.
[제1-1 실시형태]
도 1은 본 발명의 제1-1실시형태의 구성예를 도시한 블럭도이다.
본 실시형태에 의한 움직임벡터 탐색장치(100)는 기준벡터를 산출하기 위한 넓은 탐색영역용 움직임벡터 탐색부(110)와, 변이벡터를 산출하기위한 좁은 탐색영역용 움직임벡터 탐색부(120)를 갖는다.
여기서 첫번째 움직임벡터 탐색방법 및 장치에 있어서「기준벡터」란, 비교대상이 되는 화상에 대하여 처리대상이 되는 화상전체의 움직임을 나타내는 벡터를 의미한다.
또한「변이 벡터」란, 처리대상이 되는 화상 내 개개의 템플레이트에 대하여 기준 벡터를 고려한 시프트 위치를 가지는 탐색영역 내에서의 움직임벡터를 의미한다.
도 2는 제1-1 실시형태에서의 처리를 도시한 흐름도이다.
여기서 제1-1 실시형태에서의 동작설명은 첫번째 움직임벡터 방법과 공통된 처리내용을 도시하고 있다.
본 실시형태에서는 처음에 넓은 탐색영역용 움직임벡터 탐색부(110)에서 넓은 영역을 탐색하여 화상 전체의 움직임을 도시하는 기준벡터를 구한다(단계 S1).
이 때, 넓은 탐색영역용 움직임벡터 탐색부(110)는 처리대상의 화상내 몇 개의 템플레이트에 대해 넓은 범위의 탐색영역에서의 움직임벡터를 구한다. 그리고 구한 1 이상의 움직임벡터를 이용하여 비교대상의 화상에 대한 처리대상의 화상전체의 움직임벡터를 구한다. 물론 넓은 탐색영역용 움직임벡터 탐색부(111)의 연산능력이 충분히 큰 경우에는 처리대상의 화상내 모든 템플레이트에 대해 넓은 범위의 탐색영역에서의 움직임벡터를 구해도 좋다. 이 넓은 탐색영역용 움직임벡터 탐색부(110) 동작의 상세한 것은 제1-2∼1-4 실시형태로 설명한다.
여기서 '넓은 영역' 또는 '넓은 범위의 탐색영역'이란, 처리대상의 템플레이트에 대하여 통상 설정되는 탐색영역보다 넓은 영역을 말한다.
예컨대, NTSC신호를 디지탈화한 경우의 1프레임의 화상 크기는 720화소×480라인이다. 이 화상 내의 템플레이트(일반적으로 '매크로블럭'이라 불린다)의 크기는 16화상×16라인이다. 이 매크로블럭에 대해 설정되는 탐색영역은, 이 매크로블럭의 움직임벡터를 취할 수 있는 범위로서 수평방향±32화상, 수직방향±32화상의 영역에서 일반적으로 설정된다. 이에 반하여 본 발명에 있어서 '넓은 영역' 또는 '넓은 범위의 탐색영역'의 경우에는, 예컨대 매크로블럭의 움직임벡터를 취할 수 있는 범위로서 수평방향±100화소, 수직방향±50화소의 영역에서 설정된다.
또한 HDTV(High Definition TV)의 1080 I포맷인 경우의 1프레임 화상의 크기는 1920화소×1080라인이다. 이 경우의 매크로블럭 크기도 일반적으로 16화상×16라인이다. 그리고 이 경우의 '넓은 영역' 또는 '넓은 범위의 탐색영역'은, 예컨대 매크로블럭의 움직임벡터를 취할 수 있는 범위로서 수평방향±200화소, 수직방향±100화소의 영역에서 설정된다.
이와 같이 통상 설정되는 탐색영역보다 넓은 탐색영역을 설정함으로써 처리대상의 화상이 움직임이 빠른 이미지를 포함하는 경우, 즉 템플레이트의 움직임벡터가 큰 경우에도 대응 가능해진다. 또한 결과적으로 적절한 기준벡터를 구할 수 있게 된다.
다음에, 좁은 탐색영역용 움직임벡터 탐색부(120)에 있어서 해당 화상 내의 모든 템플레이트에 대해 개별적으로 기준벡터를 중심으로 한 좁은 영역을 탐색하여 개개의 템플레이트에 대해 기준벡터로부터의 변이벡터를 구하고(단계 S2), 개개의 템플레이트에 대해 기준벡터와 변이벡터를 가산하여 그 결과를 개개의 템플레이트의 움직임벡터로 한다(단계 S3).
즉, 좁은 탐색영역용 움직임벡터 탐색부(120)는 처리대상의 화상 내 어느 1개의 템플레이트(A)에 대하여 도 15로 설명한 바와 같이 기준벡터를 시프트위치로 한 좁은 탐색영역을 설정한다. 그리고 좁은 탐색영역용 움직임벡터 탐색부(120)는, 예컨대 도 11이나 도 12로 설명한 「전탐색법」을 이용하여 이 탐색영역 내에서 템플레이트(A)의 움직임벡터(변이벡터)를 구한다. 좁은 탐색영역용 움직임벡터 탐색부(120)는 이 처리를 처리대상이 되는 화상에 포함되는 모든 템플레이트에 대하여 실시함으로써 단계 S2의 처리를 수행한다.
계속해서 좁은 탐색영역용 움직임벡터 탐색부(120)는, 단계 S3에 있어서 개개의 템플레이트에 대하여 구한 각각의 변이벡터에 기준벡터를 각각 가산함으로써 처리대상의 화상 내에 포함되는 모든 템플레이트의 움직임벡터를 구한다.
나아가 화상전체의 움직임을 나타내는 기준벡터는, 1매의 화상에 대해 2개 이상 존재하는 경우도 있을 수 있다. 예컨대 정지한 배경 속을 큰 물체가 가로질러 이동하는 경우이다.
[제1-2 실시형태]
도 3은 본 발명의 제1-2 실시형태를 설명하기 위한 도면이다.
동화상에서는 복수의 화상이 시간적으로 연속되어 있고 화상부호화에 있어서는 시간적으로 1매 전의 화상 뿐만 아니라 복수매 전 화상의 움직임벡터를 구하는 경우가 있다.
도 3에 있어서 A, B, C, D는 시간적으로 연속된 화상이고, 움직임벡터(Vt)는 화상(A)을 기준으로 하여 화상(D)의 움직임을 도시한 기준벡터이다. 여기서 화상은원래 2차원이지만, 설명의 단순화를 위해 1차원으로 표시했다. 또한 움직임벡터(V1)는 화상(A)을 기준으로 하여 화상(B)의 움직임을 도시한 벡터이다. 마찬가지로 V2, V3는 각각 화상(B)을 기준으로 하여 화상(C), 화상(C)을 기준으로 하여 화상(D)의 움직임을 도시한 벡터이며, Vt=V1+V2+V3의 관계가 있다.
도 4는, 제1-2 실시형태에 있어서 처리를 도시한 흐름도이다.
나아가 장치구성은 도 1에 도시한 제1-1 실시형태와 동일하다.
본 실시형태에서는, 넓은 탐색영역용 움직임벡터 탐색부(110)에 있어서 V1,V2,V3를 구하기 위한 탐색을 별개로 실시하며(단계 S11∼S13), V1,V2,V3를 가산하여 화상(A)을 기준으로 하여 화상(D)의 움직임을 도시한 기준벡터(Vt)로 한다(단계 S14).
여기서, 또한 넓은 탐색영역용 움직임벡터 탐색부(11O)에 의한, 인접한 화상(A),(B)간의 움직임벡터를 구하는 방법을 설명한다.
넓은 탐색영역용 움직임벡터 탐색부(110)는 다음과 같은 처리를 한다.
1) 화상(A) 내 소정부위의 복수의 템플레이트(예컨대 화상(A)의 가운데 부근이나 화상의 모서리 부근의 템플레이트)를 선택한다.
2) 선택한 템플레이트에 대하여 넓은 범위의 탐색영역을 설정한다. 그리고, 화상(B)에 대한 템플레이트의 움직임벡터를 구한다. 이것을 선택한 모든 템플레이트에 대하여 실시한다. 여기서 움직임벡터를 구하는 방법으로는 예컨대 상술한 제1∼제4 종래기술 중 어느 하나를 이용한다.
3) 구해진 복수의 움직임벡터 중 각 움직임벡터를 구할 때 얻어지는 차분절대치 또는 차분자승치 등이 미리 정해진 문턱값보다 큰 것이 있을 때에는 화상(A)을 기준으로 하는 화상(B)의 움직임을 검출할 수 없는 것으로 판정한다. 그리고 화상(A),(B)간의 움직임벡터를 (0,0)으로 한다.
4) 구해진 모든 움직임벡터에 대해 차분절대치 또는 차분자승치가 미리 정해진 문턱값 이하일 때에는 그 움직임벡터의 평균치 또는 그 움직임벡터의 분포 중앙치에 인접한 화상(A),(B)간의 움직임벡터로 한다.
넓은 탐색영역용 움직임벡터 탐색부(110)는 이상 설명한 처리를 단계 S11, S12, S13에서 실시한다.
또한 도 4의 단계 S11∼S14는 도 2의 단계 S1의 구체적인 처리내용이 된다.
다음에, 좁은 탐색영역용 움직임벡터 탐색부(120)에 있어서, 화상(A)을 기준으로 하여 화상(D) 위에서 모든 템플레이트에 대해 개별적으로 기준벡터를 중심으로 한 좁은 영역을 탐색하고 개개의 템플레이트에서 기준벡터로부터의 변이벡터를 구한다(단계 S15). 그 후 개개의 템플레이트에서 기준벡터와 변이벡터를 가산하여 그 결과를 개개의 템플레이트의 움직임벡터로 한다(단계 S16).
단계 S15, S16은 도 2의 단계 S2, S3와 동일한 처리이다.
같은 속도로 움직이고 있는 물체의 움직임벡터를 검출할 때, 시간적으로 떨어진 화상 사이에서 움직임벡터를 탐색하면 시간적으로 가까운 화상 사이에서 탐색하는 것보다 넓은 범위를 탐색해야만 한다. 본 실시형태에 있어서는 시간적으로 가까운 화상 사이에서 움직임벡터의 탐색을 반복하여 그 합을 시간적으로 떨어진 화상 사이의 움직임벡터로 하기 때문에 시간적으로 떨어진 화상 사이를 직접 탐색하는 경우보다도 탐색범위를 좁힐 수 있다.
또 본 실시형태에서는 처리대상이 되는 화상(A)과 비교대상이 되는 화상(D) 사이에 2매의 화상(B),(C)이 있는 예를 도시하고 있는데, 화상(A)과 화상(D) 사이에 기타 매수의 화상이 포함되고 있어도 같은 처리로 대응할 수 있다.
[제1-3 실시형태]
도 5는 제1-3 실시형태에 있어서의 처리를 도시한 흐름도이다. 제1-3 실시형태의 장치구성은 도 1에 도시한 제1-1 실시형태와 동일하다.
본 실시형태에서는 도 1에 도시한 넓은 탐색영역용 움직임벡터 탐색부(110)에 있어서 고해상도의 화상을 직접 서브샘플링하거나 또는 고해상도의 화상을 저역통과필터로 변환시킨 뒤 서브샘플링하여 작성한 저해상도의 축소화상을 이용하여 넓은 영역을 탐색하고 화상 전체의 움직임을 도시한 기준벡터를 구한다(단계 S21).
단계 S21의 처리를 더욱 상세히 설명하면 다음과 같다.
1) 처리대상인 화상의 축소화상(A)과 비교대상인 화상의 축소화상(B)을 작성한다. 축소화상의 작성방법은 상술한 바와 같다.
2) 축소화상(A)내의 어느 템플레이트(a)에 대해 축소화상(B)을 이용하여 넓은 영역의 탐색영역(b)을 설정한다.
3) 탐색영역(b)을 이용하여 템플레이트(a)의 움직임벡터를 구한다.
4) 상기 2),3)을 반복함으로써 축소화상(A)내 모든 템플레이트의 움직임벡터를 구한다.
5) 구한 모든 움직임벡터의 평균치 혹은 움직임벡터의 분포의 중앙치를 처리대상화상의 기준벡터로 한다.
또, 단계 S21은 도 2의 단계 S1의 구체적인 처리내용이 된다.
그리고 단계 S21의 처리를 종료하면 좁은 탐색영역용 움직임벡터 탐색부(120)에 있어서 저해상도의 축소화상을 작성하기 위해 사용한 고해상도의 화상을 이용하여 해당 화상 내의 모든 템플레이트에 대해 개별적으로 기준벡터를 중심으로 한 좁은 영역을 상세히 탐색하여 개개의 템플레이트에 대해 기준벡터로부터의 변이벡터를 구한다(단계 S22). 그 후 개개의 템플레이트에 대해 기준벡터와 변이벡터를 가산하여 그 결과를 개개의 템플레이트의 움직임벡터로 한다(단계 S23).
단계 S22, S23은 도 2의 단계 S2, S3와 동일한 처리이다.
본 실시형태에 있어서는, 넓은 탐색영역용 움직임벡터 탐색부(110)에 있어서 저해상도의 축소화상 위에서 기준벡터를 구하기 때문에 넓은 영역을 탐색하기 위한 비용을 절약할 수 있다.
또한 상술한 제1-2 실시형태에 있어서, 넓은 탐색영역용 움직임벡터 탐색부(110)는 단계 S21을 이용하여 도4의 단계 S11,S12,S13의 각 단계에서 움직임벡터 V1,V2,V3를 구해도 된다.
[제1-4 실시형태]
도 6은 제1-4 실시형태에 있어서의 처리를 도시한 흐름도이다. 제1-4 실시형태의 장치 구성은 도 1에 도시한 제1-1 실시형태와 동일하다.
본 실시형태에서는 넓은 탐색영역용 움직임벡터 탐색부(110)에 있어서, 화상 전체의 템플레이트의 총수보다 적은 수로서, 화상전체의 움직임을 알기 위해 필요한 수의 템플레이트만 넓은 영역을 탐색하여 화상 전체의 움직임을 도시한 기준벡터를 구한다(단계 S31∼S33).
이 S31∼S33에 있어서 넓은 탐색영역용 움직임벡터 탐색부(110)의 동작을 보다 구체적으로 설명하면 다음과 같다.
우선 처리대상인 화상의 처리개시 시점(스타트시점)에서 처리대상의 화상 내 템플레이트로서, 처리대상의 화상 전체 움직임을 알기 위해 필요한 수의 템플레이트가 설정되어 있는 것으로 한다. 여기에서 단계 S31∼S33에서 처리되는 '화상 전체를 알기 위해 필요한 템플레이트'의 수나 그 위치에 대해서는 별도 설명한다. 또한 처리개시 시점에서 설정된 복수의 템플레이트 중 처음 처리하는 템플레이트가 선택되어 있는 것으로 한다.
우선 넓은 탐색영역용 움직임벡터 탐색부(110)는, 선택된 템플레이트에 대하여 비교대상이 되는 화상을 이용하여 넓은 범위의 검색영역을 설정한다. 그리고 그 템플레이트의 움직임벡터를 구한다. 여기에서 움직임벡터를 구하는 방법으로서, 예컨대 상술한 제1∼제4 종래기술 중 어느 하나를 이용한다(단계 S31).
다음에, 처리개시 시점에서 설정된 모든 템플레이트의 처리가 종료되었는지 판단함으로써 기준벡터가 구해졌는지 판단하여(단계 S32) 미처리된 템플레이트가 있는 경우에는 미처리된 템플레이트로부터 다음에 처리되는 템플레이트를 선택한다(단계 S33).
한편, 처리개시 시점에서 설정된 모든 템플레이트의 움직임벡터가 구해지면 기준벡터를 구할 수 있기 때문에 넓은 탐색영역용 움직임벡터 탐색부(110)는 산출한 복수의 움직임벡터를 이용하여 화상 전체의 움직임인 '기준벡터'를 산출한다(단계 S32). 기준벡터의 산출은 다음과 같이 한다.
구해진 복수의 움직임벡터 중 각 움직임벡터를 구할 때 얻어지는 차분절대치 또는 차분자승치 등이 미리 정해진 문턱값보다 큰 것이 있을 때에는 움직임은 검출되지 않는다고 판정한다. 그리고 기준벡터를 (0,O)으로 한다.
구해진 모든 움직임벡터에 대해서, 그것들을 구할 때 얻어지는 차분절대치 또는 차분자승치가 미리 정해진 문턱값 이하일 때에는 그들 움직임벡터의 평균치 또는 그들 움직임벡터의 분포 중앙치를 기준벡터로 한다.
나아가 단계 S31∼S33은 도 2의 단계 S1의 구체적인 처리내용이 된다.
그리고 단계 S32에 있어서 기준벡터가 구해졌다고 판단된 경우, 좁은 탐색영역용 움직임벡터 탐색부(120)에서는 기준벡터를 구하기 위해 사용한 화상 내의 모든 템플레이트에 대해 개별적으로 기준벡터를 중심으로 한 좁은 영역을 탐색하여 개개의 템플레이트에 대해 기준벡터로부터의 변이벡터를 구한다(단계 S34). 개개의 템플레이트에 대해 변이벡터가 구해졌다면 기준벡터와 변이벡터를 가산하여 그 결과를 개개의 템플레이트의 움직임벡터로 한다(단계 S35).
단계 S34, S35는 도 2의 단계 S2, S3와 동일한 처리이다.
본 실시형태에 있어서 넓은 탐색영역용 움직임벡터 탐색부(110)는 화상 전체 템플레이트의 총수에 비해 대단히 적은 수의 템플레이트만 탐색함으로써 넓은 영역을 탐색하기 위한 비용을 절약할 수 있다.
화상 전체의 움직임을 알기 위해 필요한 템플레이트의 수는 화상 종류에 응하여 미리 설정해둔다. 예컨대 화상 전체가 똑같은 방향으로 이동하고 있는 경우에는 1개의 템플레이트만 넓은 영역을 탐색하면 화상 전체의 움직임을 도시한 기준벡터를 구할 수 있다. 또한 화상의 움직임이 불분명하고 화상 전체가 한방향으로 움직이고 있는지의 여부를 판단하고 싶을 때에는 화상의 중심과 네 귀퉁이 합 5개의 템플레이트를 조사하면 된다. 화상 전체의 움직임을 알기 위해 필요한 템플레이트의 수는 예컨대 통계를 냄으로써 오류 검출의 영향을 배제할 수 있는 만큼의 수의 템플레이트의 움직임을 조사하여 정할 수도 있다.
나아가 상술한 제1-2 실시형태에 있어서 넓은 탐색영역용 움직임벡터 탐색부(110)는 단계 S31∼S33을 이용하여 도 4의 단계 S11,S12,S13의 각 단계에서 움직임벡터 V1,V2,V3을 구해도 된다.
[제1-5 실시형태]
도 7은 본 발명의 제1-5 실시형태의 구성예를 도시한 블럭도이다.
본 실시형태에 관한 움직임벡터 탐색장치(200)는 좁은 영역을 탐색하기 위한 좁은 탐색영역용 움직임벡터 탐색부(210)만을 갖는다. 본 실시형태에서는 단일의 좁은 탐색영역용 움직임벡터 탐색부(210)를 시분할로 이용하여 기준벡터와 변이벡터를 구한다.
도 8은 제1-5 실시형태에 있어서의 처리를 도시한 흐름도이다.
1개의 템플레이트에 대해 넓은 영역 전체의 탐색이 종료될 때까지 탐색하는 영역을 변경하면서 좁은 영역을 여러번 탐색하여 넓은 영역에 대한 움직임벡터를 구한다. 구체적으로는, 예컨대 도 14에 도시된 4개의 좁은영역(14),(15),(16),(17)을 시간적으로 순차탐색함으로써 넓은 탐색영역(12)의 움직임벡터를 구한다.
즉, 다음과 같은 처리를 한다. 어느 템플레이트에 대해서 탐색의 중심을 움직임벡터=(O,O)의 위치로부터 시프트한 탐색영역을 설정하고(단계 S41), 그 설정된 영역의 움직임벡터를 탐색한다(단계 S42). 넓은 영역 전체에 대해서 탐색이 종료되고 어느 템플레이트의 움직임벡터가 구해질 때까지(단계 S43), 같은 템플레이트에 대해서 탐색의 중심을 시프트하는 양을 변경하여 다른 탐색영역을 설정하면서(단계 S44) 설정된 영역의 탐색처리를 반복한다.
이상의 처리를, 화상 전체의 움직임을 알기 위해 필요한 수의 템플레이트의 탐색이 종료되어 화상 전체의 움직임을 도시한 기준벡터가 구해질 때까지(단계 S45) 템플레이트를 변경하면서 반복한다(단계 S46).
도 14를 이용하여 더욱 구체적으로 설명하면, 좁은 탐색영역용 움직임벡터 탐색부(210)의 동작은 다음과 같다.
우선 처리대상이 되는 화상의 처리개시 시점에서 처리대상의 화상 내 템플레이트로서, 처리대상의 화상 전체 움직임을 알기 위해 필요한 수의 템플레이트가 설정되어 있는 것으로 한다. 여기에서, 단계 S41∼S46에서 처리되는 '화상 전체를 알기 위해 필요한 템플레이트'의 수나 그 위치는 제1-4 실시형태와 동일하다. 또한 처리개시 시점에서, 설정된 복수의 템플레이트 중 처음에 처리하는 템플레이트로서 도 14의 템플레이트(13)가 선택되어 있는 것으로 한다.
처음에, 좁은 탐색영역용 움직임벡터 탐색부(210)는 설정된 템플레이트(13)에 대한 탐색영역을 부호(14)로 도시한 영역에 설정한다(단계 S41).
다음, 탐색영역(14)과 템플레이트(13)를 비교함으로써 움직임벡터를 구한다(단계 S42).
도 14의 4개의 탐색영역(14),(15),(16),(17)에서의 탐색이 모두 종료되었는지, 즉 넓은 범위의 탐색영역(12)의 탐색이 종료되어 현재 처리중인 템플레이트의 움직임벡터가 구해졌는지 판단한다(단계 S43).
종료되지 않은 경우에는 다음 탐색영역(예컨대 탐색영역(15))을 설정하여(단계 S44), 단계 S42로 진행시킨다.
4개의 탐색영역(14),(15),(16),(17)에서의 탐색이 모두 종료되면(단계 S43:YES), 넓은 탐색영역(12)에 있어서 템플레이트(13)의 움직임벡터가 구해진다. 그래서 미리 설정한 모든 템플레이트의 탐색이 종료되었는지 판단함으로써 기준벡터가 구해졌는지 판단한다(단계 S45). 단계 S45의 판단 결과, 미리 설정한 수의 템플레이트 탐색이 종료되지 않은 경우, 미리 설정된 템플레이트로서, 미처리된 템플레이트를 선택하여(단계 S46), 단계 S41로 되돌아간다.
또 미리 설정한 수의 템플레이트 탐색이 종료되었을 때의 단계 S45에 있어서 기준벡터의 산출방법은 도 6의 단계 S32에서 설명한 방법과 동일하다.
이상과 같이 하여 기준벡터를 구할 수 있다.
화상 전체의 움직임을 도시한 기준벡터가 구해지면 기준벡터를 구하기 위한 템플레이트군이 포함되어 있는 화상 내 모든 템플레이트에 대해 개별적으로 기준벡터를 중심으로 한 좁은 영역을 상세히 탐색하여 개개의 템플레이트에 대해 기준벡터로부터의 변이벡터를 구한다(단계 S47). 개개의 템플레이트에 대해 변이벡터가 구해지면 기준벡터와 변이벡터를 가산하여 그 결과를 개개의 템플레이트의 움직임벡터로 한다(단계 S48).
단계 S47, S48은 도 2의 단계 S2,S3과 동일한 처리이다.
나아가 처리부의 차이는 있지만, 단계 S41∼S46은 도 2의 단계 S1의 구체적인 처리내용이 된다. 또한 상술한 제1-2 실시형태에 있어서 움직임벡터 탐색장치(100)는, 단계 S41∼S46를 이용하여 도 4의 단계 S11,S12,S13의 각 단계에서 움직임벡터 V1,V2,V3를 구하는 처리를 해도 좋다.
본 실시형태에서는 탐색에 필요한 시간이 변이벡터를 구하는 시간과 기준벡터를 구하는 시간의 합이 되어 제1-1∼제1-4 실시형태에 비해 탐색시간이 더 걸리지만, 기준벡터를 알기 위해 탐색해야 할 템플레이트의 수가 적은 경우에는 도 8의 흐름도에 있어서 기준벡터를 구하기 위한 단계 S41∼S46의 처리에 걸리는 시간은, 변이벡터를 구하기 위한 단계 S47의 처리에 걸리는 시간에 비해 짧아 약간의 처리시간 증가로 기준벡터를 구할 수 있다.
그런데 탐색영역이 넓어지면 움직임벡터 탐색시 외부의 화상메모리(24)에 기억되어 있는 탐색영역을, 움직임벡터 탐색장치(200) 내부의 탐색영역용 메모리(미도시)로 읽어들이는 구성을 취했다 해도 탐색영역용 메모리와 화상메모리(24)의 화소 전송능력이 부족할 가능성이 있다.
도 9는 제1-5 실시형태의 모식적 설명도로서, 도면의 46은 도 14에 도시된 4개의 좁은 영역(14),(15),(16),(17)의 중첩 부분을 도시한다. 도 9에서 알 수 있듯이 4개의 좁은 영역(14),(15),(16),(17)에 있어서 2개 이상의 영역에 속해 있는 화소는 적다. 따라서 제1-5 실시형태에서는 움직임벡터 탐색시 외부의 화상메모리(24)에 기억되어 있는 탐색영역을, 움직임벡터 탐색장치(200) 내부의 탐색영역용 메모리(23)로 읽어들이는 구성을 채용했다 해도 탐색하는 영역을 변경할 때 화상메모리(24)로부터 탐색영역용 메모리(23)로 전송해야 할 화소수는 조금밖에 감소하지 않는다. 탐색영역이 넓어질수록 넓은 탐색영역 전체의 화소수에 대한 중첩부분(46)의 화소수 비율은 적어지고 탐색영역용 메모리(23)와 화상메모리(24)간의 화소전송능력 부족이 심각한 문제가 된다.
[제1-6 실시형태]
도 10은 제1-6 실시형태에 있어서의 처리를 도시한 흐름도이다. 제1-6 실시형태의 장치구성은 도 7에 도시한 제1-5 실시형태와 동일하다.
본 실시형태에서는 기준벡터를 구할 때 종래의 제5 기술을 적용하여 탐색영역용 메모리(23)와 화상메모리(24)사이의 화소 전송량을 줄인다. 즉 우선, 특정한 슬라이스 내 탐색대상의 템플레이트 전부에 대해, 탐색의 중심을 움직임벡터=(0,0)의 위치로부터 일정한 화소수만큼 시프트한 탐색영역을 설정하여 끝부분에 위치한 템플레이트부터 순서대로 탐색한다. 다음에 특정 슬라이스 내 탐색대상의 템플레이트 전부에 대해 탐색이 종료되었으면 탐색의 중심을 움직임벡터=(0,0)의 위치로부터 별도의 화소수만큼 시프트한 탐색영역을 설정하여 동일하게 탐색한다. 이것을 반복하여 넓은 영역을 탐색하여 어느 슬라이스 내 개개의 탐색대상의 템플레이트에 대해 넓은 영역의 움직임벡터를 구한다. 또 별도의 슬라이스에대해 동일하게 탐색하고 화상 전체의 움직임을 알기 위해 필요한 수의 슬라이스를 탐색하여 기준벡터를 구한다.
도 10에 따라 더욱 상세히 설명하면 슬라이스 내 탐색대상의 템플레이트 중 끝부분에 위치하는 템플레이트에 대해서, 탐색의 중심을 움직임벡터=(0,0)의 위치에서부터 시프트한 탐색영역을 설정한다(단계 S51). 이 설정된 영역의 움직임벡터를 탐색한다(단계 S52). 이 처리를 슬라이스 내 탐색대상의 템플레이트 전부에 대해 움직임벡터가 구해질 때까지(단계 S53) 같은 슬라이스 내의 인접한 템플레이트로 변경하면서 반복한다(단계 S54). 단, 단계 S54에서는 탐색의 중심을 시프트하는 양은 변경되지 않는다.
슬라이스 내 탐색대상의 템플레이트 전부에 대해 움직임벡터가 구해졌으면 넓은 영역 전체에 대해 탐색이 종료되고 슬라이스 내 개개의 템플레이트에 대해 움직임벡터가 구해질 때까지(단계 S55) 슬라이스 내의 템플레이트 중 끝부분에 위치한 템플레이트로 변경하고(단계 S56), 단계 S52로 되돌아가 동일한 처리를 반복한다. 이 단계 S56에서는, 탐색의 중심을 시프트하는 양을 변경하여 다른 탐색영역을 설정한다.
이상의 처리를, 화상전체의 움직임을 알기 위해 필요한 수의 템플레이트 탐색이 종료되어 화상 전체의 움직임을 도시한 기준벡터가 구해질 때까지(단계 S57) 슬라이스를 변경하면서 반복한다(단계 S58).
도 17을 이용하여 더욱 구체적으로 설명하면 좁은 탐색영역용 움직임벡터 탐색부(210)의 동작은 다음과 같다.
처리대상인 화상의 처리개시 시점에서 처리대상의 화상 내에서 기준벡터를 구하기 위해 처리하는 슬라이스가 1 이상 설정되어 있는 것으로 한다. 일례로서 화상의 상부 근방, 중앙 부근, 하부 근방의 세 슬라이스를 처리대상으로 한다. 또한 처음 처리하는 슬라이스로서 도 17의 슬라이스(26)가 설정되어 있는 것으로 한다. 또한 단계 S51∼S56에 있어서 슬라이스 내에 포함되는 모든 템플레이트에 대하여 움직임벡터를 구하지만, 설명을 간단히 하기 위해서 각 슬라이스 내에는 2개만 템플레이트가 포함되어 있는(도 17의 슬라이스(26)에는 템플레이트(27),(28)만이 포함되어 있다) 것으로 한다.
처음에 좁은 탐색영역용 움직임벡터 탐색부(210)는 설정된 슬라이스(26)내 탐색대상인 템플레이트(여기서는 템플레이트(27),(28) 2개) 중, 끝부분의 템플레이트(27)에 대해, 시프트한 탐색영역(예컨대 도 14의 탐색영역(14)에 해당하는 영역)을 설정한다(단계 S51).
다음에, 설정된 탐색영역과 템플레이트(27)를 비교함으로써 움직임벡터를 구한다(단계 S52).
처리중인 슬라이스(26)내의 모든 탐색대상인 템플레이트(27),(28)에 대해서, 같은 시프트량으로 설정한 탐색영역의 탐색이 종료되었는지 판단한다(단계 S53).
종료되지 않은 경우에는 다음 템플레이트(28)로 변경하여 이 템플레이트(28)에 대하여 같은 시프트량의 탐색영역(예컨대 도 14의 탐색영역(14)에 해당하는 영역)을 설정하고(단계 S54) 단계 S52로 되돌아간다.
2개의 템플레이트(27),(28)에 대해 같은 시프트량의 탐색영역 탐색이 종료되면(단계 S53:YES), 모든 탐색영역(예컨대, 도 14의 4개의 탐색영역 (14),(15),(16),(17)로 이루어진 넓은 범위의 탐색영역(12)의 탐색이 종료되었는지 판단한다(단계 S55).
모든 탐색영역이 탐색되어 있지 않은 경우, 슬라이스(26)내의 탐색대상인 템플레이트 중 끝부분의 템플레이트(27)에 대해, 다른 시프트량의 탐색영역(예컨대 도 14의 탐색영역(15)에 해당하는 영역)을 설정하고(단계 S56), 단계 S52로 되돌아간다.
슬라이스 내의 탐색대상인 템플레이트 전부에 대해, 모든 탐색영역에서의 탐색이 모두 종료되면(단계 S55) 탐색대상인 각각의 템플레이트에 대해 넓은 탐색영역(도 14의 부호12에 해당하는 영역)에서의 움직임벡터가 구해진다.
다음에, 기준벡터를 구하기 위해 미리 설정한 모든 슬라이스의 처리가 종료되었는지를 판단함으로써 기준벡터를 구할 수 있는지 판단한다(단계 S57).
미처리된 슬라이스가 있는 경우(단계 S57), 미리 설정한 슬라이스로서, 미처리된 슬라이스를 선택하여(단계 S58) 단계 S52로 되돌아간다.
또, 미리 설정한 수의 슬라이스 처리를 종료했을 때의, 단계 S57에 있어서 기준벡터의 산출방법은 도 6도의 단계 S32에서 설명한 방법과 동일하다.
이상과 같이 하여 기준벡터를 구할 수 있다.
화상 전체의 움직임을 도시한 기준벡터가 구해지면 기준벡터를 구하기 위한 템플레이트군이 포함되어 있는 화상 내 모든 템플레이트에 대해, 개별적으로 기준벡터를 중심으로 한 좁은 영역을 상세히 탐색하여 개개의 템플레이트에 대해 기준벡터로부터의 변이벡터를 구한다(단계 S59). 개개의 템플레이트에 대해 변이벡터가 구해지면 기준벡터와 변이벡터를 가산하여 그 결과를 개개의 템플레이트의 움직임벡터로 한다(단계 S60).
단계 S59,S60은 도 2의 단계 S2,S3과 동일한 처리이다.
또 처리부의 차이는 있지만 단계 S51∼S58은 도 2의 단계 S1의 구체적인 처리내용이 된다. 또한 상술한 제1-2 실시형태에 있어서 움직임벡터 탐색장치(100)는 단계 S51∼S58을 이용하여 도 4의 단계 S11,S12,S13의 각 단계에서 움직임벡터 V1,V2,V3을 구하는 처리를 해도 좋다.
또한 본 실시형태에 있어서 기준벡터를 구하기 위해 설정된 슬라이스 내에 포함된 모든 템플레이트의 이동벡터를 구하는 것으로 설명하였지만 이에 한정되는 것은 아니다. 예컨대 슬라이스 내의 일부 템플레이트로서, 연속하는 템플레이트만을 처리하는 것이어도 좋다. 이 경우에도 움직임벡터의 탐색에 있어서 효율적인 메모리억세스를 실행할 수 있다.
물론 본 발명과 제4 종래기술을 병용하는 것도 가능하다. 예컨대, 과거에 탐색한 화상의 움직임벡터 분포를 분석하여 화상 전체의 움직임을 도시한 제1 기준벡터를 예측하고 동시에 탐색대상의 화상에 대해 본 발명에 의해 화상 전체의 움직임을 도시한 제2 기준벡터를 구한다. 다음에 탐색대상인 화상 내 모든 템플레이트에 대해 개별적으로 제1 기준벡터를 중심으로 한 좁은 영역과, 제2 기준벡터를 중심으로 한 좁은 영역을 상세히 탐색하여 차분절대치 합이 최소가 되는 제1 기준벡터 또는 제2 기준벡터로부터의 변이벡터를 구한다.
변이벡터를 구하는 비용이 2배로 증가하지만 보다 올바른 움직임벡터를 구할 수 있다.
제1-1∼제1-6 실시형태로 설명한 본 발명은, 움직임벡터 탐색장치의 비용증가 없이 탐색범위를 확대시킴과 동시에 그 확대된 탐색범위 내의 움직임이면 반드시 움직임을 검출할 수 있는 효과가 있다.
또한 탐색정밀도가 가장 높다는 제1 종래기술인 전탐색법을 이용했다 해도 오류검출을 피할 수는 없으며 움직임이 큰 화상의 화질을 좋게 하기 위해 탐색범위를 넓혀 탐색하면 오류검출로 인해 움직임벡터의 분산이 커진다. 그리하여 본 발명에서와 같이 화상 전체의 움직임을 도시한 기준벡터를 검출하여 그 주위만 상세히 탐색하면 오류검출로 인한 움직임벡터의 분산이 억제되어 결과적으로 화질이 향상되는 효과가 있다.
다음에, 상술한 두번째 움직임벡터 탐색방법 및 장치에 관한 본 발명의 실시형태를 도면을 참조하여 설명한다.
[제2-1 실시형태]
도 18은 두번째 움직임벡터장치에 관한 본 발명의 실시형태를 도시한 블럭도이다. 본 발명에 의한 움직임벡터 탐색장치(100)는 탐색영역을 시프트하여 일정한 면적의 영역을 탐색할 수 있는 움직임벡터 탐색부(130)를 갖는다. 움직임벡터 탐색부(130)는 템플레이트군 전체의 움직임 평가부(131)에 의해 일정한 수의 템플레이트 전체(이하, 템플레이트군이라 부른다)의 움직임을 미리 설정한 평가함수에 의해 평가하여, 해당 템플레이트군 전체의 움직임을 검출할 수 있었을 때에는 탐색영역시프트부(132)에 의해 그 움직임에 맞춰 다음에 탐색할 템플레이트군의 탐색영역을 시프트한다.
이하, 이 시프트량을 기준벡터라고 부른다.
또한 도 18에 도시한 움직임벡터 장치의 구성은 이하의 모든 실시형태에 있어서 공통적이다.
1슬라이스를 해당 템플레이트군으로 하는 경우의 예를 도 19에 도시한다. 1슬라이스는 10개의 템플레이트를 포함하여 1O개의 움직임벡터를 해석하여 슬라이스(14O)의 움직임을 구하고 그 움직임을 기준벡터로 하여 슬라이스(141)의 탐색영역을 시프트한다. 이러한 평가함수의 일례로는 예컨대, 해당 템플레이트군의 각 움직임벡터를 구할 때의 기준이 된 차분절대치 합이 모두 미리 설정한 문턱값 이하일 때에는 가장 출현빈도가 높은 움직임벡터를 해당 템플레이트군 전체의 움직임으로서 출력하는 함수를 생각할 수 있다.
도 19의 예에서는, 슬라이스(140)내 10개의 템플레이트의 움직임벡터에는 움직임벡터(142)와 움직임벡터(143) 두종류가 있으며 움직임벡터(142)의 출현회수가 7회, 움직임벡터(143)의 출현회수가 3회이다. 이 경우에는 움직임벡터(142)를 슬라이스(140)의 움직임(144)으로서 출력한다. 또 이 예에서는 움직임벡터가 두종류 밖에 존재하지 않는 경우를 도시했으나 보통 개개의 움직임벡터 크기는 조금씩 다르기 때문에 히스토그램을 취하는 등의 수단에 의해 그 분포를 해석할 필요가 있다.
도 20은 제2-1 실시형태에 관한 처리를 도시한 흐름도이다. 처음에 소정 기준벡터, 예컨대 기준벡터=(0,0)을 설정하고(단계 S110), 움직임벡터=(0,0)의 블럭을 중심으로 한 탐색영역에서 움직임 탐색을 시작하여(단계 S111) 상기 평가함수에 의해 검출한 템플레이트군 전체의 움직임을 다음 템플레이트군의 기준벡터로 한다(단계 S113). 이후 화상시퀀스 전체에서의 마지막 템플레이트군 탐색이 종료될 때까지(단계 S112) 검출한 템플레이트군 전체의 움직임을 다음 템플레이트군의 기준벡터로 하여 움직임벡터를 탐색한다.
도 20에 도시한 흐름도를 더욱 상세히 설명하면 다음과 같다.
처음에 움직임벡터 탐색부(130)는 소정 기준벡터, 예컨대 기준벡터=(0,0)을 설정한다(단계 S110).
다음에, 움직임벡터 탐색부(130)는 단계 S111에 있어서 화상시퀀스에 포함되는 최초의 화상 내 최상부(최초)의 템플레이트군에 대한 처리를 한다. 즉 움직임벡터 탐색부(130)는 이 템플레이트군의 각 템플레이트의 움직임벡터를 탐색한다. 이 처리를 시계열적으로 설명하면 다음과 같다.
1) 처음에 움직임벡터 탐색부(130)는 템플레이트군 내의 최초의 템플레이트(예컨대 왼쪽끝 템플레이트)를 처리대상으로 선택한다.
2) 다음에 탐색영역 시프트부(132)는 선택된 템플레이트에 대하여 현재 설정되어 있는 기준벡터를 시프트량으로 하는 탐색영역을 설정한다.
3) 움직임벡터 탐색부(130)는 처리대상의 템플레이트에 대해 설정된 탐색영역 내에서의 움직임벡터(변이벡터)를 구한다.
4) 움직임벡터 탐색부(130)는 처리대상의 템플레이트에 대해 구한 변이벡터와 현재의 기준벡터를 합함으로써 그 템플레이트의 실제 움직임벡터를 구한다.
5) 움직임벡터 탐색부(130)는 템플레이트군 내의 모든 템플레이트의 처리를 끝냈는지 판단한다. 처리를 끝낸 경우에는 단계 S112로 이동하고, 그렇지 않은 경우에는 템플레이트군 내의 다음 템플레이트(처리한 템플레이트의 오른쪽옆 템플레이트)를 선택하여 상기 2)로 되돌아간다.
이상과 같이 하여 단계 S111의 처리가 실행된다.
단계 S111의 처리가 종료되면 움직임벡터 탐색부(130)는 화상시퀀스의 마지막 화상의 최하부 템플레이트군의 처리가 종료되었는지 판단하여(단계 S112) 마지막 화상의 최하부 템플레이트군의 처리가 종료된 경우에는 처리를 종료한다.
그렇지 않은 경우에는 템플레이트군 전체의 움직임평가부(131)는 단계 S111에서 구한 템플레이트군의 각 움직임벡터를 이용하여 도 19에서 설명한 평가함수에 의해 검출한 템플레이트군 전체의 움직임벡터를 구한다. 또한 템플레이트군 전체의 움직임평가부(131)는 템플레이트군 전체의 움직임벡터를 다음 템플레이트군의 기준벡터로 설정하여(단계 S113) 단계 S11로 진행한다.
다음에 단계 S111에 있어서, 움직임벡터 탐색부(130)는 화상시퀀스에 포함되는 최초의 화상 내 최상부인 다음 템플레이트군에 대한 처리를 실행하게 된다. 또한 템플레이트군의 처리 순서는 MPEG 등 국제표준규격에 의거 처리할 때의 메모리의 억세스효율을 고려하여 처리대상의 화상 왼쪽에서 오른쪽, 위에서 아래로 한다.
이상과 같이 하여 움직임벡터 탐색장치는, 각 템플레이트군 전체의 움직임벡터(기준벡터)를 다음 템플레이트군의 각 템플레이트의 움직임벡터 탐색시 이용한다.
또한 본 실시형태에서는 상술한 바와 같이 템플레이트군에 포함된 개개의 템플레이트에 대해 탐색할 때(단계 S111), 그 템플레이트의 실제 움직임벡터(상술한 제1-1 실시형태 등에서 '기준벡터+변이벡터'에 상당)를 구하여 이들 실제 움직임벡터로부터 그 템플레이트군 전체의 움직임을 도시한 기준벡터를 산출한다. 이 점은 다음의 제2-2∼제2-5 실시형태에 있어서도 동일하다.
[제2-2 실시형태]
상기 제2-1 실시형태에서는 장면 전환 등에 의해 화상의 움직임이 갑자기 바뀌어도 그에 대응하여 기준벡터를 변경할 수 없기 때문에 실제 움직임과는 다른 영역을 계속 탐색하게 된다. 그리하여 이 제2-2 실시형태에서는 해당 템플레이트군 전체의 움직임을 검출할 수 있는 경우에는 템플레이트군 전체의 움직임을 출력할 뿐 아니라, 움직임을 검출할 수 없는 경우에는 「움직임을 검출할 수 없는 것」을 출력하는 평가함수를 이용한다. 여기에서「움직임을 검출할 수 있는 경우」에는 움직임 없음, 즉 움직임벡터=(0,0)을 검출한 경우가 포함되고,「움직임을 검출할 수 없는 경우」란, 탐색영역중에 템플레이트와 일치하는 블럭가 존재하지않은 경우를 의미한다.
이러한 평가함수의 일례로서, 예컨대 해당 템플레이트군의 각 움직임벡터를 구할 때의 기준이 된 차분절대치 합이 모두 미리 설정한 문턱값 이하일 때에는 가장 출현빈도가 높은 움직임벡터를 해당 템플레이트군 전체의 움직임으로서 출력하고, 움직임벡터의 차분절대치 합이 문턱값 이상이 되는 템플레이트가 1개라도 존재할 때에는「움직임을 검출할 수 없는 것」을 출력하는 함수를 생각할 수 있다.
이 제2-2 실시형태에서는, 템플레이트군의 움직임을 검출할 수 없을 때에는 다음 템플레이트군의 탐색에 있어서 탐색영역의 시프트를 리셋하여 소정의 기준벡터, 예컨대 기준벡터=(0,0)을 설정한다.
도 21은 제2-2 실시형태에 관한 처리를 도시한 흐름도이다. 처음에 소정 기준벡터, 예컨대 기준벡터=(0,O)을 설정하고(단계 S120), 움직임벡터=(0,0)의 블럭를 중심으로 한 탐색영역에서 움직임탐색을 시작하여(단계 S121), 움직임을 검출할 수 없는 동안에는 움직임벡터=(0,0)의 블럭을 중심으로 한 탐색영역에서 탐색한다. 상기 평가함수에 의해 템플레이트군 전체의 움직임을 검출하였을 때에는(단계 S123) 그 움직임을 다음 템플레이트군의 기준벡터로 한다(단계 S124). 이후 화상시퀀스 전체에 있어서 마지막 템플레이트군의 탐색이 종료될 때까지(단계 S122) 움직임을 검출할 수 있을 때에는 그것을 다음 템플레이트군의 기준벡터로 하고, 움직임을 검출할 수 없을 때에는 다음 템플레이트군의 기준벡터를 (0,0)로 리셋하여 움직임벡터를 탐색한다.
또한 도 21과 도 20을 비교하면 알 수 있듯이 단계 S120∼S122, S124는 각각 단계 S110부터 S113에 대응한다.
그리고 본 실시형태에서는, 도 20에 대해 단계 S123이 새롭게 부가되어 있다. 또 단계 S123에서는 템플레이트군 전체의 움직임 평가부(131)가 상술한 평가함수에 근거하여 판단한다.
[제2-3 실시형태]
본 발명의 제2-3 실시형태에서는 템플레이트군의 움직임을 검출할 수 없을때 다음 템플레이트군에서 움직임을 검출할 수 있는 템플레이트군이 나타날 때까지 개개의 템플레이트군마다 기준벡터를 변경하여 다른 범위의 움직임벡터를 탐색한다. 따라서 복수의 템플레이트군에 대해 움직임 탐색함으로써 넓은 범위에서 움직임벡터를 검출할 수 있다.
도 22는 이 제2-3 실시형태에 관한 처리를 도시한 흐름도이다. 처음에 소정 기준벡터, 예컨대 기준벡터=(0,0)을 설정하고(단계 S130), 움직임벡터=(0,0)의 블럭를 중심으로 한 탐색영역에서 움직임 탐색을 시작하여(단계 S131) 템플레이트군 전체의 움직임을 검출했을 때에는(단계 S133), 그 움직임을 다음 템플레이트군의 기준벡터로 한다(단계 S134).
움직임을 검출할 수 없을 때에는 다음 템플레이트군의 기준벡터를 미리 설정한 규칙에 따라 (0,0)이외의 기준벡터=(x1,y1)으로 변경하여(단계 S136) 동일하게 템플레이트군의 벡터를 탐색한다. 이 탐색에 의해 템플레이트군 전체의 움직임을 검출했을 때에는 그 움직임을 다음 템플레이트군의 기준벡터로 한다. 또다시 움직임을 검출할 수 없었을 때에는 다음 템플레이트군의 기준벡터를 미리 설정한 규칙에 따라 (0,0) 및 (x1,y1)이외의 기준벡터=(x2,y2)로 변경하여 탐색한다. 또한 처리한 템플레이트군이 현재 대상 중의 화상내 마지막 템플레이트군인 경우(단계 S135), 단계 S130으로 되돌아가 다음 처리대상인 회상내 처음 처리하는 템플레이트군의 기준벡터를 (0,0)으로 리셋한다.
이상의 처리를, 화상시퀀스 전체에 있어서 마지막 템플레이트군의 탐색까지 반복한다(단계 S132).
또한 도 22와 도 21을 비교하면 알 수 있듯이 단계 S130∼S134는 각각 단계 S120부터 S124에 해당한다.
그리고 본 실시형태에서는 도 21에 대하여 단계 S135,S136이 새롭게 부가되어 있다. 또 단계 S135에 있어서, 움직임벡터 탐색부(130)는 현재 처리중인 화상내 마지막 템플레이트군인지의 여부를 판단하여, 마지막이면 화상시퀀스에 있어서 다음 화상의 처리를 하기 위해 단계 S130으로 되돌아간다. 한편 마지막이 아니면 단계 S135에 있어서, 움직임벡터 탐색부(130)는 상술한 규칙에 따라 다른 기준벡터를 설정한다.
[제2-4 실시형태]
본 발명의 제2-4 실시형태에서는, 처음에 화상의 중앙 등 화상 전체의 움직임을 검출하기에 적당한 위치의 템플레이트군에 대해 다른 기준벡터를 설정하고 복수회의 탐색을 실행하여 넓은 범위에서 움직임벡터를 검출한다. 움직임벡터를 검출할 수 있으면 그것을 기준벡터로서 탐색한다. 템플레이트군의 움직임을 검출할 수 없을 때에는 소정 기준벡터, 예컨대 기준벡터=(0,0)을 설정하여 탐색한다.
그 후 템플레이트군 전체의 움직임을 검출할 수 있는 동안에는 검출한 움직임을 다음 템플레이트군의 기준벡터로 하여 탐색을 계속한다. 템플레이트군 전체의 움직임을 검출할 수 없는 경우로서 다음 화상의 처리로 이동하는 경우, 다음 화상의 탐색을 시작하기 전에 다음 화상의 중앙 등 화상전체의 움직임을 검출하기에 적당한 위치의 템플레이트군에 대해, 다른 기준벡터를 설정하여 복수회의 탐색을 실행하고 넓은 범위에서 움직임벡터를 검출하여 그것을 다음 화상에서의 기준벡터 초기값으로 한다.
도 23은 제2-4 실시형태에 관한 처리를 도시한 흐름도이다. 처음에 화상시퀀스 내에서 처리대상인 화상 내에서의 템플레이트군 전체의 움직임을 검출할 수 없었던 것을 기억하기 위한 검출불가 비트를 O으로 초기설정한다(단계 S140).
다음에 화상의 중앙 등 화상 전체의 움직임을 검출하기에 적당한 위치의 템플레이트군에 대해 다른 기준벡터를 설정하고 복수회의 탐색을 실행하여 넓은 범위에서 움직임벡터를 검출한다(단계 S141).
이 템플레이트군 전체의 움직임벡터 검색은 도 21의 단계 S120, S121의 반복과 거의 동일하다. 단, 단계 S120에 해당하는 처리로 미리 결정된 규칙에 따라 다른 기준벡터를 순차 설정하는 점 및 단계 S121에 해당하는 처리로 템플레이트군의 위치를 순차 변경하는 점이 다르다.
이 탐색으로 움직임벡터를 검출할 수 있었을 때에는(단계 S142) 그 움직임을 기준벡터로 설정하여(단계 S143) 탐색을 시작한다(단계 S145). 적당한 위치의 템플레이트군 전체의 움직임벡터를 검출하지 못한 경우, 소정 기준벡터, 예컨대 기준벡터=(0,0)을 설정하여 검출불가 비트를 1로 설정한 후(단계 S144) 템플레이트군의 움직임벡터 탐색을 시작한다(단계 S145).
또한 단계 S142의 판단은 도 21의 단계 S123과 동일하다.
또한 단계 S140∼S144에 있어서, 단계 S142는 템플레이트군 전체의 움직임 평가부(131)에 의해 처리되고, 단계 S143,S144에서의 탐색영역 설정은 탐색영역 시프트부(132)에 의해 처리된다. 또한 다른 처리는 움직임벡터 탐색부(130)에 의해실행된다.
화상시퀀스 전체에서의 마지막 템플레이트군의 탐색이 종료되거나 화상내 마지막 템플레이트군의 탐색이 종료될 때까지(단계 S146,S147) 템플레이트군 전체의 움직임을 검출할 수 있는 동안에는(단계 S148) 검출한 움직임을 다음 템플레이트군의 기준벡터로 한다(단계 S149). 템플레이트군 전체의 움직임을 검출하지 못한 경우에는 소정 기준벡터를 설정하고 검출불가 비트를 1로 설정하여(단계 S150) 템플레이트군의 움직임벡터를 탐색한다(단계 S145).
화상내 마지막 템플레이트군을 탐색하였으면(단계 S147) 검출불가 비트가 1인지 아닌지를 판정하여(단계 S151) 검출불가 비트가 1이면 단계 S140으로 되돌아가 다음 화상에 대해 동일한 처리를 반복한다. 검출불가 비트가 0이면 템플레이트군 전체의 움직임을 검출할 수 있는지의 여부에 의해(단계 S152), 검출할 수 있으면 단계 S153에 의해 기준벡터로서 검출한 움직임을 설정하여 템플레이트군의 움직임벡터 탐색을 계속한다(단계 S145). 템플레이트군 전체의 움직임을 검출하지 못한 경우에는 단계 S140으로 되돌아간다.
이상의 처리를, 화상시퀀스 전체에 있어서 마지막 템플레이트군의 탐색까지 반복하여 마지막 템플레이트군을 탐색하였으면 처리를 종료한다(단계 S146).
또한 도 23과 도 22를 비교하면 알 수 있듯이 단계 S145,S146은 각각 단계 S131,S132에 대응한다. 또한 단계 S148,S149는 각각 단계 S133,S134에 대응하고 단계 S152,S1153도 각각 단계 S133,S134에 대응한다. 그리고 단계 S147,S150은 각각 단계 S135,S136에 대응한다. 단 단계 S150은 검출불가 비트에 대한 처리도 포함한다.
그리고 본 실시형태에서는 도 22의 단계 S130에 대응하는 부분의 처리가 단계 S140∼S144로 되어 있다. 여기서 직전에 처리대상인 화상 내 중 어느 한 템플레이트군에 있어서 템플레이트군 전체의 움직임을 검출할 수 없는 경우, 화상 간 템플레이트의 움직임의 연속성이 낮아 앞으로 처리대상이 될 화상에 직전에 검출된 기준벡터를 설정하는 것은 부적절하다. 그래서 움직임벡터 탐색부(130)는 단계 S140∼S144에 있어서 앞으로 처리대상이 될 화상의 일부를 이용하여 초기의 기준벡터를 구하고 그것을 설정한다.
한편 직전에 처리대상인 화상 내 모든 템플레이트군에 있어서, 템플레이트군 전체의 움직임을 검출할 수 있는 경우, 화상 간 템플레이트의 움직임에 연속성이 있는 것으로 생각할 수 있다. 그래서 앞으로 처리대상이 될 화상의 기준벡터 초기값으로서, 움직임벡터탐색부(130)는 단계 S153에 있어서 검출한 기준벡터를 설정한다.
또한 처리대상인 화상의 각 템플레이트군에 대한 처리는 단계 S145∼S153에서 실행된다.
또 단계 S141에 있어서 적당한 위치의 템플레이트군으로서, 처리대상인 화상의 중앙 부근을 일례로서 도시했다. 화상 전체의 움직임벡터를 구할 때 화상의 중앙 부근이 가장 대표적인 움직임을 보이는 것으로 생각되기 때문에 바람직하지만 이에 한정되는 것은 아니다.
예컨대 단계 S141에서 적당한 위치의 템플레이트군으로서, 처리대상인 화상의 최상위 슬라이스에 포함된 왼쪽끝 템플레이트군(그 화상내 최초의 템플레이트군)으로 해도 좋다. 이 경우 단계 S141에 있어서, 템플레이트군의 각 템플레이트의 움직임벡터도 구해둠으로써 움직임벡터 탐색부(130)는 단계 S145에서 처리대상인 최초의 템플레이트군을, 단계 S141에서 처리한 템플레이트군의 다음 템플레이트군으로 할 수 있다. 이 경우 처리속도의 단축과 동시에 메모리 억세스를 보다 효율적으로 실행할 수 있게 된다.
또한 처리의 간략화를 도모하면서 직전 화상의 처리결과를 반영시키기 위해 단계 S141∼S143을 생략하고 단계 S144에서 소정 기준벡터를 설정하는 것만으로도 좋다.
[제2-5 실시형태]
본 발명의 제2-5 실시형태는 상기 제2-1부터 제2-4까지의 각 실시형태에 있어서, 동일한 슬라이스 내의 전(全) 템플레이트를 동일한 템플레이트군에 포함시킨 것이다. 즉, 이 실시형태에서의 템플레이트군은 1개 이상의 복수의 슬라이스로 구성된다.
만약 본 실시형태와 달리 동일한 슬라이스에 속한 템플레이트가 다른 템플레이트군에 포함된 것을 용납하면 템플레이트군의 교체에 있어서 제5 종래기술을 사용할 수 없어 탐색영역 내 화소의 여분의 전송이 필요해진다. 그 일례에 대해 도 24를 통해 설명한다.
도 24의 예에서는 1개의 슬라이스 내 왼쪽반의 템플레이트와 오른쪽반의 템플레이트가 다른 템플레이트군에 포함되어 왼쪽반의 템플레이트가 속한 템플레이트군(150)과 오른쪽반의 템플레이트가 속한 템플레이트군(151)으로 기준벡터가 다르다. 왼쪽반의 템플레이트가 속한 템플레이트군(150)과 오른쪽반의 템플레이트가 속한 템플레이트군(151)의 기준벡터를 각각 벡터(153)와 벡터(156)으로 하면, 템플레이트군(150)에 있어서 마지막 템플레이트(152)의 탐색영역과 템플레이트군(151)에 있어서 최초의 템플레이트(155)의 탐색영역은 각각 탐색영역(154)과 탐색영역(157)이 된다. 양 탐색영역이 이와 같이 어긋나 있으면 제5 종래기술을 사용할 수 없어 탐색영역(157)내의 화소를 거의 전부 화상메모리(24)에서 도 16에 설명한 탐색영역용 메모리(23)로 전송해야만 하기 때문에 여분의 화소전송이 필요해진다.
제2-5의 실시형태에서는, 동일한 슬라이스 내의 전 템플레이트를 동일한 템플레이트군에 포함시키기 때문에 이상과 같은 여분의 화소전송을 생략할 수 있게 된다.
여기서 MPEG1이나 MPEG2 등 국제표준규격으로 되어 있는 화상부호화 방식으로는 화면의 왼쪽부터 오른쪽, 위에서 아래의 순서로 부호화한다. 이들 부호화방식에 의거한 장치를 제조한다는 관점에서 도 17에 도시한 바와 같이 슬라이스의 방향은 가로인 것이 바람직하다.
[제2-6 실시형태]
제2-6의 실시형태에서는 템플레이트군 전체의 움직임을 검출할 수 있을 때에는 기준벡터로서 검출한 움직임을 설정하고, 템플레이트군 전체의 움직임을 검출하지 못했을 때에는 다음 템플레이트군에서 움직임을 검출할 수 있는 템플레이트군이 나타날 때까지 개개의 템플레이트군마다 기준벡터를 변경하여 다른 범위의 움직임벡터를 탐색한다. 단, 다음 템플레이트군의 움직임 탐색을 하기 전에 과거에 부호화된 화상의 움직임벡터 분포를 분석하여 다음 템플레이트군의 움직임을 예측한다. 그리고 예측한 움직임이 올바를 가능성이 높은지의 여부를 판정하여 높을 때에는 기준벡터를 예측한 움직임으로 변경한다. 또 예측이 올바른지의 판정법으로서는 예컨대, 현재 움직임 검출중인 화면에 있어서 검출이 끝난 모든 템플레이트군의 움직임과, 직전에 움직임을 검출한 화면에서 대응하는 위치의 템플레이트군의 움직임이 일치하는 경우에 올바르다고 판정하고, 1개라도 움직임이 다른 템플레이트군이 존재할 때에는 예측은 잘못되었다고 하는 방법을 생각할 수 있다.
도 25는 본 실시형태에 관한 처리를 도시한 흐름도이다.
우선 움직임벡터 검출부(130)는 소정의 기준벡터, 예컨대 기준벡터=(0,0)을 설정한다(단계 S161).
다음에 움직임벡터 검출부(130)는 화상시퀀스에 있어서 최초로 움직임 탐색을 실행하는 화상에 포함되는 템플레이트군을 제외하고, 템플레이트군의 움직임 탐색을 하기 전에 과거에 부호화된 화상의 움직임벡터 분포를 분석하여 템플레이트군의 움직임을 예측한다(단계 S162). 예측방법은 상술한 바와 같다.
그리고 움직임벡터 검출부(130)는 상술한 방법에 의해 예측한 움직임이 올바를 가능성이 높은지의 여부를 판정하여(단계 S163) 가능성이 높을 때에는 기준벡터를 예상한 움직임으로 변경한다(단계 S164).
여기에서 최초로 움직임 탐색을 하는 화상에는 과거에 탐색한 움직임벡터가 존재하지 않는다. 이 때문에 움직임벡터 검출부(130)는 과거의 움직임벡터 분포로예측한 움직임은 잘못되었다고 판정하고 단계 S164를 건너뛴다.
다음에 움직임벡터 검출부(130)는 템플레이트군에 포함된 개개의 템플레이트에 대해 이 기준벡터를 중심으로 하는 좁은 탐색영역을 설정·탐색하여 탐색영역 내에서의 변이벡터를 구한다(단계 S165).
그리고 움직임벡터 검출부(130)는 기준벡터와 구한 변이벡터의 합을 계산함으로써 템플레이트군 내 개개의 템플레이트의 움직임벡터를 구한다(단계 S166).
다음에 움직임벡터 검출부(130)는 처리한 템플레이트군이 화상시퀀스의 마지막 화상 내의 마지막 템플레이트군인지를 판단하여(단계 S167) 마지막이면 처리를 종료한다.
마지막이 아닌 경우, 템플레이트군 전체의 움직임 평가부(131)는 단계 S166에서 구한 개개의 템플레이트의 움직임벡터로부터 지금까지 설명한 방법으로 템플레이트군 전체의 움직임을 검출한다(단계 S168). 이 때 S162에서의 움직임벡터 분석를 위해, 템플레이트군 전체의 움직임 평가부(131)는 검출한 움직임벡터를 템플레이트군의 위치와 관련지어 도시하지 않은 메모리에 기억해 놓는다.
단계 S168에 있어서 템플레이트군 전체의 움직임을 검출할 수 있는 경우, 움직임벡터 검출부(130)는 그 움직임을 다음 템플레이트군의 기준벡터로 설정하여(단계 S170) 단계 S162로 진행한다.
움직임을 검출할 수 없는 경우, 움직임벡터 검출부(130)는 다음 템플레이트군의 기준벡터를 미리 설정한 규칙에 따라 지금까지 설정한 기준벡터 이외의 기준벡터(x1,y1)를 설정하여(단계 S171) 단계 S162로 진행한다. 또한 이 단계에 있어서재차 움직임을 검출할 수 없을 때, 다음 템플레이트군의 기준벡터를 미리 설정한 규칙을 따라 지금까지 설정한 기준벡터(0,0), (x1,y1)이외의 기준벡터(x2,y2)를 설정하게 된다. 또, 현재 처리중인 화면 내의 마지막 템플레이트군의 처리를 종료한 경우(단계 S169), 움직임벡터 검출부(130)는 단계 S161로 진행하여 화상시퀀스 내 다음 화상의 처리로 이동한다.
여기서, 도 25와 도 22를 비교하면, 단계 S161은 단계 S130에 대응한다. 단계 S165,S166은 단계 S131에 포함되는 처리이다. 단계 S167∼S171은 각각 단계 S132∼S136에 대응한다.
도 25와 도 22의 차이는 단계 S162∼S164에 있으며 이들 단계에 의해 움직임벡터 검출부(130)는 과거에 부호화된 화상의 움직임벡터 분포를 반영한 기준벡터를 설정할 수 있게 된다.
구체적으로는 다음과 같은 효과를 얻을 수 있다. 예컨대 화면의 하반부에서 열차가 이동하고 있고 상반부가 배경인 경우, 배경과 열차의 움직임은 다르다. 따라서 직전의 템플레이트군 움직임을 다음 템플레이트군의 기준벡터로 하는 것만으로는 배경과 열차의 경계 템플레이트군으로 그 템플레이트군에 포함되는 템플레이트의 움직임벡터가 잘 검출되지 않는다. 본 실시형태는, 과거에 부호화된 화상의 움직임벡터의 분포로부터 예측한 기준벡터도 이용하여 기준벡터를 설정하기(단계 S162∼S164) 때문에 상술한 배경과 열차의 경계에서의 템플레이트군에 대해서도 적절한 기준벡터를 설정할 수 있다. 그 결과 각 템플레이트의 움직임벡터를 고정밀도로 검출할 수 있게 된다.
본 실시형태에 있어서도 제2-5 실시형태에서 설명한 바와 같이 동일한 슬라이스 내의 전 템플레이트를 동일한 템플레이트군에 포함시킴으로써 효율적인 메모리 억세스 하에서 처리할 수 있게 된다.
[제2-7 실시형태]
본 실시형태에서는 지금까지 설명한 움직임벡터 탐색장치에 있어서 텔레스코픽 탐색도 실시할 수 있는 움직임벡터 검출장치에 관해서 설명한다. 처음에 텔레스코픽 탐색에 대해 설명한다.
화상부호화에 있어서는 시간적으로 복수매 전의 화상의 움직임벡터를 구하는 경우가 있다. 이러한 경우에 인접한 화상에 대한 움직임벡터를 구하고 그것을 초기값으로 하여 다음의 인접화상에 대한 움직임벡터를 반복하여 구하여 시간적으로 떨어진 화상 사이에서의 움직임벡터를 구하는 방법이 있다. 이 방법을 텔레스코픽 탐색법이라 한다. 인접화상의 움직임은 적기 때문에 이 방법을 사용함으로써 떨어진 화상 사이를 직접 탐색하는 경우에 비해 좁은 범위의 탐색으로 움직임을 검출할 수 있다.
이 텔레스코픽 탐색법에 대해 도 26의 모식도를 참조하여 설명한다.
도 26 중의 화상(204),(205),(206)은 시간적으로 연속된 3매의 화상이다. 그리고 화상(206)이 현재의 화상이고 화상(205)과 화상(204)은 각각 1화면 전, 2화면 전의 화상이다. 직사각형 블럭(201)은 화상(204)와 화상(205)사이에 있어서 움직임벡터(mv2)로 이동하고 있으며 마찬가지로 화상(205)과 화상(206)사이에 있어서 움직임벡터(mv1)로 이동하고 있다. 이 때 화상(206)으로부터 화상(204)으로의 직사각형 블럭(201)의 움직임벡터는 (mv1+mv2)가 된다.
텔레스코픽 탐색법으로는 화상(206)으로부터 화상(205)으로의 움직임벡터를 구하기 위해 화상(206)내의 직사각형 블럭(201)을 템플레이트로서 처음에 화상(205)내의 영역(202)을 탐색하여 움직임벡터(mv1)를 검출한다. 이 때 영역(202)의 중심 움직임벡터는 (0,0)이다. 다음에 화상(204)내의 영역(202)을 탐색하여 움직임벡터(mv2)를 검출한다. 직사각형 블럭(201)의 화상(206)으로부터 화상(205)으로의 움직임벡터를 고려하면 화상(204)내 영역(202)의 중심 움직임벡터는 mv1이다.
여기서, 벡터(mv1)의 수평성분과 수직성분을 각각 mvlx와 mvly로 한다. 그리고 이들 성분이 취할 수 있는 범위는 각각-a≤mv1x≤a, -b≤mv1y≤b로 한다. 마찬가지로 벡터(mv2)의 수평성분과 수직성분을 각각 mv2x와 mv2y로 하고 이들 성분이 취할 수 있는 범위를 각각-a≤mv2x≤a, -b≤mv2y≤b로 한다.
이 경우, 움직임벡터(mv1+mv2)가 취할 수 있는 범위는 각각,
-2a≤mv1x+mv2x≤2a, -2b≤mv1y+mv2y≤2b
가 된다. 요컨대 텔레스코픽 탐색에 있어서는 화상 사이의 거리가 떨어져 있을수록 움직임벡터를 취할 수 있는 범위, 바꿔 말하면 탐색에 의해 참조될 가능성이 있는 영역이 넓어진다. 이것을 도 26에서 보면 화상(206)으로부터 1매 떨어진 화상(205)에 있어서 탐색에 의해 참조될 가능성이 있는 영역은 영역(202)이고, 화상(206)으로부터 2매 떨어진 화상(204)에 있어서 탐색에 의해 참조될 가능성이 있는 영역은 영역(203)이다.
상술한 텔레스코픽 탐색법과 상술한 제2 종래기술을 조합한 방법은 예컨대,
「K.Suguri, T.Minami, H.Matuda, R.Kusaba, T.Kondo, R.Kasai, T.watanabe, H.Sato, N.Shibata, Y.Tashiro, T.Izuoka, A.Shimiz, H.Kotera,“A rea1-time motion estimation and compensation LSI with wide search range for MPEG2 video encoding', IEEE J.Solid-state Circuits, vol.31, no.11, pp.1733-1741, Nov.1996」에 기재되어 있다.
본 실시형태는 상기 제2-1부터 제2-6까지의 각 실시형태에 있어서, 탐색에 의해 참조될 가능성이 있는 영역을 도 18에 도시한 움직임벡터 탐색장치 내 탐색영역용 메모리(미도시)로 읽어들이도록 한 것이다. 예컨대, 상술한 텔레스코픽 탐색의 경우에는 도 26에 있어서 화면(205)내 영역(202)과 화면(204)내 영역(203)을 탐색영역용 메모리로 읽어들인다.
상기 제2-1부터 제2-6까지의 각 실시형태에 있어서, 실제로 탐색하는 영역만을 움직임벡터 탐색장치 내의 탐색영역용 메모리(미도시)로 읽어들인다고 하면, 각 실시형태에서 설명한 움직임벡터 탐색장치에서 텔레스코픽 탐색을 적용할 수 없었다. 그래서 각 실시형태에서 설명한 움직임벡터 탐색장치는 탐색에 의해 참조될 가능성이 있는 영역을 장치내 탐색영역용 메모리로 읽어들이도록 함으로써 텔레스코픽 방식과 같이 움직임벡터가 존재할 가능성이 있는 범위는 넓지만, 실제 탐색을 움직임벡터가 존재할 가능성이 높은 영역으로 한정하여 실시하는 탐색방식으로의 대응도 가능해진다.
이상 설명한 바와 같이 두번째 움직임벡터 탐색방법 및 장치에 관한 본 발명은, 움직임벡터 탐색장치의 비용증가 없이 탐색범위를 확대시킴과 동시에 그 확대된 탐색범위 내의 움직임이면 반드시 움직임을 검출할 수 있고 또한 화상 내 일부분의 탐색결과를 반영하여 탐색영역의 시프트량을 수정할 수 있는 효과가 있다.
또한, 탐색정밀도가 가장 높다는 제1 종래기술인 전탐색법을 이용했다 해도 오류검출을 피할 수 없으며 움직임이 큰 화상의 화질을 좋게 하기 위해 탐색범위를 넓혀 탐색하면 오류검출로 인해 움직임벡터의 격차가 커진다. 그래서 본 발명에서와 같이 일정한 수의 템플레이트 전체의 움직임을 평가하고 그 일정한 수의 템플레이트 전체의 움직임에 맞춰 다음에 탐색할 템플레이트군의 탐색영역을 시프트하여 상세히 탐색하면 오류검출로 인한 움직임벡터의 분산이 억제되고 그 결과 화질이 향상되는 효과가 있다.
나아가 상기 각 실시형태(제1-1∼제1-6 실시형태 및 제2-1∼2-7 실시형태)에 있어서는, 각 움직임벡터의 탐색순서를 프로그램으로서 기억매체에 기억해 두고 컴퓨터가 이 프로그램을 읽고 실행시킴으로써 실현 가능하다. 또 여기서 말하는「컴퓨터시스템」이란, OS나 주변기기 등의 하드웨어를 포함하는 것이다.
또한「컴퓨터 읽기 가능한 기록매체」란, 플로피디스크, 광자기디스크, ROM, CD-ROM 등의 가반(可搬)매체, 컴퓨터시스템에 내장되는 하드디스크 등의 기억장치를 말한다. 또「컴퓨터 읽기 가능한 기록매체」란, 인터넷 등의 네트워크나 전화회선 등 통신회선을 통해 프로그램을 송신하는 경우의 통신선과 같이 단시간 동안 동적으로 프로그램을 유지하는 것(전송매체 내지는 전송파), 그 경우의 서버나 클라이언트가 되는 컴퓨터시스템 내부의 휘발성 메모리와 같이 일정시간 프로그램을 유지시키는 것도 포함한다.
또한 상기 프로그램은 상술한 기능의 일부를 실현시키기 위한 것이어도 좋다. 또한 상술한 기능을 컴퓨터시스템에 이미 기록되어 있는 프로그램과 조합하여 실현할 수 있는 것, 소위 차분파일(차분프로그램)이어도 좋다.
물론 지금까지 설명한 처리를 실행하는 반도체장치를 제조하여 하드웨어만으로 처리를 함으로써도 실현 가능하다.
이상, 본 발명의 실시형태를 도면을 참조하여 상술했는데, 구체적인 구성은 이 실시형태에 한정되지 않으며 본 발명의 요지를 일탈하지 않는 범위 내에서의 설계 등도 포함된다.

Claims (18)

  1. 소정의 템플레이트와 동일한 크기의 화소블럭군 사이에서 소정 연산에 의해 움직임을 평가하여 템플레이트에 대해 동화상 내의 움직임벡터를 구하는 방법에 있어서,
    넓은 영역을 탐색하여 화상 전체의 움직임을 도시하는 기준벡터를 구하는 제1단계와,
    기준벡터를 구한 해당 화상을 이용하여 해당 화상 내의 모든 템플레이트에서 개별적으로 기준벡터를 중심으로 한 좁은 영역을 상세히 탐색하여 개개의 템플레이트에서 기준벡터로부터의 변이벡터를 구하는 제2단계와,
    개개의 템플레이트에 대해서 기준벡터와 변이벡터를 가산하여 그 결과를 개개의 템플레이트의 움직임벡터로 하는 제3단계를 포함하는 움직임벡터 탐색방법.
  2. 제1항에 있어서, 2매의 화상이 시간적으로 떨어져 있고 그 사이에 복수매의 화상이 존재할 때, 해당 2매의 화상간 움직임벡터를 탐색하는 데 있어서,
    상기 제1단계에서는
    시간적으로 인접한 화상간에 있어서 화상 전체의 움직임을 도시한 벡터를 전부 구하고 해당 시간적으로 인접한 화상간의 움직임을 도시한 벡터를 전부 가산하여 시간적으로 떨어진 상기 2매의 화상간에서의 화상 전체의 움직임을 도시한 기준벡터로 하고,
    상기 제2단계에서는
    기준벡터를 구한 상기 2매의 화상사이에서, 기준으로 하는 화상 내 모든 템플레이트에 대해 개별적으로 기준벡터를 중심으로 한 좁은 영역을 탐색하여 개개의 템플레이트에 대해 기준벡터로부터의 변이벡터를 구하는 움직임벡터 탐색방법.
  3. 제1항에 있어서, 상기 제1단계에서는
    고해상도의 화상을 직접 서브샘플링하거나 또는 고해상도의 화상을 저역통과 필터로 변환시킴으로써 저해상도의 축소화상을 작성하고 이 작성한 저해상도의 축소화상을 이용하여 넓은 영역을 탐색하여 화상 전체의 움직임을 도시한 기준벡터를 구하고,
    상기 제2단계에서는
    저해상도의 축소화상을 작성하기 위해 사용한 고해상도의 화상을 이용하여 개개의 템플레이트에 대해 기준벡터로부터의 변이벡터를 구하는 움직임벡터 탐색방법.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서, 상기 제1단계에서는
    화상 전체의 템플레이트 총수보다 적은 수로서, 화상 전체의 움직임을 알기 위해 필요한 수의 템플레이트만 넓은 영역을 탐색하여 화상 전체의 움직임을 도시한 기준벡터를 구하는 움직임벡터 탐색방법.
  5. 제4항에 있어서, 상기 제1단계에서는
    탐색하는 영역을 변경하면서 좁은 영역을 여러번 탐색함으로써 넓은 영역을 탐색하여 화상 전체의 움직임을 나타내는 기준벡터를 구하는 움직임벡터 탐색방법.
  6. 제4항에 있어서, 상기 제1단계에서는
    특정한 슬라이스 내의 탐색대상인 템플레이트 전부에 대해 탐색의 중심을 움직임벡터=(0,0)의 위치로부터 일정한 화소수만큼 시프트한 탐색영역을 설정하고 끝부분에 위치한 템플레이트부터 순서대로 탐색하여 특정 슬라이스 내 탐색대상인 템플레이트 전부에 대해 탐색이 종료되었으면 탐색의 중심을 움직임벡터=(0,0)의 위치로부터 별도의 화소수만큼 시프트한 탐색영역을 설정하여 동일하게 탐색하는 것을 반복하여 넓은 영역을 탐색하여 특정 슬라이스 내 개개의 탐색대상인 템플레이트에 대해 넓은 영역의 움직임벡터를 구하며, 또한 필요하다면 별도의 슬라이스에 대해 동일하게 탐색하여 구해진 개개의 템플레이트의 움직임벡터로 화상 전체의 움직임을 표시하는 기준벡터를 구하는 움직임벡터 탐색방법.
  7. 탐색에 의해 참조될 가능성이 있는 영역을 시프트하여 일정 면적의 영역을 탐색하는 움직임벡터 탐색방법에 있어서,
    일정한 수의 템플레이트로 이루어진 템플레이트군 전체의 움직임을 평가하여 해당 템플레이트군 전체의 움직임을 검출할 수 있을 때에는 그 움직임을 출력하고, 움직임을 검출할 수 없을 때에는 움직임을 검출할 수 없는 것을 출력하는 제1단계와,
    해당 템플레이트군 전체의 움직임을 검출할 수 있을 때에는 그 움직임에 맞춰 다음에 탐색할 템플레이트군의 탐색영역을 시프트하는 제2단계와,
    해당 템플레이트군 전체의 움직임을 검출할 수 없을 때에는 다음에 탐색할 템플레이트군의 탐색에 있어서 탐색영역의 중심블럭을 소정의 움직임벡터 블록으로 하는 제3단계를 포함하는 움직임벡터 탐색방법.
  8. 제7항에 있어서, 상기 제3단계에서는
    템플레이트군 전체의 움직임을 검출할 수 없을 때에는 다음에 탐색할 템플레이트군의 탐색에 있어서 탐색영역의 시프트를 리셋하여 탐색영역의 중심블럭을 리셋후의 움직임벡터로 표시되는 블럭으로 하는 움직임벡터 탐색방법.
  9. 제7항에 있어서, 상기 제3단계에서는
    해당 템플레이트군 전체의 움직임을 검출할 수 없을 때에는 다음에 탐색할 템플레이트군에서 움직임을 검출할 수 있는 템플레이트군이 나타날 때까지 개개의 템플레이트군마다 탐색영역의 시프트를 도시한 기준벡터를 변경하여 다른 범위의 움직임벡터를 탐색하는 움직임벡터 탐색방법.
  10. 제7항에 있어서, 상기 움직임벡터 탐색방법은
    최초의 화상 탐색을 시작하기 전에 최초의 화상에 있어서 화상 전체의 움직임을 검출하기에 적당한 위치의 템플레이트군에 대해, 탐색영역을 다른 위치로 시프트하여 탐색을 여러번 실행하고 넓은 범위에서 화상 전체의 움직임을 검출하여, 움직임을 검출할 수 있을 때에는 그 움직임에 맞춰 최초의 템플레이트군의 탐색영역을 시프트하고, 움직임을 검출할 수 없을 때에는 최초의 템플레이트군의 탐색영역을 소정의 기준벡터분 만큼 시프트하는 단계를 더 포함하며,
    상기 제3단계에서는
    템플레이트군 전체의 움직임을 검출할 수 없을 때에는 다음에 탐색할 템플레이트군에서 움직임을 검출할 수 있는 템플레이트군이 나타나거나, 해당 템플레이트군이 포함된 화상의 마지막 템플레이트군까지 소정의 기준벡터를 설정하여 탐색하고(S150), 다음 화상의 탐색을 시작하기 전에 다음 화상에 있어서, 화상 전체의 움직임을 검출하기에 적당한 위치의 템플레이트군에 대해, 탐색영역을 다른 위치로 시프트하여 탐색을 여러번 실행하고 넓은 범위에서 화상 전체의 움직임을 검출하여 그 움직임에 맞춰 다음 화상의 최초의 템플레이트군의 탐색영역을 시프트하는 움직임벡터 탐색방법.
  11. 제7항에 있어서, 상기 제2단계에서는
    해당 템플레이트군 전체의 움직임을 검출할 수 있을 때에는 그 움직임과 과거에 탐색한 화면에서의 움직임을 이용하여 다음에 탐색할 템플레이트군의 탐색영역 시프트의 결정 및 시프트를 실행하고,
    상기 제3단계에서는
    해당 템플레이트군 전체의 움직임을 검출할 수 없을 때에는 설정한 움직임과 과거에 탐색한 화면에서의 움직임을 이용하여 다음에 탐색할 템플레이트군의 탐색영역 시프트의 결정 및 시프트를 실행하는 움직임벡터 탐색방법.
  12. 제7항 내지 제11항 중 어느 한 항에 있어서, 상기 제1단계에서는
    개개의 템플레이트 탐색영역 내에 해당 템플레이트와 일치하는 블럭이 존재하지 않는 템플레이트가 1개라도 검출되었을 때, 해당 단계에 있어서 템플레이트군전체의 움직임을 검출할 수 없는 것을 출력하는 움직임벡터 탐색방법.
  13. 제7항 내지 제11항 중 어느 한 항에 있어서, 동일한 슬라이스 내의 전 템플레이트를 동일한 템플레이트군에 포함시키는 움직임벡터 탐색방법.
  14. 소정의 템플레이트와 동일한 크기의 화소블럭군 사이에서 소정 연산에 의해 움직임을 평가하여 템플레이트에 대해 동작화상 내의 움직임벡터를 구하는 움직임벡터 탐색장치로서,
    넓은 영역을 탐색하여 화상 전체의 움직임을 도시하는 기준벡터를 구하는 제1탐색부와,
    기준벡터를 구한 해당 화상을 이용하여 해당 화상 내의 모든 템플레이트에서 개별적으로 기준벡터를 중심으로 한 좁은 영역을 탐색하여 개개의 템플레이트에 대해 기준벡터로부터의 변이벡터를 구하고, 개개의 템플레이트에 대해서 기준벡터와 변이벡터를 가산하여 그 결과를 개개의 템플레이트의 움직임벡터로 하는 제2탐색부를 갖춘 움직임벡터 탐색장치.
  15. 제14항에 있어서, 상기 제1탐색부 및 상기 제2탐색부를 실현하기 위한 좁은 영역을 탐색하는 탐색부를 갖추며,
    상기 제1탐색부는, 상기 좁은 영역을 탐색하는 탐색부를 이용하여 탐색하는 영역을 변경하면서 좁은 영역을 여러번 탐색함으로써 넓은 영역을 탐색하여 화상전체의 움직임을 나타내는 기준벡터를 구하고,
    상기 제2탐색부는, 상기 좁은 영역을 탐색하는 탐색부를 이용하여 개별적으로 기준벡터를 중심으로 한 좁은 영역을 탐색하여 개개의 템플레이트에 대해 기준백터로부터의 변이벡터를 구하는 움직임벡터 탐색장치.
  16. 탐색영역을 시프트하여 일정한 면적의 영역을 탐색하는 움직임벡터 탐색장치에 있어서,
    일정한 수의 템플레이트로 이루어진 템플레이트군 전체의 움직임을 평가하여 해당 템플레이트군 전체의 움직임을 검출할 수 있을 때에는 그 움직임을 출력하고, 움직임을 검출할 수 없을 때에는 움직임을 검출할 수 없는 것을 출력하는 제1처리부와,
    해당 템플레이트군 전체의 움직임을 검출할 수 있을 때에는 그 움직임에 맞춰 다음에 탐색할 템플레이트군의 탐색영역을 시프트하고, 해당 템플레이트군 전체의 움직임을 검출할 수 없을 때에는 다음에 탐색할 템플레이트군의 탐색에 있어서 탐색영역의 중심블럭을 소정의 움직임벡터 블럭으로 하는 제2처리부를 구비한 움직임벡터 탐색장치.
  17. 소정의 템플레이트와 동일한 크기의 화소블럭군 사이에서 소정 연산에 의해 움직임을 평가하여 템플레이트에 대해 동작화상 내의 움직임벡터를 구하는 방법을 컴퓨터로 실행하기 위한 움직임벡터 탐색프로그램을 기억한 컴퓨터로 읽기 가능한기억매체에 있어서,
    넓은 영역을 탐색하여 화상 전체의 움직임을 도시하는 기준벡터를 구하는 처리와,
    기준벡터를 구한 해당 화상을 이용하여 해당 화상 내의 모든 템플레이트에서 개별적으로 기준벡터를 중심으로 한 좁은 영역을 탐색하여 개개의 템플레이트에 대해 기준벡터로부터의 변이벡터를 구하는 처리와,
    개개의 템플레이트에 대해서 기준벡터와 변이벡터를 가산하여 그 결과를 개개의 템플레이트의 움직임벡터로 하는 처리를 컴퓨터로 실행시키는 움직임벡터 탐색프로그램을 기억한 기억매체.
  18. 탐색영역을 시프트하여 일정한 면적의 영역을 탐색하는 움직임벡터 탐색방법을 컴퓨터로 실행시키기 위한 움직임벡터 탐색프로그램을 기억한 컴퓨터 읽기 가능한 기억매체에 있어서,
    일정한 수의 템플레이트로 이루어진 템플레이트군 전체의 움직임을 평가하여 해당 템플레이트군 전체의 움직임을 검출할 수 있을 때에는 그 움직임을 출력하고, 움직임을 검출할 수 없을 때에는 움직임을 검출할 수 없는 것을 출력하는 처리와,
    해당 템플레이트군 전체의 움직임을 검출할 수 있을 때에는 그 움직임에 맞춰 다음에 탐색할 템플레이트군의 탐색영역을 시프트하는 처리와,
    해당 템플레이트군 전체의 움직임을 검출할 수 없을 때에는 다음에 탐색할 템플레이트군의 탐색에 있어서 탐색영역의 중심블럭을 소정의 움직임벡터 블럭으로하는 처리를 컴퓨터로 실행시키는 움직임벡터 탐색프로그램을 기억한 기억매체.
KR1019990016758A 1998-05-19 1999-05-11 움직임벡터 검색방법 및 장치 KR100325253B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP10-136287 1998-05-19
JP13628798 1998-05-19
JP10-202628 1998-07-17
JP20262898 1998-07-17

Publications (2)

Publication Number Publication Date
KR19990088182A KR19990088182A (ko) 1999-12-27
KR100325253B1 true KR100325253B1 (ko) 2002-03-04

Family

ID=26469926

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019990016758A KR100325253B1 (ko) 1998-05-19 1999-05-11 움직임벡터 검색방법 및 장치

Country Status (3)

Country Link
US (1) US6380986B1 (ko)
EP (1) EP0959626B1 (ko)
KR (1) KR100325253B1 (ko)

Families Citing this family (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3721867B2 (ja) * 1999-07-07 2005-11-30 日本電気株式会社 映像表示装置及び表示方法
US6970510B1 (en) * 2000-04-25 2005-11-29 Wee Susie J Method for downstream editing of compressed video
US6973130B1 (en) 2000-04-25 2005-12-06 Wee Susie J Compressed video signal including information for independently coded regions
US6501794B1 (en) * 2000-05-22 2002-12-31 Microsoft Corporate System and related methods for analyzing compressed media content
US7327787B1 (en) * 2000-11-20 2008-02-05 Intel Corporation Method and apparatus for motion estimation
US6687301B2 (en) * 2001-03-19 2004-02-03 Fulvio Moschetti Method for block matching motion estimation in digital video sequences
US20020136302A1 (en) * 2001-03-21 2002-09-26 Naiqian Lu Cascade window searching method and apparatus
US6987866B2 (en) * 2001-06-05 2006-01-17 Micron Technology, Inc. Multi-modal motion estimation for video sequences
CN1297134C (zh) * 2001-07-09 2007-01-24 三星电子株式会社 用于扫描搜索区内参考宏块窗口的运动估计装置和方法
JP3838954B2 (ja) * 2001-08-31 2006-10-25 宗元 朴 医療映像処理システム及び処理方法
JP2003153269A (ja) * 2001-11-08 2003-05-23 Mitsubishi Electric Corp 動きベクトル検出装置、それを複数用いた動きベクトル検出システムおよび動きベクトル検出方法
US20030103567A1 (en) * 2001-12-03 2003-06-05 Riemens Abraham Karel Motion compensation and/or estimation
US7113644B2 (en) * 2002-02-13 2006-09-26 Matsushita Electric Industrial Co., Ltd. Image coding apparatus and image coding method
US7180429B2 (en) * 2002-02-14 2007-02-20 Intel Corporation Slow motion detection system
US7239721B1 (en) * 2002-07-14 2007-07-03 Apple Inc. Adaptive motion estimation
US7742525B1 (en) * 2002-07-14 2010-06-22 Apple Inc. Adaptive motion estimation
US7072399B2 (en) * 2002-07-17 2006-07-04 Lsi Logic Corporation Motion estimation method and system for MPEG video streams
US7231090B2 (en) * 2002-10-29 2007-06-12 Winbond Electronics Corp. Method for performing motion estimation with Walsh-Hadamard transform (WHT)
JP4003128B2 (ja) * 2002-12-24 2007-11-07 ソニー株式会社 画像データ処理装置および方法、記録媒体、並びにプログラム
JP4536325B2 (ja) * 2003-02-04 2010-09-01 ソニー株式会社 画像処理装置および方法、記録媒体、並びにプログラム
US7324596B2 (en) * 2003-07-15 2008-01-29 Lsi Logic Corporation Low complexity block size decision for variable block size motion estimation
US7453940B2 (en) * 2003-07-15 2008-11-18 Lsi Corporation High quality, low memory bandwidth motion estimation processor
US7319795B2 (en) * 2003-09-23 2008-01-15 Broadcom Corporation Application based adaptive encoding
US20050084135A1 (en) * 2003-10-17 2005-04-21 Mei Chen Method and system for estimating displacement in a pair of images
KR100575578B1 (ko) * 2003-11-13 2006-05-03 한국전자통신연구원 이동 단말 장치에서의 움직임 검출 방법
US7602849B2 (en) * 2003-11-17 2009-10-13 Lsi Corporation Adaptive reference picture selection based on inter-picture motion measurement
US7889792B2 (en) * 2003-12-24 2011-02-15 Apple Inc. Method and system for video encoding using a variable number of B frames
JP2005223631A (ja) * 2004-02-05 2005-08-18 Sony Corp データ処理装置およびその方法と符号化装置および復号装置
US7986731B2 (en) 2004-02-06 2011-07-26 Apple Inc. H.264/AVC coder incorporating rate and quality controller
US7869503B2 (en) * 2004-02-06 2011-01-11 Apple Inc. Rate and quality controller for H.264/AVC video coder and scene analyzer therefor
US7492820B2 (en) 2004-02-06 2009-02-17 Apple Inc. Rate control for video coder employing adaptive linear regression bits modeling
US7792188B2 (en) * 2004-06-27 2010-09-07 Apple Inc. Selecting encoding types and predictive modes for encoding video data
US20050286777A1 (en) * 2004-06-27 2005-12-29 Roger Kumar Encoding and decoding images
US8111752B2 (en) * 2004-06-27 2012-02-07 Apple Inc. Encoding mode pruning during video encoding
JP4241709B2 (ja) * 2005-10-11 2009-03-18 ソニー株式会社 画像処理装置
KR100778116B1 (ko) * 2006-10-02 2007-11-21 삼성전자주식회사 움직임벡터 보정장치 및 보정방법
US7907217B2 (en) * 2006-10-31 2011-03-15 Siemens Medical Solutions Usa, Inc. Systems and methods of subtraction angiography utilizing motion prediction
KR100860690B1 (ko) * 2007-01-26 2008-09-26 삼성전자주식회사 외부 메모리 액세스를 최소화하는 움직임 탐색 방법 및장치
JP5080333B2 (ja) * 2007-04-06 2012-11-21 本田技研工業株式会社 自律移動体のための物体認識装置
CN101415122B (zh) * 2007-10-15 2011-11-16 华为技术有限公司 一种帧间预测编解码方法及装置
JP5268433B2 (ja) * 2008-06-02 2013-08-21 キヤノン株式会社 撮像装置、及び撮像装置の制御方法
TW201001339A (en) * 2008-06-25 2010-01-01 Univ Nat Chiao Tung Method of detecting moving object
TWI396116B (zh) * 2009-12-18 2013-05-11 Pixart Imaging Inc 位移偵測裝置及方法
KR101183781B1 (ko) * 2009-12-22 2012-09-17 삼성전자주식회사 실시간 카메라 모션 추정을 이용한 물체 검출/추적 방법 및 단말
US9092864B2 (en) * 2010-11-30 2015-07-28 Pixart Imaging Inc Displacement detection apparatus and method
US8737685B2 (en) 2011-04-25 2014-05-27 Honeywell International Inc. Systems and methods for detecting the movement of an object
US8582821B1 (en) 2011-05-23 2013-11-12 A9.Com, Inc. Tracking objects between images
US20130021512A1 (en) * 2011-07-20 2013-01-24 Broadcom Corporation Framing of Images in an Image Capture Device
US10210399B2 (en) * 2013-12-20 2019-02-19 Magna Electronics Inc. Vehicle vision system with image processing
US9986189B2 (en) 2016-01-04 2018-05-29 Samsung Electronics Co., Ltd. Pixel sensors and imaging devices for providing multiple sub sample images within a single frame
CN110225341B (zh) * 2019-06-03 2020-08-28 中国科学技术大学 一种任务驱动的码流结构化图像编码方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2830183B2 (ja) 1989-10-14 1998-12-02 ソニー株式会社 動きベクトル検出装置及び動きベクトル検出方法
JP2586686B2 (ja) 1990-04-19 1997-03-05 日本電気株式会社 動画像の動き情報検出装置および動画像の動き補償フレーム間予測符号化装置
US5210605A (en) * 1991-06-11 1993-05-11 Trustees Of Princeton University Method and apparatus for determining motion vectors for image sequences
JPH05328333A (ja) 1992-05-15 1993-12-10 Toshiba Corp 動きベクトル検出装置
US5473379A (en) * 1993-11-04 1995-12-05 At&T Corp. Method and apparatus for improving motion compensation in digital video coding
US5619268A (en) * 1995-01-17 1997-04-08 Graphics Communication Laboratories Motion estimation method and apparatus for calculating a motion vector
JP3994445B2 (ja) 1995-12-05 2007-10-17 ソニー株式会社 動きベクトル検出装置及び動きベクトル検出方法
JPH09212649A (ja) 1996-02-06 1997-08-15 Nippon Telegr & Teleph Corp <Ntt> 動き推定方法
JP3019787B2 (ja) 1996-09-20 2000-03-13 日本電気株式会社 動きベクトル検出装置
JPH10262258A (ja) * 1997-03-19 1998-09-29 Sony Corp 画像符号化装置及び方法

Also Published As

Publication number Publication date
EP0959626A2 (en) 1999-11-24
KR19990088182A (ko) 1999-12-27
EP0959626A3 (en) 2005-06-22
US6380986B1 (en) 2002-04-30
EP0959626B1 (en) 2012-08-15

Similar Documents

Publication Publication Date Title
KR100325253B1 (ko) 움직임벡터 검색방법 및 장치
US7764738B2 (en) Adaptive motion estimation and mode decision apparatus and method for H.264 video codec
EP1389016B1 (en) Improved motion estimation and block matching pattern
RU2551207C2 (ru) Способ и устройство для кодирования видео
JP4166781B2 (ja) 動きベクトル検出装置および動きベクトル検出方法
US9549186B2 (en) Image predictive encoding and decoding device
KR950009699B1 (ko) 움직임벡터 검출방법 및 장치
US20110228853A1 (en) Moving image encoding and decoding system
US20080080617A1 (en) Motion vector detection apparatus and method
US20060203912A1 (en) Motion vector detection method, motion vector detection apparatus, computer program for executing motion vector detection process on computer
US7702168B2 (en) Motion estimation or P-type images using direct mode prediction
WO2010109564A1 (ja) 画像符号化装置及び画像符号化方法
CN112292861A (zh) 用于解码端运动矢量修正的基于误差面的子像素精确修正方法
US20240114165A1 (en) Image decoding device, image encoding device, image processing system, and program
CN112261413B (zh) 视频编码方法、编码装置、电子设备和存储介质
JP5185244B2 (ja) 動きベクトル検出装置、動きベクトル検出方法およびプログラム
JP3335137B2 (ja) 動きベクトル探索方法、動きベクトル探索装置および動きベクトル探索プログラムを記録した記録媒体
CN114040209A (zh) 运动估计方法、装置、电子设备及存储介质
US10397566B2 (en) Image coding apparatus, image coding method, and program
JPH1175192A (ja) 動きベクトル探索方法および動きベクトル探索装置ならびに動きベクトル探索プログラムを記憶した記憶媒体
KR20010034374A (ko) 움직임 벡터 검출 장치 및 방법
US9471992B2 (en) Moving image processing apparatus, moving image processing method, and computer product
JPH07240927A (ja) 映像符号化装置
JP2008072608A (ja) 画像符号化装置及び画像符号化方法
JPH08205171A (ja) 動画像符号化装置

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130117

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20140120

Year of fee payment: 13

FPAY Annual fee payment

Payment date: 20150116

Year of fee payment: 14

FPAY Annual fee payment

Payment date: 20160119

Year of fee payment: 15

FPAY Annual fee payment

Payment date: 20180126

Year of fee payment: 17

EXPY Expiration of term