최근 멀티미디어 어플리케이션의 발전에 따라, 화상·음성·텍스트 등, 모든 미디어의 정보를 통일적으로 취급하는 것이 일반적으로 되어 왔다. 이 때, 모든 미디어를 디지털화함으로써, 통일적으로 미디어를 취급하는 것이 가능해진다. 그러나, 디지털화된 화상은 방대한 데이터량을 가지므로, 축적·전송을 위해서는, 화상의 정보압축 기술이 불가결하다. 한편, 압축한 화상 데이터를 상호 운용하기 위해서는, 압축 기술의 표준화도 중요하다. 화상 압축 기술의 표준 규격으로서는, ITU-T(국제전기통신연합 전기통신 표준화부문)의 H. 261, H. 263, ISO/IEC(국제표준화기구 국제전기표준회의)의 MPEG(Moving Picture Experts Group)-1, MPEG-2, MPEG-4 등이 있다.
일반적으로 동화상의 부호화에서는, 시간방향 및 공간방향의 장황성을 삭감함으로써 정보량의 압축을 행한다. 그래서 시간적인 장황성의 삭감을 목적으로 하 는 화면간 예측 부호화에서는, 전방 또는 후방의 픽처를 참조하여 블록 단위로 움직임의 검출 및 예측 화상의 작성을 행하여, 얻어진 예측 화상과 부호화 대상 픽처와의 차분치에 대해 부호화를 행한다. 여기서, 픽처란 1장의 화면을 나타내는 용어이고, 프로그래시브 화상에서는 프레임을 의미하고, 인터레이스 화상에서는 프레임 또는 필드를 의미한다. 여기서, 인터레이스 화상이란, 1개의 프레임이 시각이 다른 2개의 필드로 구성되는 화상이다. 인터레이스 화상의 부호화나 복호화 처리에 있어서는, 1개의 프레임을 프레임인채로 처리하거나, 2개의 필드로 하여 처리하거나, 프레임 내의 블록마다 프레임 구조 또는 필드 구조로 하여 처리하거나 할 수 있다.
참조 화상을 갖지 않고 화면내 예측 부호화를 행하는 것을 I픽처라 부른다. 또, 1장의 픽처만을 참조하여 화면간 예측 부호화를 행하는 것을 P픽처라 부른다. 또, 동시에 2장의 픽처를 참조하여 화면간 예측 부호화를 행할 수 있는 것을 B픽처라 부른다. B픽처는 표시 시간이 전방 또는 후방으로부터 임의의 조합으로 하여 2장의 픽처를 참조하는 것이 가능하다. 참조 화상(참조 픽처)은 부호화 및 복호화의 기본 단위인 블록마다 적절한 것을 선택할 수 있고, 부호화를 행한 비트 스트림 중에 먼저 기술되는 쪽의 참조 픽처를 제1 참조 픽처, 후에 기술되는 쪽을 제2 참조 픽처로 하여 구별한다. 단, 이들 픽처를 부호화 및 복호화하는 경우의 조건으로서, 참조할 픽처가 이미 부호화 및 복호화되어 있을 필요가 있다.
P픽처 또는 B픽처의 부호화에는, 움직임 보상 화면간 예측 부호화가 사용되고 있다. 움직임 보상 화면간 예측 부호화란, 화면간 예측 부호화에 움직임 보상 을 적용한 부호화 방식이다. 움직임 보상이란, 단순히 참조 프레임의 같은 좌표 위치의 화소치로부터 예측하는 것이 아니라, 픽처 내의 각 부의 움직임량(이하, 이것을「움직임 벡터」라 부른다)을 검출하여, 해당 움직임량을 고려한 예측을 행함으로써 예측 정밀도를 향상시키는 동시에, 데이터량을 줄이는 방식이다. 예를 들면, 부호화대상 픽처의 움직임 벡터를 검출하여, 그 움직임 벡터분만큼 시프트한 예측치와 부호화 대상 픽처와의 화소마다의 화소치의 차분인 예측 잔차를 부호화함으로써 데이터량을 저감하고 있다. 이 방식의 경우에는, 복호화시에 움직임 벡터의 정보가 필요해지므로, 움직임 벡터도 부호화되어 기록 또는 전송된다.
움직임 벡터는 소정의 사이즈의 블록 단위로 검출되어 있고, 구체적으로는, 부호화 대상 픽처측의 각 블록에 대해, 참조 픽처측에서 블록을 탐색 범위 내에서 이동시켜, 부호화 대상 블록과 가장 유사한 참조 블록의 위치를 찾아냄으로써, 움직임 벡터가 검출된다.
도 1은, 종래의 화상 부호화 장치(100)의 구성을 도시한 블록도이다. 화상 부호화 장치(100)는, 차분기(101), 화상 부호화부(102), 가변길이 부호화부(103), 화상 복호화부(104), 가산기(105), 화상 메모리(106), 픽처 메모리(107), 움직임 보상부(108), 움직임 벡터 검출부(109) 및 움직임 벡터 기억부(110)를 구비하고 있다. 또한, 움직임 보상의 블록의 사이즈로서는, 현재 책정중인 규격안인 ITU-T H.26L TML8에서는, 4화소×4화소, 4화소×8화소, 8화소×4화소, 8화소×8화소, 8화소×16화소, 16화소×8화소, 16화소×16화소의 7가지의 움직임 보상의 블록 사이즈로부터 매크로 블록 단위로 적절한 것을 선택하여 부호화·복호화에 사용한다.
픽처 메모리(107)는, 표시 시간순으로 픽처 단위로 입력된, 동화상을 나타내는 화상 데이터 Img를 저장한다. 차분기(101)는, 픽처 메모리(107)로부터 독출된 화상 데이터 Img와, 움직임 보상부(108)로부터 입력된 예측 화상 데이터 Pred와의 차분을 연산하여, 예측 잔차 화상 데이터 Res를 생성한다. 화상 부호화부(102)는, 입력된 예측 잔차 화상 데이터 Res에 대해 주파수 변환이나 양자화 등의 부호화 처리를 행하여, 잔차 화상 부호화 데이터 CodedRes를 생성한다. 화면 내 부호화의 경우에는, 화면간 움직임 보상을 행하지 않으므로, 예측 화상 데이터 Pred의 값은「0」이라고 생각한다.
움직임 벡터 검출부(109)는, 화상 메모리(106)에 기억된 부호화가 끝난 복호화 화상 데이터인 참조 화상 데이터 Ref를 참조 픽처로서 사용하여, 그 픽처 내의 탐색 영역에서 최적이라고 예측되는 위치를 나타내는 움직임 벡터를 검출하여, 검출된 움직임 벡터를 나타내는 움직임 파라미터 MotionParam을 출력한다. 또한, 그 때 움직임 벡터 검출부(109)는, 부호화 대상 픽처가 P픽처인지 B픽처인지에 따라, 참조 픽처를 전환한다. 부호화 모드 Mod는, 블록을 어떠한 방법(예를 들면, 쌍예측, 편방향 예측, 다이렉트 모드 중 어느 하나)으로 움직임 보상하는지를 나타내는 것이다. 예를 들면, 다이렉트 모드에서는, 움직임 벡터 검출부(109)는, 다른 블록에서 도출된 움직임 벡터를 사용하여, 해당 움직임 보상 대상 블록의 쌍예측 움직임 벡터를 산출한다. 여기서, 다이렉트 모드의 움직임 벡터를 도출하기 위해 참조하는 픽처를 기준 픽처라 부르고, 대상 블록과 같은 좌표 위치의 기준 픽처의 블록을 기준 블록이라 부르기로 한다. 이 경우, 다이렉트 모드의 움직임 벡터의 값은, 실제로 움직임 보상의 단위가 되는 블록 사이즈에 관계없이, 16화소×16화소의 매크로 블록을 단위로 하여 산출되고, 산출된 움직임 벡터는 부호화되지 않는다. 그리고, 산출한 움직임 벡터를 사용할지, 또는 움직임 벡터 (0,0)를 사용할지를 4화소×4화소 단위로 전환한다. 움직임 보상부(108)는, 부호화 대상 블록의 부호화 모드 Mod와, 움직임 벡터 검출부(109)에서 검출된 움직임 벡터에 기초하여 예측 화상 데이터 Pred를 생성한다.
또한, 움직임 보상부(108)에서는, 움직임 벡터가 1/2화소, 1/4화소 등의 소수 이하의 화소 위치를 가리키는 경우에는, 저역 통과 필터 등을 사용하여 1/2화소, 1/4화소 등의 소수 화소 위치의 화소치를 보간 생성한다. 움직임 벡터 기억부(110)는, 움직임 벡터 검출부(109)로부터 출력된 움직임 파라미터 MotionParam을 기억한다. 가변길이 부호화부(103)는, 입력된 잔차 화상 부호화 데이터 CodedRes 및 움직임 벡터 검출부(109)로부터 출력된 움직임 파라미터 MotionParam에 대해 가변길이 부호화 등을 행하고, 또한 부호화 모드 Mod를 부가함으로써 부호화 데이터 Bitstream을 생성한다.
화상 복호화부(104)는, 입력된 잔차 화상 부호화 데이터 CodedRes에 대해 역양자화나 역주파수 변환 등의 복호화 처리를 행하여, 복호 잔차 화상 데이터 ReconRes를 생성한다. 가산기(105)는, 화상 복호화부(104)로부터 출력된 복호 잔차 화상 데이터 ReconRes와, 움직임 보상부(108)로부터 입력된 예측 화상 데이터 Pred를 가산하여, 복호화 화상 데이터 Recon을 생성한다. 화상 메모리(106)는, 생성된 복호화 화상 데이터 Recon을 저장한다.
피사체의 이동량이 정수 화소 단위보다 작은 경우는, 정수 화소 단위보다 작은 움직임으로 예측을 행하면 예측 효과가 높은 경우가 있다. 일반적으로, 정수 화소 단위보다 작은 단위의 움직임을 수반하는 예측 화상의 화소치의 계산에는 화소 보간을 사용한다. 이 화소 보간은, 참조 화상의 화소치에 대해 선형 필터(저역 통과 필터)에 의한 필터링을 행함으로써 실행된다. 이 선형 필터의 탭 수를 늘리면 양호한 주파수 특성을 갖는 필터를 실현하기 쉬워져, 예측 효과가 높아지지만 처리량은 커진다. 한편, 필터의 탭 수가 적으면 필터의 주파수 특성은 나빠져, 예측 효과는 낮아지지만 필터의 연산량은 작아진다.
도 2는, 화소 보간을 행하는 종래의 화상 복호화 장치(200)의 구성을 도시한 블록도이다. 화상 복호화 장치(200)는, 가변길이 복호화부(201), 화상 복호화부(202), 가산기(203), 화상 메모리(204), 움직임 벡터 기억부(205) 및 움직임 보상부(206)를 구비하고 있다.
가변길이 복호화부(201)는, 입력된 부호화 데이터 Bitstream로부터, 잔차 화상 부호화 데이터 CodedRes, 움직임 파라미터 MotionParam 및 부호화시에 사용된 부호화 모드 Mod의 정보 등의 각종 데이터의 추출을 행한다. 화상 복호화부(202)는, 입력된 잔차 화상 부호화 데이터 CodedRes의 복호화를 행하여, 잔차 화상 데이터 Res를 생성한다. 움직임 벡터 기억부(205)는, 가변길이 복호화부(201)에 의해 추출된 움직임 파라미터 MotionParam을 저장한다. 움직임 보상부(206)는, 선형 필터 등을 사용하여 1/2화소, 1/4화소 등의 소수 화소 위치의 화소치를 보간 생성하는 도시 생략한 화소 보간부를 내부에 구비하여, 부호화시의 부호화 모드 Mod 및 움직임 파라미터 MotionParam 등에 기초하여, 화상 메모리(204) 내의 복호화 화상 데이터 Recon으로부터 움직임 보상 화상 데이터인 예측 화상 데이터 Pred를 생성한다. 이 때, 움직임 보상부(206)는, 다이렉트 모드의 경우에, 움직임 벡터 기억부(205)로부터 독출한 기준 픽처의 기준 블록의 움직임 보상의 블록 사이즈와 같은 블록 사이즈로 움직임 보상 대상 블록의 예측 화상 데이터 Pred를 생성한다. 가산기(203)는, 화상 복호화부(202)로부터 출력된 잔차 화상 데이터 Res와, 움직임 보상부(206)로부터 출력된 움직임 보상 화상 데이터인 예측 화상 데이터 Pred를 가산하여, 복호화 화상 데이터 Recon을 생성한다. 화상 메모리(204)는, 생성된 복호화 화상 데이터 Recon을 저장한다.
(비특허 문헌)
MPEG-4 비쥬얼 규격서(1999년, ISO/IEC14496-2 : 1999 lnformation technology--Coding of audio-visual objects--Part2 : Visual)
그러나, 소수 정밀도의 움직임 보상을 행하기 위해서는, 움직임 보상 대상 블록뿐만 아니라, 그 주변, 수 화소분의 화소치가 필요하다. 즉, 보간 처리에 의해 소수 화소 정밀도의 화소치를 생성하기 위해, 실제의 예측 블록보다 큰 영역의 화소치가 필요해진다. 보간 처리로 화소치를 생성하기 위해서는, 저역 통과 필터를 사용하는 것이 일반적이고, 저역 필터를 적용하기 위해서는 대상 화소의 근방 수 화소(저역 필터의 계수분의 화소)를 액세스할(독출할) 필요가 있다. 도 3은, 화소 보간을 행하는 경우에 예측 화상을 생성하기 위해 화소치를 독출하는 것이 필요한 움직임 보상 대상 블록과 그 주변 화소의 일례를 나타낸 도면이다. 도 3(a) 는, 움직임 보상 대상 블록이 작은 경우의 움직임 보상 대상 블록과 그 주변 화소를 나타낸 도면이다. 도 3(b)는, 움직임 보상 대상 블록이 큰 경우의 움직임 보상 대상 블록과 그 주변 화소를 나타낸 도면이다. 도 3(a) 및 도 3(b)에 있어서, 중앙의 직사각형 부분은 1개의 움직임 보상 대상 블록을 나타내고, 그 주위의 사선부는 화소 보간을 행하기 위해 참조 메모리로부터 화소치가 독출되는 주변 화소를 나타내고 있다. 여기서는, 예를 들면, 저역 통과 필터로서 9탭(화소치가 9화소분 필요)의 필터를 사용한다고 하면, 블록 경계부의 화소에 저역 통과 필터 처리를 행하기 위해서는 적어도 블록 외의 4화소의 화소치가 필요하고, 중앙의 움직임 보상 대상 블록에 대해, 그 주위 4화소분의 화소치를 포함하는 메모리를 액세스하지 않으면 안된다. 예를 들면, 4화소×4화소의 블록에서는 1블록에서 (4+4+4)×(4+4+4)=144 화소의 화소치를 독출할 필요가 있다. 8화소×8화소의 블록에서는 (4+8+4)×(4+8+4)=256화소의 화소치를 독출할 필요가 있다. 16화소×16화소의 매크로 블록을 8화소×8화소의 4블록으로 움직임 보상하는 경우에는 256화소×4=1024화소의 화소치를 독출하기만 하면 되나, 4화소×4화소의 블록을 단위로 하여 16화소×16화소를 움직임 보상하는 경우에는, 144화소×16=2304화소의 화소치를 독출하지 않으면 안된다. 따라서, 8×8화소 단위의 움직임 보상 쪽이 4화소×4화소 단위의 움직임 보상 4회분에 대해 약 반의 메모리 액세스량이 된다.
이상의 예로부터 분명한 바와 같이, 1개의 움직임 보상 대상 블록에 대해, 그 주위의 화소치를 동 화소수분만큼 여분으로 독출하도록 한 경우, 움직임 보상 대상 블록의 크기가 작을수록, 참조 메모리로부터 독출되는 화수 수에 관해, 움직 임 보상 대상 블록의 화소수에 대한 주변 블록의 화소수의 비율이 커진다. 그 결과, 참조 메모리로부터 움직임 보상 대상 블록의 화소치를 독출할 때, 움직임 보상의 대상이 아닌 주변 화소를 참조하는 것에 의한 메모리·독출 액세스의 부하가 커져 버린다는 문제가 있다. 특히, 동시에 2개의 픽처를 참조하여 부호화 또는 복호화 대상 픽처의 움직임 보상 화소치를 계산하는 B픽처의 쌍예측 움직임 보상의 경우에는, 편방향 예측 움직임 보상과 비교하여 참조 메모리로의 액세스가 약 2배로 많아지기 때문에, 움직임 보상 대상 블록의 사이즈가 작은 경우에는, 상기 오버헤드 문제가 보다 현저해져 버린다.
본 발명의 실시형태에 관해, 도 4 내지 도 17을 사용하여 설명한다.
(실시형태 1)
이하, 본 발명의 제1의 실시형태에 관해서 도면을 사용하여 상세히 설명한다.
도 4는 본 발명에 따른 화상 부호화 방법을 사용한 화상 부호화 장치(300)의 일 실시형태의 구성을 도시한 블록도이다. 화상 부호화 장치(300)는, 2개의 픽처를 참조하여 부호화가 행해지는 B픽처의 움직임 보상을 행할 때, P픽처의 움직임 보상의 블록 사이즈보다도 큰 블록 사이즈로 움직임 보상을 행하는 화상 부호화 장치이며, 차분기(101), 화상 부호화부(102), 가변길이 부호화부(103), 화상 복호화부(104), 가산기(105), 화상 메모리(106), 픽처 메모리(107), 움직임 벡터 기억부(110), 움직임 정보 변환부(301), 움직임 벡터 검출부(302) 및 움직임 보상부(303)를 구비하고 있다.
픽처 메모리(107)는, 표시 시간순으로 입력된, 동화상을 나타내는 화상 데이터 Img를 픽처 단위로 저장한다. 차분기(101)는, 픽처 메모리(107)로부터 독출된 화상 데이터 lmg와, 움직임 보상부(303)로부터 입력된 예측 화상 데이터 Pred와의 차분을 연산하여, 예측 잔차 화상 데이터 Res를 생성한다. 이것에 있어서, 화면 내 부호화의 경우에는, 화면간 움직임 보상을 행하지 않으므로, 예측 화상 데이터 Pred의 값은「0」이라고 생각한다. 화상 부호화부(102)는, 입력된 예측 잔차 화상 데이터 Res에 대해 주파수 변환이나 양자화 등의 부호화 처리를 행하여, 잔차 화상 부호화 데이터 CodedRes를 생성한다. 움직임 정보 변환부(301)는, 부호화 대상 픽처가 B픽처인 경우에는, 소정의 블록 사이즈로 움직임 보상이 행해지도록 움직임 벡터를 도출하여, 움직임 벡터 검출부(302) 및 움직임 보상부(303)에 통지한다. 즉, B픽처의 경우에는 편방향 예측, 쌍예측과 다이렉트 모드를 가능하게 하여 쌍예측 및 다이렉트 모드 움직임 보상을 큰 블록 사이즈로 행하도록 하고(예를 들면 8화소×8화소 미만의 블록 사이즈로 움직임 벡터를 검출하는 것을 금지), P픽처의 경우에는 편방향 예측을 작은 블록 사이즈라도 가능하게 한다. 이에 의해, 특히 메모리로의 액세스가 많은 쌍예측 모드에 있어서, 작은 블록 사이즈로 참조 픽처를 참조하는 움직임 벡터를 선택할 수 없도록 한다. 또, 움직임 정보 변환부(301)는, 움직임 벡터 기억부(110)에 기억되어 있는 참조 픽처의 움직임 파라미터를, 소정의 블록 사이즈(예를 들면 8화소×8화소)의 움직임 파라미터(움직임 벡터 등)로 변환하거나, 또는 이 변환에 상당하는 움직임 파라미터의 교체를 움직임 벡터 검출부(302) 및 움직임 보상부(303)에 지시한다.
움직임 벡터 검출부(302)는, 화상 메모리(106)에 기억된 부호화가 끝난 픽처의 복호화 화상 데이터인 참조 화상 데이터 Ref를 참조 픽처로서 사용하여, 참조 픽처 내의 탐색 영역에서 최적이라고 예측되는 블록의 위치를 나타내는 움직임 벡터를 검출하여, 검출된 움직임 벡터를 포함하는 움직임 파라미터 MotionParam을 출력한다. 움직임 벡터 기억부(110)는, 움직임 벡터 검출부(302)로부터 출력된 움직임 파라미터 MotionParam을 기억한다.
또, 움직임 벡터 검출부(302)는, 부호화 대상 픽처가 P픽처인지 B픽처인지에 대응하여, 부호화 모드 Mod에서 움직임 보상한 경우의 오차를 평가하여, 편방향 예측 및 쌍예측으로 참조 픽처 내의 탐색을 행한 경우와 다이렉트 모드에서 도출한 움직임 벡터의 움직임 보상 오차를 비교한다. 즉, 다이렉트 모드에서는, 움직임 정보 변환부(301)에 의해 변환된, 움직임 보상 대상 블록의 후방 동일 위치에 있는 움직임 보상이 끝난 블록의 움직임 벡터(예를 들면 8화소×8화소 이상의 블록 사이즈의 움직임으로 변환)에 따라, 움직임 보상 대상 블록의 움직임 벡터를 다수의 움직임 벡터 중에서 선택한다. 또한, 다이렉트 모드란, 움직임 보상 대상 블록의 움직임 벡터를 다른 블록에서 도출된 움직임 벡터를 사용하여 산출하고, 해당 움직임 보상 대상 블록의 움직임 벡터를 부호화하지 않는 쌍예측 모드를 말한다. 도출한 움직임 벡터를 사용할지, 움직임 벡터 (0, 0)을 사용할지는, 후방 동일 위치에 있는 블록의 움직임 벡터의 크기에 따라 결정한다(어느쪽을 선택했는지의 식별 정보는 부호화하지 않는다). 또, 후방 동일 위치에 있는 블록이란, 표시순으로 부호화 대상 픽처의 가장 가까운 후방에 있는 픽처 내(기준 픽처)에서 부호화 대상 픽처 내의 블록과 동일 위치에 있는 블록(기준 블록)을 말한다.
움직임 보상부(303)는, 이 부호화 모드 Mod와, 움직임 벡터 검출부(302)에서 검출된 움직임 벡터에 기초하여 예측 화상 데이터 Pred를 생성한다. B픽처의 다이렉트 모드에 있어서는, 움직임 보상부(303)는, 8화소×8화소의 움직임 보상 대상 블록마다, 움직임 벡터 검출부(302)에 의해 산출된 움직임 벡터를 사용하여, 예측 화상을 생성한다. 또한, 움직임 보상부(303)에서는, 움직임 벡터가 1/2화소, 1/4화소 등의 소수 이하의 화소 위치를 가리키는 경우에는, 선형 필터(저역 통과 필터) 등을 사용하여 1/2화소, 1/4화소 등의 소수 화소 위치의 화소치를 보간 생성한다. 이 경우, 움직임 벡터 검출부(302)에서는 쌍예측 모드에서 작은 블록 사이즈의 움직임 벡터가 선택되지 않기 때문에, 움직임 보상부(303)는, 쌍예측 모드에서는 메모리 액세스가 그다지 많지 않은 비교적 큰 블록 사이즈로 움직임 보상을 행할 수 있다. 또, 편방향 예측 모드에서는 작은 블록 사이즈에서의 움직임 보상도 가능한 움직임 보상을 행한다. 가변길이 부호화부(103)는, 입력된 잔차 화상 부호화 데이터 CodedRes 및 움직임 벡터 검출부(302)로부터 출력된 움직임 파라미터 MotionParam에 대해 가변길이 부호화 등을 행하고, 또한 부호화 모드 Mod를 부가함 으로써 부호화 데이터 Bitstream을 생성한다.
화상 복호화부(104)는, 입력된 잔차 화상 부호화 데이터 CodedRes에 대해 역양자화나 역주파수 변환 등의 복호화 처리를 행하여, 복호 잔차 화상 데이터 ReconRes를 생성한다. 가산기(105)는, 화상 복호화부(104)로부터 출력된 복호 잔차 화상 데이터 ReconRes와, 움직임 보상부(303)로부터 입력된 예측 화상 데이터 Pred를 가산하여, 복호화 화상 데이터 Recon을 생성한다. 화상 메모리(106)는, 생성된 복호화 화상 데이터 Recon을 저장한다.
도 5는 본 발명에 따른 화상 복호화 방법을 사용한 화상 복호화 장치(400)의 일 실시형태의 구성을 도시한 블록도이다. 화상 복호화 장치(400)는, 가변길이 복호화부(201), 화상 복호화부(202), 가산기(203), 화상 메모리(204), 움직임 벡터 기억부(205), 움직임 정보 변환부(401) 및 움직임 보상부(402)를 구비하고 있다.
가변길이 복호화부(201)는, 입력된 부호화 데이터 Bitstream으로부터, 잔차 화상 부호화 데이터 CodedRes, 움직임 파라미터 MotionParam 및 부호화시에 사용된 부호화 모드 Mod의 정보 등의 각종 데이터의 추출을 행한다. 화상 복호화부(202)는, 입력된 잔차 화상 부호화 데이터 CodedRes의 복호화를 행하여, 잔차 화상 데이터 Res를 생성한다. 움직임 정보 변환부(401)는, 움직임 벡터 기억부(205)로부터 독출한 참조 픽처의 움직임 파라미터를, 소정의 블록 사이즈(예를 들면 8화소×8화소)의 움직임 파라미터(움직임 벡터 등)로 변환하거나, 또는 이 변환에 상당하는 움직임 파라미터의 교체를 움직임 보상부(402)에 대해 지시한다. 움직임 보상부(402)는, 내부에, 선형 필터 등을 사용하여 1/2화소, 1/4화소 등의 소수 화소 위 치의 화소치를 보간 생성하는 도시 생략한 화소 보간부를 구비하여, 부호화시의 부호화 모드 Mod 및 움직임 파라미터 MotionParam 등에 기초하여, 화상 메모리(204) 내의 복호화 화상 데이터 Recon으로부터 움직임 보상 화상 데이터인 예측 화상 데이터 Pred를 생성한다. 이 때, 복호화 대상 매크로 블록이 다이렉트 모드로 부호화되어 있는 경우, 예측 화상 데이터 Pred를 생성하기 위한 움직임 벡터는 부호화되어 있지 않다. 이 때문에, 움직임 보상부(402)는, 움직임 정보 변환부(401)에서 변환된 움직임 벡터(예를 들면 8화소×8화소 이상의 블록 사이즈의 움직임으로 변환) 및 복호화 대상 매크로 블록의 주변 블록에서 도출되어 있는는 움직임 벡터를 사용하여, 움직임 보상 대상 블록의 움직임 벡터를 산출하여, P픽처의 최소 블록 사이즈보다 큰 사이즈의 움직임 보상 대상 블록(예를 들면, 8화소×8화소)의 단위로 예측 화상 데이터 Pred를 생성한다. 움직임 벡터 기억부(205)는, 가변길이 복호화부(201)에 의해 추출된 움직임 파라미터 MotionParam을 저장한다. 가산기(203)는, 화상 복호화부(202)로부터 출력된 잔차 화상 데이터 Res와, 움직임 보상부(402)로부터 출력된 움직임 보상 화상 데이터인 예측 화상 데이터 Pred를 가산하여, 복호화 화상 데이터 Recon을 생성한다. 화상 메모리(204)는, 생성된 복호화 화상 데이터 Recon을 저장한다.
이하에서는, 상기한 바와 같이 구성된 화상 부호화 장치(300) 및 화상 복호화장치(400)의 동작에 관해 설명한다.
본 실시형태에서는, B픽처의 다이렉트 모드에 있어서, 화상 부호화 장치(300)에서는 움직임 벡터 검출부(302), 화상 복호화 장치(400)에서는 움직임 보 상부(402)는, 움직임 보상 대상 블록의 후방 동일 위치에 있는 움직임 보상이 끝난 블록의 움직임 벡터에 따라, 다수의 움직임 벡터 중에서 움직임 보상 대상 블록의 움직임 보상에 사용하는 움직임 벡터를 선택한다. 예를 들면, 움직임 벡터 검출부(302) 또는 움직임 보상부(402)는, 부호화 또는 복호화 대상 픽처 내에서 이미 부호화 또는 복호화되어 있는 주변 블록의 움직임 벡터를 사용하여 산출되는 부호화 또는 복호화 대상 매크로 블록의 움직임 벡터, 또는 움직임 벡터 (0,0)의 어느 하나를 선택하여, 움직임 보상 대상 블록의 움직임 벡터로 한다. 주변 블록이란, 부호화 대상 픽처의 동일 화면 내에서, 이미 부호화 또는 복호화되어 있는 블록으로서, 부호화 또는 복호화 대상 매크로 블록의 근방의 블록을 말한다. 이하에서는, 이미 결정된 주변 블록의 움직임 벡터와, 후방의 참조 픽처의 움직임 파라미터를 사용하여 움직임 보상 대상 블록의 움직임 벡터를 결정하는 방법에 의한, 다이렉트 모드의 움직임 보상 방법에 대해, 먼저 화상 부호화 장치(300)에서의 처리를 설명한다.
도 6(a)는, 주변 블록이 부호화 또는 복호화 대상 매크로 블록과 같은 16화소×16화소의 블록 사이즈로 움직임 보상되어 있는 경우에, 주변 블록의 움직임 벡터를 사용하여 부호화 또는 복호화 대상 매크로 블록의 움직임 벡터 MV를 결정하는 방법을 나타낸 도면이다. 도 6(b)는, 부호화 또는 복호화 대상 매크로 블록과 후방 동일 위치 매크로 블록이 같은 블록 사이즈로 움직임 보상되어 있는 경우에, 움직임 보상 대상 블록과 그 후방 동일 위치에 있는 블록의 대응을 나타낸 도면이다. 도 7은, 주변 블록이 부호화 또는 복호화 대상 매크로 블록보다 작은 블록 사이즈 로 움직임 보상되어 있는 경우에, 주변 블록의 움직임 벡터를 사용하여 부호화 또는 복호화 대상 매크로 블록의 움직임 벡터 MV를 결정하는 방법을 나타낸 도면이다. 도 8은, 부호화 또는 복호화 대상 매크로 블록과 후방 동일 위치 매크로 블록이 같은 블록 사이즈로 움직임 보상되어 있는 경우에, 움직임 보상 대상 블록의 후방 동일 위치에 있는 블록의 움직임에 따라, 다른 방법으로 움직임 보상 대상 블록을 움직임 보상하기 위한 처리 순서를 나타낸 흐름도이다.
먼저 부호화 대상 픽처 B1 내의 움직임 보상 대상 블록과, 후방의 P픽처 P2 내에서 해당 움직임 보상 대상 블록과 동일 위치에 있는 블록이 같은 크기이고, 1대 1로 대응하고 있는 경우에 관해 설명한다. 움직임 정보 변환부(301)는, 움직임 보상 대상 블록의 후방 동일 위치에 있는 블록의 움직임 보상의 사이즈가 움직임 보상 대상 블록의 사이즈와 동일한지 여부를 판단하여, 동일한 경우, 도 8의 흐름도에 나타낸 순서로, 움직임 보상 대상 블록의 움직임 벡터를 산출하도록 움직임 벡터 검출부(302)에 지시한다. 도 8의 흐름도에 나타낸 바와 같이, 움직임 벡터 검출부(302)는, 먼저 도 6(b)에 나타낸 부호화 대상 픽처 B1의 후방의 P픽처(기준 픽처), 즉 대상 픽처 B1보다도 시간적으로 후에 표시되는 P픽처로서, 부호화 대상 픽처 B1에 가까운 픽처 P2 내에서, 움직임 보상 대상 블록과 동일 위치에 있는 블록(기준 블록)의「움직임이 작은지」여부를 조사하여(S401),「움직임이 작은」경우, 움직임 보상 대상 블록의 움직임 벡터를 (0,0)으로 한다(S402). 즉, 이 움직임 보상 대상 블록에 대해서는, 움직임 벡터를 (0, 0)으로 하여 화면간 예측을 사용한 움직임 보상을 행한다. 여기서, 「움직임이 작다」란, 그 블록이 화상으로서 가장 가까운 픽처를 참조하여 부호화되어 있고, 그 움직임 벡터의 크기(절대치)가「1」이내인 것을 말한다. 단, 단순히 움직임 벡터의 크기가 소정치 이하인 경우에「움직임이 작다」고 해도 되고, 또 특정한 픽처를 참조 픽처로 한 경우에「움직임이 작다」고 해도 된다.
한편, 후방의 P픽처 내에서 움직임 보상 대상 블록과 동일 위치에 있는 블록의「움직임이 작지」않은 경우, 즉 기준 블록이 가장 가까운 픽처를 참조하여 부호화되어 있지 않거나, 또는 움직임 벡터의 크기가「1」을 넘는 경우, 움직임 벡터 검출부(302)는, 부호화 대상 매크로 블록의 주변 블록의 움직임 벡터로부터 산출되는 부호화 대상 매크로 블록의 움직임 벡터 MV를, 해당 움직임 보상 대상 블록의 움직임 벡터로 한다(S404). 또한, 이하의 설명에서는, 설명을 간단히 하기 위해 픽처 P0, 픽처 P2는 각각 픽처 B1에 가장 가까운 픽처로 한다.
부호화 대상 매크로 블록의 움직임 벡터 MV를 산출하기 위해, 움직임 벡터검출부(302)는, 먼저 부호화 대상 매크로 블록 근방의 부호화가 끝난 블록(주변 블록)을 3개 선택한다. 선택의 기준 및 방법은, 여기서는 중요하지 않기 때문에 설명을 생략한다. 도 6(a)는, 부호화 대상 매크로 블록에 대해 선택된 3개의 주변 블록을 나타내고 있다. 동 도면과 같이, 부호화 대상 매크로 블록의 위에 위치하는 매크로 블록에서는, 움직임 벡터 MV2가 이미 결정되어 있고, 오른쪽 위에 위치하는 매크로 블록에서는, 움직임 벡터 MV3가 결정되어 있다. 또, 부호화 대상 매크로 블록의 왼쪽에 위치하는 매크로 블록에 대해서는, 움직임 벡터 MV1이 결정되어 있다. 움직임 벡터 검출부(302)는, 이들 움직임 벡터 MV1, 움직임 벡터 MV2 및 움직임 벡터 MV3를 사용하여, 해당 부호화 대상 매크로 블록의 움직임 벡터 MV를 결정한다. 예를 들면, 움직임 벡터 MV1, 움직임 벡터 MV2 및 움직임 벡터 MV3 중에서 시간적으로 가장 가까운 픽처를 참조한 것을 해당 부호화 대상 매크로 블록의 움직임 벡터 MV의 후보로 한다. 여기서, 「부호화 대상 픽처로부터 시간적으로 가장 가까운 픽처」란, 부호화 대상 매크로 블록에 있어서 전방의 픽처를 참조한 움직임 벡터를 예측하는 경우에는, 부호화 대상 픽처로부터 전방이고 가장 가까운 픽처를 말하고, 후방의 픽처를 참조한 움직임 벡터를 예측하는 경우에는, 후방이고 가장 가까운 픽처를 말한다. 이것에 있어서, 움직임 벡터 검출부(302)는,
(1)부호화 대상 픽처로부터 시간적으로 가장 가까운 픽처를 참조한 것이 없는 경우, 해당 부호화 대상 매크로 블록의 움직임 벡터 MV를 (0, 0)으로 한다.
(2)가장 가까운 픽처를 참조하고 있는 것이 1개인 경우, 그 후보를, 해당 부호화 대상 매크로 블록의 움직임 벡터 MV로 한다. 또,
(3)가장 가까운 픽처를 참조하고 있는 것이 2개 이상인 경우, 가장 가까운 픽처를 참조하고 있지 않은 주변 블록의 움직임 벡터를 (0,0)으로 하여, 주변 블록의 3개의 움직임 벡터의 중앙치를 부호화 대상 매크로 블록의 움직임 벡터 MV로 한다.
이상에서는, 도 6(a)를 사용하여 부호화 대상 매크로 블록의 주변 블록이, 부호화 대상 매크로 블록과 같은 사이즈로 움직임 보상되어 있는 경우에 관해 설명했으나, 도 7에 도시하는 바와 같이, 주변 블록이 부호화대상 매크로 블록과는 다른, 보다 작은 블록 사이즈로 움직임 보상되어 있는 경우라도, 동일하게 하여 부호 화 대상 매크로 블록의 움직임 벡터 MV를 산출할 수 있다. 도 7은, 16화소×16화소의 부호화 대상 매크로 블록에 대해, 주변 블록에서는 4화소×4화소의 블록을 단위로 하여 움직임 벡터가 검출되어 있는 경우를 나타내고 있다. 이러한 경우, 부호화 대상 매크로 블록의 움직임 벡터 MV를 산출하기 위해, 움직임 벡터 검출부(302)는, 먼저 주변 블록을 3개(블록 A, 블록 B 및 블록 C) 선택한다.
블록 A는, 예를 들면, 부호화 대상 매크로 블록의 왼쪽에 위치하는 매크로 블록에 속하며, 부호화 대상 매크로 블록의 왼쪽 위의 모서리에 접하는 블록이다. 또, 블록 B는, 예를 들면, 부호화 대상 매크로 블록의 위에 위치하는 매크로 블록에 속하며, 부호화 대상 매크로 블록의 왼쪽 위의 모서리에 접하는 블록이다. 또한 블록 C는, 예를 들면 부호화 대상 매크로 블록의 오른쪽 위에 위치하는 매크로 블록에 속하며, 부호화 대상 매크로 블록의 오른쪽 위의 모서리에 접하는 블록이다.
블록 A에 대해서는 움직임 벡터 MV1이 이미 결정되어 있고, 블록 B에 대해서는 움직임 벡터 MV2가, 블록 C에 대해서는 움직임 벡터 MV3가, 이미 결정되어 있다. 움직임 벡터 검출부(302)는, 이들 움직임 벡터 MV1, 움직임 벡터 MV2 및 움직임 벡터 MV3에, 상기 (1), (2) 및 (3)을 적용하여, 부호화 대상 매크로 블록과 주변 블록이 같은 사이즈로 움직임 보상되어 있는 경우와 동일하게 하여, 부호화 대상 매크로 블록의 움직임 벡터 MV를 결정할 수 있다. 부호화 대상 매크로 블록 내의 각 움직임 보상 대상 블록에 대해서는, 이미 설명한 바와 같이, 후방 동일 위치에 있는 블록의「움직임이 작은지」여부에 따라, 움직임 벡터 (0, 0)를 사용하여 움직임 보상할지, 움직임 벡터 MV를 사용하여 움직임 보상할지를 선택한다.
상기와 같이 하여 움직임 보상 대상 블록의 움직임 벡터가 결정되면, 움직임 보상부(303)는, 결정된 움직임 벡터를 사용하여 화상 메모리(106) 내의 참조 화상 데이터 Ref로부터 예측 화상 데이터 Pred를 생성한다(S403).
이상에서는, 움직임 보상 대상 블록의 후방 동일 위치에 있는 블록이, 움직임 보상 대상 블록과 동일한 블록 사이즈로 움직임 보상되어 있는 경우에 관해 설명했으나, 이하에서는 후방 동일 위치에 있는 블록이, 움직임 보상 대상 블록과는 다른 블록 사이즈로 움직임 보상되어 있는 경우에 관해 설명한다. 화상 부호화 장치(300)에 있어서, 움직임 보상부(303) 및 움직임 벡터 검출부(302)는, B픽처의 쌍예측 움직임 보상을 행할 때는, P픽처나 B픽처의 편방향 예측 움직임 보상 대상 블록이 될 수 있는 최소(4화소×4화소)의 블록보다도 큰, 일정 사이즈(예를 들면, 8화소×8화소)의 블록을 대상으로 하여 움직임 보상을 행한다. 이때문에, 쌍예측으로 움직임 보상되는 픽처의 후방의 참조 픽처가 편방향 예측으로 움직임 보상되어 있는 경우, 움직임 보상 대상 블록의 후방 동일 위치에 있는 블록이 움직임 보상 대상 블록보다 작은 블록 사이즈로 움직임 보상되어 있는 경우가 발생한다.
도 9는 부호화 또는 복호화 대상 매크로 블록과 그 후방 동일 위치 매크로 블록이 다른 블록 사이즈로 움직임 보상되어 있는 경우에, 움직임 보상 대상 블록과 그 후방 동일 위치에 있는 다수의 블록의 대응을 나타낸 도면이다. 동 도면의 좌측에는, 부호화 대상 B픽처 내의 부호화 대상 매크로 블록이 도시되어 있다. 동 도면의 우측에는, 부호화 대상 B픽처의 가장 가까운 후방의 픽처(P픽처 또는 B픽 처)에서의 부호화 대상 매크로 블록의 후방 동일 위치 매크로 블록이 도시되어 있다. 상기 매크로 블록의 사이즈는, 모두 예를 들면 16화소×16화소이다. 우측에 도시되는 후방 동일 위치 매크로 블록은 부호화 대상 픽처보다도 먼저 부호화되어 있고, 예를 들면 각각 4화소×4화소의 블록(도면중의 최소 구획)을 단위로 하여, 이미 움직임 보상이 행해지고 있는 것으로 한다.
도 10은, 부호화 또는 복호화 대상 매크로 블록과 후방 동일 위치 매크로 블록이 다른 블록 사이즈로 움직임 보상되어 있는 경우에, 움직임 보상 대상 블록의 후방 동일 위치에 있는 블록의 움직임에 따라, 다른 움직임 벡터로 움직임 보상 대상 블록을 움직임 보상하기 위한 처리 순서를 나타낸 흐름도이다. 움직임 정보 변환부(301)는, 먼저 움직임 보상 대상 블록의 후방 동일 위치에 있는 블록이 움직임 보상 대상 블록과 같은 블록 사이즈로 움직임 보상되어 있는지 여부를 판단하여, 같은 블록 사이즈로 움직임 보상되어 있지 않은 경우, 도 10의 흐름도에 나타낸 순서로 움직임 보상 대상 블록의 움직임 벡터를 산출하도록, 움직임 벡터 검출부(302)에 지시한다. 여기서는, 움직임 보상 대상 블록의 사이즈가 8화소×8화소이고, 후방 동일 위치에 있는 블록은 4화소×4화소로 움직임 보상되어 있기 때문에, 움직임 벡터 검출부(302)는 도 10에 나타낸 흐름도에 기초하여 움직임 보상 대상 블록의 움직임 벡터를 산출한다.
도 10의 흐름도에서는 단계 S501의 처리가, 도 8의 흐름도에 나타낸 단계 S401의 처리와 다르다. 도 9에 도시한 바와 같이, 본 발명의 움직임 보상 방법에서는, 1개의 부호화 대상 매크로 블록은 4개의 움직임 보상 대상 블록마다 움직임 보상이 행해진다. 그들을 예를 들면, 움직임 보상 대상 블록 a, 움직임 보상 대상 블록 b, 움직임 보상 대상 블록 c 및 움직임 보상 대상 블록 d로 한다. 이들 움직임 보상 대상 블록에 대해, 후방 동일 위치 매크로 블록 내에서는, 블록 a', 블록 b', 블록 c' 및 블록 d'가 각각 대응한다. 이들 블록 a', 블록 b', 블록 c'및 블록 d', 각각이 또한 4화소×4화소의 4개의 움직임 보상 블록으로 구성되어 있다. 움직임 벡터 검출부(302)는, 먼저 후방 동일 위치 매크로 블록 내에서, 부호화 대상 매크로 블록 내의 움직임 보상 대상 블록 a에 대응하는 블록 a'를 조사하여, 블록 a'를 구성하고 있는 4개의 움직임 보상 블록 중, 2개 이상의 움직임 보상 블록의「움직임이 작은지」여부를 조사한다(S501).
움직임 보상 블록의「움직임이 작은지」여부를 판정하는 기준은, 도 8에 나타낸 흐름도의 단계 S401에 있어서의 판정 기준과 동일하다. 2개 이상의 움직임 보상 블록의 「움직임이 작은」경우, 움직임 벡터 검출부(302)는, 부호화 대상 매크로 블록 내의 움직임 보상 대상 블록 a의 움직임 벡터를 (0,0)으로 하고(S502), 움직임 보상부(303)는, 결정된 움직임 벡터 (0,0)를 사용하여 움직임 보상한다(S503). 2개 이상의 움직임 보상 블록의「움직임이 작지」않은 경우, 즉, 「움직임이 작은」움직임 보상 블록의 수가 2개 미만인 경우, 움직임 벡터 검출부(302)는, 부호화 대상 매크로 블록의 주변 블록의 움직임 벡터로부터 부호화 대상 매크로 블록의 움직임 벡터 MV를 결정한다(S504). 주변 블록의 움직임 벡터로부터 부호화 대상 매크로 블록의 움직임 벡터 MV를 결정하는 처리는, 도 8의 단계 S404에서의 처리와 동일하다. 움직임 보상부(303)는, 이렇게 결정된 움직임 벡터 MV를 사용하여 움직임 보상 대상 블록 a의 움직임 보상 예측 화소치를 생성한다(S503).
움직임 보상부(303), 움직임 벡터 검출부(302) 및 움직임 정보 변환부(301)는, 상기 단계 S501∼단계 S504의 처리를, 나머지 움직임 보상 대상 블록 b, 움직임 보상 대상 블록 c, 움직임 보상 대상 블록 d에 대해 반복하여, 움직임 보상 대상 블록 a, 움직임 보상 대상 블록 b, 움직임 보상 대상 블록 c 및 움직임 보상 대상 블록 d의 모든 움직임 보상을 행하면, 해당 부호화 대상 매크로 블록의 움직임 보상을 완료한다.
한편, 화상 복호화 장치(400)에서는, 화상 부호화 장치(300)에 의해 부호화된 부호화 데이터 Bitstream을 복호화한다. 다이렉트 모드에 있어서, 화상 복호화 장치(400)에서는, 움직임 정보 변환부(401)가 화상 부호화 장치(300)의 움직임 정보 변환부(301)에 대응하는 처리를 행하고, 움직임 보상부(402)가 화상 부호화 장치(300)의 움직임 벡터 검출부(302) 및 움직임 보상부(303)에 대응하는 처리를 행함으로써, 화상 부호화 장치(300)와 동일하게 하여, 각 움직임 보상 대상 블록의 움직임 보상을 행할 수 있다.
가변길이 복호화부(201)에 의해 부호화 데이터 Bitstream으로부터 추출된 부호화 모드 Mod에, 복호화 대상 매크로 블록이 다이렉트 모드로 부호화되어 있는 것이 나타나 있는 경우, 움직임 정보 변환부(401)는, 움직임 보상 대상 블록의 후방 동일 위치에 있는 움직임 보상이 끝난 블록의 움직임 보상의 사이즈가 움직임 보상 대상 블록의 사이즈와 동일한지 여부를 판단하여, 동일한 경우, 도 8의 흐름도에 나타낸 순서로, 움직임 보상 대상 블록의 움직임 벡터를 산출하도록 움직임 보상 부(402)에 지시한다.
이 지시에 따라, 움직임 보상부(402)는, 먼저 도 6(b)에 나타낸 복호화 대상 픽처 B1의 후방의 P픽처(후방의 참조 픽처) P2 내에서, 움직임 보상 대상 블록과 같은 위치에 있는 움직임 보상이 끝난 블록의「움직임이 작은지」여부를 조사하여 (S401),「움직임이 작은」경우, 움직임 보상 대상 블록의 움직임 벡터를 (0,0)으로 한다(S402). 즉, 이 움직임 보상 대상 블록에 대해서는, 화면간 예측을 사용한 움직임 보상을 행하지 않는다. 한편, 후방의 P픽처 내에서 움직임 보상 대상 블록과 동일 위치에 있는 움직임 보상이 끝난 블록의「움직임이 작지」않은 경우, 움직임 보상부(402)는, 복호화 대상 매크로 블록의 주변 블록의 움직임 벡터로부터 산출되는 복호화 대상 매크로 블록의 움직임 벡터 MV를, 해당 움직임 보상 대상 블록의 움직임 벡터로 한다(S404). 복호화가 끝난 주변 블록의 움직임 벡터를 사용하여 복호화 대상 매크로 블록의 움직임 벡터를 산출하는 방법은, 화상 부호화 장치(300)의 경우에 설명한 방법과 동일하다.
단계 S402 또는 단계 S404에 있어서 움직임 보상 대상 블록의 움직임 벡터가 결정되면, 움직임 보상부(402)는, 화상 메모리(204) 내의 참조 화상 데이터 Ref 중, 결정된 움직임 벡터로 표시되는 위치의 블록을 독출하여, 예측 화상 데이터 Pred를 생성한다(S403). 이렇게 하여, 움직임 보상부(402)는, 움직임 보상 대상 블록과 그 후방 동일 위치에 있는 움직임 보상이 끝난 블록이 같은 블록 사이즈로 움직임 보상되어 있는 경우에도, 후방 동일 위치의 움직임 보상이 끝난 블록의 「움직임이 작은지」여부에 따라, 움직임 보상 대상 블록마다의 움직임 벡터를 결정 하여, 움직임 보상을 행할 수 있다.
또, 추출된 부호화 모드 Mod에, 복호화 대상 매크로 블록이 다이렉트 모드로 부호화되어 있는 것이 표시되어 있는 경우에, 움직임 보상 대상 블록과 그 후방 동일 위치에 있는 움직임 보상이 끝난 블록이 같은 블록 사이즈로 움직임 보상되어 있지 않은 경우, 움직임 정보 변환부(401)는, 도 10의 흐름도에 나타낸 순서로 움직임 보상 대상 블록의 움직임 벡터를 산출하도록 움직임 보상부(402)에 지시한다. 움직임 보상부(402)는, (복호화 대상 픽처 내) 복호화 대상 매크로 블록의(가장 가까운 후방의 P픽처 내) 후방 동일 위치 매크로 블록에 있어서, 8화소×8화소의 움직임 보상 대상 블록에 대응하는 8화소×8화소의 블록에 포함되는, 4개의 4화소×4화소의 움직임 보상이 끝난 블록의 움직임을 조사하여, 4개 중에서, 2개 이상의 움직임 보상이 끝난 블록의「움직임이 작은」경우에는, 움직임 보상 대상 블록의 움직임 벡터를 (0,0)으로 한다(S502). 그렇지 않은 경우에는, 복호화 대상 매크로 블록의 주변 블록의 움직임 벡터를 사용하여 산출된, 복호화 대상 매크로 블록의 움직임 벡터 MV를 움직임 보상 대상 블록의 움직임 벡터로 한다(S504). 단계 S502 또는 단계 S504에 있어서 움직임 보상 대상 블록의 움직임 벡터가 결정되면, 움직임 보상부(402)는, 화상 메모리(204) 내의 참조 화상 데이터 Ref 중, 결정된 움직임 벡터로 표시되는 위치의 블록을 독출하여, 예측 화상 데이터 Pred를 생성한다(S503). 이에 의해, 움직임 보상부(402)는, 움직임 보상 대상 블록과 그 후방 동일 위치에 있는 움직임 보상이 끝난 블록이 같은 블록 사이즈로 움직임 보상되어 있지 않은 경우에도, 후방 동일 위치의 움직임 보상이 끝난 블록의「움직임이 작은 지」여부를 판정할 수 있다. 따라서, 움직임 보상부(402)는, 이 판정 결과에 따라, 움직임 보상 대상 블록마다의 움직임 벡터를 결정하여, 움직임 보상 대상 블록의 움직임 보상을 행할 수 있다.
이상과 같이 본 발명의 움직임 보상 방법을 사용한 화상 부호화 장치(300) 및 화상 복호화 장치(400)에 의하면, B픽처의 움직임 보상 부호화에 있어서, 종래의 움직임 보상 대상 블록보다 큰 사이즈의 움직임 보상 대상 블록을 단위로 하여 움직임 보상을 행하므로, B픽처의 부호화 및 복호화에 있어서의 화상 메모리로의 액세스에 의한 부하를 저감할 수 있다.
또한, 상기 실시형태 1에서는, B픽처의 움직임 보상 대상 블록의 사이즈를 8화소×8화소, P픽처의 움직임 보상이 끝난 블록의 사이즈를 4화소×4화소로 하여 설명했으나, 본 발명은 이것에 한정되지 않고, 이것과는 다른 블록 사이즈로 정해도 된다. 또, 가장 가까운 후방 픽처에 있어서 움직임 보상 대상 블록에 대응하는 블록 중의 2개 이상의 움직임 보상이 끝난 블록의「움직임이 작은」경우, 움직임 보상 대상 블록의 움직임 벡터를 (0,0)으로 했으나, 반드시「2개 이상」일 필요는 없고, 「1개 이상」,「3개 이상」또는「전부」로 해도 된다. 또, B픽처와 P픽처의 움직임 보상 대상 블록 및 움직임 보상 대상 블록의 사이즈를 상기 이외로 정한 경우에는, 그들 블록 사이즈의 비에 따라 적당하게 정하면 된다. 이하의 실시형태에 있어서도 동일하다.
또한, 상기 실시형태 1에서, 도 8 또는 도 10에 나타낸 흐름도에서는, 주변 블록의 움직임 벡터에 기초하여 결정되는 움직임 벡터는, 1개의 부호화 또는 복호 화 대상 매크로 블록에 대해 1개이므로, 동일 부호화 또는 복호화 대상 매크로 볼록 내의 움직임 보상 대상 블록에 대해, 단계 S404 또는 단계 S504의 처리가 실행되는 경우에는, 매회 같은 계산 처리를 하는 결과가 되어 있다. 그러나, 본 발명은 이것에 한정되지 않고, 예를 들면 부호화 또는 복호화 대상 매크로 블록마다 미리 주변 블록의 움직임 벡터에 기초하여 움직임 벡터를 결정해 두고, 즉, 단계 S401 또는 단계 S501의 판단 전에 단계 S404 또는 단계 S504의 처리를 행해 두고, 단계 S404또는 단계 S504에서는, 단순히 「주변 블록의 움직임 벡터에 기초하여 미리 결정된 움직임 벡터의 값을, 해당 움직임 보상 대상 블록의 움직임 벡터로서 사용한다」고 해도 된다. 이렇게 하면, 움직임 보상 대상 블록의 후방 동일 위치에 있는 블록의「움직임이 작지」않은 경우에, 주변 블록의 움직임 벡터에 기초한 움직임 벡터의 계산 회수를, 보다 적게 하여, 움직임 벡터 검출부(302) 및 움직임 보상부(402)의 처리 부하를 저감할 수 있다고 하는 효과가 있다. 이하의 실시형태에 있어서도 동일하다.
또, 단계 S401 또는 단계 S501의 판단 전에 단계 S404 또는 단계 S504의 처리를 행해 두는 대신에, 단계 S404 또는 단계 S504의 처리가 있었던 경우에는, 산출된 부호화 또는 복호화 대상 매크로 블록의 움직임 벡터 MV를 메모리 등에 유지하도록 해도 된다. 움직임 벡터 MV를 유지해 두는 기간은, 동일 부호화 또는 복호화 대상 매크로 블록 내의 움직임 보상 대상 블록을 처리하고 있는 기간이다. 구체적으로는, 움직임 벡터 검출부(303) 또는 움직임 보상부(402)는, 부호화 또는 복호화 대상 매크로 블록에 있어서, 움직임 보상 대상 블록의 후방 동일 위치에 있는 블록의「움직임이 작지」않은 경우에 처음으로 부호화 또는 복호화 대상 매크로 블록의 움직임 벡터 MV를 산출하고, 같은 부호화 또는 복호화 대상 매크로 블록 내의 움직임 보상 대상 블록의 처리가 행해지고 있는 동안, 부호화 또는 복호화 대상 매크로 블록의 움직임 벡터 MV를 유지하고 있도록 해도 된다. 이렇게 하면, 움직임 벡터 검출부(302) 및 움직임 보상부(402)의 움직임 벡터 산출 회수를 더욱 저감할 수 있어, 움직임 벡터 검출부(302) 및 움직임 보상부(402)의 처리 부하를 더욱 저감할 수 있는 효과가 있다.
또, 상기 실시형태 1에 있어서, 도 8 또는 도 10의 흐름도의 단계 S404 또는 단계 S504에서는, 주변 블록의 움직임 벡터를 사용하여 부호화 또는 복호화 대상 매크로 블록의 움직임 벡터 MV를 결정한다고 했으나, 반드시 이 방법으로 부호화 또는 복호화 대상 매크로 블록의 움직임 벡터 MV를 결정할 필요는 없다. 예를 들면, 움직임 벡터가 미리 결정되어 있는 다른 픽처에 있어서, 부호화 또는 복호화 대상 매크로 블록과 동일 위치에 있는 블록의 움직임 벡터를 사용하여 부호화 또는 복호화 대상 매크로 블록의 움직임 벡터를 결정하도록 해도 된다. 이하의 실시형태에 있어서도 동일하다.
또한, 상기 실시형태에서는, 움직임 정보 변환부(301)는, 참조 픽처의 움직임 파라미터가 움직임 벡터 기억부(110)에 저장된 후, 소정의 블록 사이즈의 움직임 파라미터로 변환한다고 설명하고 있으나, 참조 픽처의 움직임 파라미터가 움직임 벡터 기억부(110)에 저장되기 전에 변환하도록 해도 된다. 이하의 실시형태에서도 동일하다. 예를 들면, 움직임 정보 변환부(301)는, 참조 픽처의 움직임 파라 미터가, 4화소×4화소의 블록을 움직임 보상의 단위로 하여 검출되어 있는 경우, 각각 16화소×16화소의 매크로 블록을 4분할한 8화소×8화소의 블록마다, 그 블록(8화소×8화소)에 포함되는 4개의 4화소×4화소의 블록에서 검출된 움직임 벡터의 값을, 전부 그 8화소×8화소의 블록 내에서 매크로 블록(16화소×16화소)의 4 모서리에 해당하는 4화소×4화소의 움직임 보상 대상 블록에서 검출된 움직임 벡터의 값으로 다시쓰기한다. 이에 의해, 매크로 블록을 4분할하여 얻어지는 8화소×8화소의 블록을 또 4분할하여 얻어지는 4화소×4화소의 블록은, 모두 8화소×8화소의 블록 내에서 매크로 블록의 모서리에 있는 블록(4화소×4화소)에 대해 검출된 동일한 움직임 벡터를 갖게 된다. 이렇게 변환된 움직임 파라미터를 움직임 벡터 기억부(110)에 저장해 둠으로써, 움직임 벡터 검출부(302)는, 후방 동일 위치에 있는 블록에 포함되는 어느 1개의 4화소×4화소의 블록의 움직임 벡터를 독출하면, 그것을 사용하여 용이하게 후방 동일 위치에 있는 블록의 움직임을 판정할 수 있다.
또, 움직임 정보 변환부(301)는, 예를 들면, 참조 픽처의 움직임 파라미터가, 4화소×4화소의 블록을 움직임 보상의 단위로 하여 검출되어 있는 경우, 움직임 벡터 기억부(110) 내에서, 16화소×16화소의 매크로 블록을 4분할한 8화소×8화소의 각 블록에 대응지어, 1개의 움직임 벡터만을 저장해 두도록 해도 된다. 이하의 실시형태에서도 동일하다. 이 움직임 벡터는, 8화소×8화소의 블록 내에서 매크로 블록의 모서리에 있는 블록(4화소×4화소)에 대해 검출된 움직임 벡터 등이다. 이에 의해, 움직임 벡터 검출부(302)는, 참조 픽처의 움직임 파라미터가, 4화 소×4화소의 블록을 움직임 보상의 단위로 하여 검출되어 있는 경우라도, 도 6(b) 및 도 8에 나타낸 처리와 같이 하여, 후방 동일 위치에 있는 블록의「움직임이 작은지」여부를 판정할 수 있다.
또한, 움직임 정보 변환부(301)는, 예를 들면, 참조 픽처의 움직임 파라미터가, 4화소×4화소의 블록을 움직임 보상의 단위로 하여 검출되어 있는 경우, 8화소 ×8화소의 블록 내에서 매크로 블록의 모서리에 있는 블록(4화소×4화소)에 대해 검출된 움직임 벡터로부터, 그 블록(4화소×4화소)의「움직임이 작은지」여부를 판정하여, 그 판정 결과를 나타내는 플래그를, 부호화 대상 매크로 블록 내의 8화소×8화소의 각 블록에 대응지어 움직임 벡터 기억부(110)에 저장해 두도록 해도 된다. 이하의 실시형태에서도 동일하다. 이에 의해, 움직임 벡터 검출부(302)는, B픽처의 움직임 보상시에, 후방 동일 위치에 있는 블록의「움직임이 작은지」여부를 판정할 필요가 없어져, B픽처의 움직임 보상에 있어서의 처리 부하를 저감할 수 있는 효과가 있다.
(실시형태 2)
다음에 설명하는 본 실시형태 2는, 부호화 또는 복호화 대상 매크로 블록과 후방 동일 위치 매크로 블록이 다른 블록 사이즈로 움직임 보상되어 있는 경우에, 움직임 보상 대상 블록의 움직임 벡터를 (0, 0)으로 할지, 주변 블록의 움직임 벡터로부터 결정할지를 선택할 때의 판정 방법이 실시형태 1과 다르다. 부호화 또는 복호화 대상 매크로 블록과 후방 동일 위치 매크로 블록이 같은 블록 사이즈로 움직임 보상되어 있는 경우에는, 실시형태 1의 도 6(a)부터 도 8에서 설명한 방법에 의해, 움직임 보상 대상 블록의 움직임 보상이 행해진다. 따라서, 구성면에서는, 본 실시형태 2의 화상 부호화 장치 및 화상 복호화 장치가, 실시형태 1에 나타낸 화상 부호화 장치(300) 및 화상 복호화 장치(400)과 다른 주된 부분은, 화상 부호화 장치의 움직임 정보 변환부 및 움직임 벡터 검출부와, 화상 복호화 장치의 움직임 정보 변환부 및 움직임 보상부이다. 따라서, 이하에서는, 중복되는 구성 요소의 설명을 생략한다.
도 11은, 본 실시형태 2에 있어서, 부호화 또는 복호화 대상 매크로 블록과 그 후방 동일 위치 매크로 블록이 다른 블록 사이즈로 움직임 보상되어 있는 경우의 움직임 보상 대상 블록과 그 후방 동일 위치에 있는 다수의 블록의 대응을 나타낸 도면이다. 동 도면의 좌측에는, 도 9와 동일하게, 부호화 또는 복호화 대상 B픽처 내의 부호화 또는 복호화 대상 매크로 블록이 도시되어 있다. 동 도면의 우측에는, 도 9와 동일하게, 부호화 또는 복호화 대상 매크로 블록의 후방 동일 위치 매크로 블록이 도시되어 있다. 우측에 도시되는 후방 동일 위치 매크로 블록은 P픽처 또는 B픽처이고, 예를 들면 각각 4화소×4화소의 블록(도면중의 최소구획)을 단위로 하여, 이미 움직임 벡터의 검출 및 움직임 보상이 행해지고 있다. 좌측에 도시된 부호화 또는 복호화 대상 매크로 블록에서는, 도 9와 동일하게, 8화소×8화소의 블록(도면중의 최소 구획)을 단위로 하여 움직임 벡터의 결정 및 움직임 보상이 행해진다.
도 11에 도시하는 바와 같이, 1개의 부호화 또는 복호화 대상 매크로 블록은 4개의 움직임 보상 대상 블록으로 구성된다. 그들을 예를 들면, 움직임 보상 대상 블록 a, 움직임 보상 대상 블록 b, 움직임 보상 대상 블록 c 및 움직임 보상 대상 블록 d로 하면, 그 후방 동일 위치 매크로 블록 내에서는, 각각 4화소×4화소의 4개의 움직임 보상이 끝난 블록으로 구성되는 4개의 8×8화소의 블록이, 각각의 움직임 보상 대상 블록에 대응한다.
도 12는 실시형태 2에 있어서, 부호화 또는 복호화 대상 매크로 블록과 후방동일 위치 매크로 블록이 다른 블록 사이즈로 움직임 보상되어 있는 경우에, 움직임 보상 대상 블록의 후방 동일 위치에 있는 블록의 움직임에 따라, 다른 움직임 벡터로 움직임 보상 대상 블록을 움직임 보상하기 위한 처리 순서를 나타낸 흐름도이다. 이미 설명한 바와 같이, 본 실시형태 2의 움직임 보상 방법에서는, 움직임 보상 대상 블록의 움직임 벡터를 선택할 때의 판정 방법이 다를 뿐이므로, 흐름도에서는, 도 12의 단계 S701의 처리와, 도 10의 단계 S501의 처리가 다를 뿐이다.
먼저 움직임 정보 변환부는, 움직임 보상 대상 블록의 후방 동일 위치에 있는 블록의 움직임 보상의 사이즈가 움직임 보상 대상 블록의 사이즈와 동일한지 여부를 판단하여, 동일한 경우, 도 8의 흐름도에 나타낸 순서로, 움직임 보상 대상 블록의 움직임 벡터를 산출하도록 움직임 벡터 검출부 또는 움직임 보상부에 지시한다. 반대로, 같은 블록 사이즈로 움직임 보상되어 있지 않은 경우, 도 12의 흐름도에 나타낸 순서로 움직임 보상 대상 블록의 움직임 벡터를 산출하도록, 움직임 벡터 검출부 또는 움직임 보상부에 지시한다.
움직임 벡터 검출부 또는 움직임 보상부는, 부호화 또는 복호화 대상 매크로 블록 내의 움직임 보상 대상 블록 a에 대해, 후방 동일 위치 매크로 블록 내의 대 응하는 블록을 구성하고 있는 4개의 움직임 보상이 끝난 블록 중, 후방 동일 위치 매크로 블록의 모서리에 위치하는 움직임 보상이 끝난 블록 a'의 「움직임이 작은지」여부를 조사한다(S701).
움직임 보상이 끝난 블록 a'의 「움직임이 작은지」여부를 판정하는 기준은, 도 8에 나타낸 단계 S401에 있어서의 판정 기준과 동일하다. 움직임 보상이 끝난 블록 a'의 「움직임이 작은」경우, 움직임 벡터 검출부 또는 움직임 보상부는, 부호화 또는 복호화 대상 매크로 블록 내의 움직임 보상 대상 블록 a의 움직임 벡터를 (0,0)으로 한다(S702). 움직임 보상부는, 결정된 움직임 벡터 (0,0)를 사용하여 움직임 보상 대상 블록 a를 움직임 보상한다(S703).
움직임 보상 대상 블록 a'의 「움직임이 작지」않은 경우, 움직임 벡터 검출부 또는 움직임 보상부는, 부호화 또는 복호화 대상 매크로 블록의 주변 블록의 움직임 벡터로부터 해당 부호화 또는 복호화 대상 매크로 블록의 움직임 벡터 MV를 결정한다(S704). 주변 블록의 움직임 벡터로부터 부호화 또는 복호화 대상 매크로 블록의 움직임 벡터 MV를 결정하는 처리는, 도 8의 단계 S404에 있어서의 처리와 동일하다. 움직임 보상부는, 이렇게 결정된 부호화 또는 복호화 대상 매크로 블록의 움직임 벡터 MV를 사용하여 움직임 보상 대상 블록 a의 움직임 보상 예측 화소치를 생성한다(S703). 이상의 처리에 의해, 1개의 움직임 보상 대상 블록 a의 움직임 보상이 완료한다.
실시형태 2의 화상 부호화 장치에 있어서, 움직임 벡터 검출부, 움직임 보상부 및 움직임 정보 변환부와, 화상 복호화 장치에 있어서 움직임 보상부 및 움직임 정보 변환부는, 계속해서, 상기 단계 S701∼단계 S704의 처리를, 나머지의 움직임 보상 대상 블록 b, 움직임 보상 대상 블록 c, 및 움직임 보상 대상 블록 d에 대해 반복함으로써, 1개의 부호화 또는 복호화 대상 매크로 블록의 움직임 보상을 완료한다.
즉, 움직임 보상 대상 블록 b에 대해서는, 움직임 보상 대상 블록 b의 후방 동일 위치에 있는 블록에 있어서, 부호화 또는 복호화 대상 매크로 블록의 후방 동일 위치 매크로 블록의 모서리에 위치하는 움직임 보상이 끝난 블록 b'의「움직임이 작은지」여부를 조사하여, 움직임 보상이 끝난 블록 b'의「움직임이 작은」경우에는 움직임 벡터 (0, 0)를 선택한다. 움직임 보상이 끝난 블록 b'의 「움직임이 작지」않은 경우에는, 주변 블록의 움직임 벡터를 사용하여 산출되는 부호화 또는 복호화 대상 매크로 블록의 움직임 벡터 MV를 선택한다. 움직임 보상부는, 선택된 움직임 벡터를 사용하여, 움직임 보상 대상 블록 b의 움직임 보상을 행한다.
또, 움직임 보상 대상 블록 c 및 움직임 보상 대상 블록 d에 대해서도 동일하게, 움직임 보상이 끝난 블록 c' 및 움직임 보상이 끝난 블록 d'의 움직임에 따라 움직임 벡터를 선택하여, 선택된 움직임 벡터로 움직임 보상 대상 블록 c 및 움직임 보상 대상 블록 d를 움직임 보상한다. 이렇게 하여, 부호화 또는 복호화 대상 매크로 블록 내의 모든 움직임 보상 대상 블록의 움직임 보상을 행하면, 해당 부호화 또는 복호화 대상 매크로 블록의 움직임 보상을 완료한다.
이상과 같이 본 실시형태 2의 움직임 보상 방법에 의하면, 후방 동일 위치 매크로 블록의 모서리에 위치하는 1개의 움직임 보상이 끝난 블록의 움직임을 조사 하는 것만으로, 움직임 보상 대상 블록의 움직임 보상에 사용하는 움직임 벡터를 선택할 수 있기 때문에, 실시형태 1의 움직임 보상 방법보다도 움직임 벡터 검출부 또는 움직임 보상부의 처리 부하를 저감할 수 있다고 하는 효과가 있다.
(실시형태 3)
또한, 상기 각 실시형태에서 나타낸 화상 부호화 방법 및 화상 복호화 방법을 실현하기 위한 프로그램을, 플렉시블 디스크 등의 기억 매체에 기록하도록 함으로써, 상기 각 실시형태에서 나타낸 처리를, 독립된 컴퓨터 시스템에서 간단히 실시하는 것이 가능해진다.
도 13은 상기 실시형태 1부터 실시형태 2의 화상 부호화 방법 및 화상 복호화 방법을 컴퓨터 시스템에 의해 실현하기 위한 프로그램을 저장하기 위한 기록 매체에 대한 설명도이다.
도 13(b)는 플렉시블 디스크의 정면에서 본 외관, 단면 구조, 및 플렉시블 디스크를 도시하고, 도 13(a)는 기록 매체 본체인 플렉시블 디스크의 물리 포맷의 예를 나타내고 있다. 플렉시블 디스크(FD)는 케이스(F) 내에 내장되고, 이 디스크의 표면에는, 동심원상으로 외주로부터는 내주를 향해 다수의 트랙(Tr)이 형성되고, 각 트랙은 각도 방향으로 16의 섹터(Se)로 분할되어 있다. 따라서, 상기 프로그램을 저장한 플렉시블 디스크에서는, 상기 플렉시블 디스크(FD) 상에 할당된 영역에, 상기 프로그램으로서의 화상 부호화 방법 및 화상 복호화 방법이 기록되어 있다.
또, 도 13(c)는, 플렉시블 디스크(FD)에 상기 프로그램의 기록 재생을 행하 기 위한 구성을 도시한다. 상기 프로그램을 플렉시블 디스크(FD)에 기록하는 경우는, 컴퓨터 시스템(Cs)으로부터 상기 프로그램으로서의 화상 부호화 방법 및 화상 복호화 방법을 플렉시블 디스크 드라이브를 통해 기입한다. 또, 플렉시블 디스크 내의 프로그램에 의해 상기 화상 부호화 방법 및 화상 복호화 방법을 컴퓨터 시스템중에 구축하는 경우는, 플렉시블 디스크 드라이브에 의해 프로그램을 플렉시블 디스크로부터 읽어 내어, 컴퓨터 시스템에 전송한다.
또한, 상기 설명에서는, 기록 매체로서 플렉시블 디스크를 사용하여 설명했으나, 광디스크를 사용해도 동일하게 행할 수 있다. 또, 기록 매체는 이것에 한정되지 않고, CD-ROM, 메모리 카드, ROM 카세트 등, 프로그램을 기록할 수 있는 것이면 동일하게 실시할 수 있다.
(실시형태 4)
또한 여기서, 상기 실시형태에서 나타낸 화상 부호화 방법이나 화상 복호화 방법의 응용예와 그것을 사용한 시스템을 설명한다.
도 14는, 컨텐츠 배송 서비스를 실현하는 컨텐츠 공급 시스템(ex100)의 전체구성을 도시한 블록도이다. 통신 서비스의 제공 영역을 원하는 크기로 분할하고, 각 셀 내에 각각 고정 무선국인 기지국(ex107∼ex110)이 설치되어 있다.
이 컨텐츠 공급 시스템(ex100)은, 예를 들면 인터넷(ex101)에 인터넷 서비스 프로바이더(ex102) 및 전화망(ex104), 및 기지국(ex107∼ex110)을 통해, 컴퓨터 (ex111), PDA(personal digital assistant)(ex112), 카메라(ex113), 휴대전화(ex114), 카메라 부착 휴대전화(ex115) 등의 각 기기가 접속된다.
그러나, 컨텐츠 공급 시스템(ex100)은 도 14와 같은 조합에 한정되지 않고, 어느 하나를 조합하여 접속하도록 해도 된다. 또, 고정 무선국인 기지국(ex107∼ex110)을 통하지 않고, 각 기기가 전화망(ex104)에 직접 접속되어도 된다.
카메라(ex113)는 디지털 비디오 카메라 등의 동화상 촬영이 가능한 기기이다. 또, 휴대전화는, PDC(Personal Digital Communications) 방식, CDMA(Code Division Multiple Access) 방식, W-CDMA(Wideband-Code Division Multiple Access) 방식, 또는 GSM(Global System for Mobile Communications) 방식의 휴대전화기, 또는 PHS(Personal Handyphone System) 등이고, 어느 것이어도 상관없다.
또, 스트리밍 서버(ex103)는, 카메라(ex113)로부터 기지국(ex109), 전화망(ex104)을 통해 접속되어 있고, 카메라(ex113)를 사용하여 사용자가 송신하는 부호화 처리된 데이터에 기초한 라이브 배송 등이 가능하게 된다. 촬영한 데이터의 부호화 처리는 카메라(ex113)로 행해도 되고, 데이터의 송신 처리를 하는 서버 등으로 행해도 된다. 또, 카메라(ex116)로 촬영한 동화상 데이터는 컴퓨터(ex111)를 통해 스트리밍 서버(ex103)에 송신되어도 된다. 카메라(ex116)는 디지털 카메라 등의 정지화상, 동화상이 촬영 가능한 기기이다. 이 경우, 동화상 데이터의 부호화는 카메라 (ex116)로 행하거나 컴퓨터(ex111)로 행하거나 어느 쪽이어도 된다. 또, 부호화 처리는 컴퓨터(ex111)나 카메라(ex116)가 갖는 LSI(ex117)에서 처리하게 된다. 또한, 화상 부호화·복호화용의 소프트웨어를 컴퓨터(ex111) 등으로 읽기 가능한 기록 매체인 어떠한 축적 미디어(CD-ROM, 플렉시블 디스크, 하드 디스크 등)에 설치해도 된다. 또한, 카메라 부착 휴대전화(ex115)로 동화상 데이터를 송 신해도 된다. 이 때의 동화상 데이터는 휴대전화(ex115)가 갖는 LSI에서 부호화 처리된 데이터이다.
이 컨텐츠 공급 시스템(ex100)에서는, 사용자가 카메라(ex113), 카메라(ex116) 등으로 촬영하고 있는 컨텐츠(예를 들면, 음악 라이브를 촬영한 영상 등)를 상기 실시형태와 동일하게 부호화 처리하여 스트리밍 서버(ex103)에 송신하는 한편, 스트리밍 서버(ex103)는 요구가 있었던 클라이언트에 대해 상기 컨텐츠 데이터를 스트림 배송한다. 클라이언트로는, 상기 부호화 처리된 데이터를 복호화하는 것이 가능한, 컴퓨터(ex111), PDA(ex112), 카메라(ex113), 휴대전화(ex114) 등이 있다. 이렇게 함으로써 컨텐츠 공급 시스템(ex100)은, 부호화된 데이터를 클라이언트에서 수신하여 재생할 수 있고, 또한 클라이언트에서 실시간으로 수신하여 복호화하여 재생함으로써, 개인 방송도 실현 가능하게 되는 시스템이다.
이 시스템을 구성하는 각 기기의 부호화, 복호화에는 상기 각 실시형태에서 나타낸 화상 부호화 장치 또는 화상 복호화 장치를 사용하도록 하면 된다.
그 일례로서 휴대전화에 대해 설명한다.
도 15는, 상기 실시형태에서 설명한 화상 부호화 방법과 화상 복호화 방법을 사용한 휴대전화(ex115)를 도시하는 도면이다. 휴대전화(ex115)는, 기지국(ex110)과의 사이에서 전파를 송수신하기 위한 안테나(ex201), CCD 카메라 등의 영상, 정지화상을 찍는 것이 가능한 카메라부(ex203), 카메라부(ex203)로 촬영한 영상, 안테나(ex201)에서 수신한 영상 등이 복호화된 데이터를 표시하는 액정 디스플레이 등의 표시부(ex202), 조작 키(ex204)군으로 구성되는 본체부, 음성 출력을 하기 위 한 스피커 등의 음성 출력부(ex208), 음성 입력을 하기 위한 마이크 등의 음성 입력부(ex205), 촬영한 동화상 또는 정지화상의 데이터, 수신한 메일의 데이터, 동화상의 데이터 또는 정지화상의 데이터 등, 부호화된 데이터 또는 복호화된 데이터를 저장하기 위한 기록 미디어(ex207), 휴대전화(ex115)에 기록 미디어(ex207)를 장착 가능하게 하기 위한 슬롯부(ex206)를 갖고 있다. 기록 미디어(ex207)는 SD 카드 등의 플라스틱 케이스 내에 전기적으로 다시쓰기나 소거가 가능한 불휘발성 메모리인 EEPROM(Electrically Erasable and Programmable Read Only Memory)의 일종인 플래쉬 메모리 소자를 저장한 것이다.
또한, 휴대전화(ex115)에 대해 도 16을 사용하여 설명한다. 휴대전화(ex115)는 표시부(ex202) 및 조작 키(ex204)를 구비한 본체부의 각 부를 통괄적으로 제어하도록 이루어진 주제어부(ex311)에 대해, 전원 회로부(ex310), 조작 입력 제어부(ex304), 화상 부호화부(ex312), 카메라 인터페이스부(ex303), LCD(Liquid Crystal Display) 제어부(ex302), 화상 복호화부(ex309), 다중 분리부(ex308), 기록 재생부(ex307), 변복조 회로부(ex306) 및 음성 처리부(ex305)가 동기 버스(ex313)를 통해 서로 접속되어 있다.
전원 회로부(ex310)는, 사용자의 조작에 의해 엔드 및 전원 키가 ON 상태가 되면, 배터리 팩으로부터 각 부에 대해 전력을 공급함으로써 카메라 부착 디지털휴대전화(ex115)를 동작 가능한 상태로 기동한다.
휴대전화(ex115)는, CPU, ROM 및 RAM 등으로 이루어지는 주제어부(ex311)의 제어에 기초하여, 음성 통화 모드시에 음성 입력부(ex205)에서 집음한 음성 신호를 음성 처리부(ex305)에 의해 디지털 음성 데이터로 변환하고, 이것을 변복조 회로부(ex306)에서 스펙트럼 확산 처리하여, 송수신 회로부(ex301)에서 디지털 아날로그 변환 처리 및 주파수 변환 처리를 실시한 뒤에 안테나(ex201)를 통해 송신한다. 또 휴대전화기(ex115)는, 음성 통화 모드시에 안테나(ex201)로 수신한 수신 데이터를 증폭하여 주파수 변환 처리 및 아날로그 디지털 변환 처리를 실시하여, 변복조 회로부(ex306)에서 스펙트럼 역확산 처리하고, 음성 처리부(ex305)에 의해 아날로그 음성 데이터로 변환한 뒤, 이것을 음성 출력부(ex208)를 통해 출력한다.
또한, 데이터 통신 모드시에 이메일을 송신하는 경우, 본체부의 조작 키(ex204)의 조작에 의해 입력된 이메일의 텍스트 데이터는 조작 입력 제어부(ex304)를 통해 주제어부(ex311)에 송출된다. 주제어부(ex311)는, 텍스트 데이터를 변복조 회로부(ex306)에서 스펙트럼 확산 처리하여, 송수신 회로부(ex301)에서 디지털 아날로그 변환 처리 및 주파수 변환 처리를 실시한 뒤에 안테나(ex201)를 통해 기지국(ex110)으로 송신한다.
데이터 통신 모드시에 화상 데이터를 송신하는 경우, 카메라부(ex203)로 촬상된 화상 데이터를 카메라 인터페이스부(ex303)를 통해 화상 부호화부(ex312)에 공급한다. 또, 화상 데이터를 송신하지 않는 경우에는, 카메라부(ex203)로 촬상한 화상 데이터를 카메라 인터페이스부(ex303) 및 LCD 제어부(ex302)를 통해 표시부(ex202)에 직접 표시하는 것도 가능하다.
화상 부호화부(ex312)는, 본원 발명에서 설명한 화상 부호화 장치를 구비한 구성이고, 카메라부(ex203)로부터 공급된 화상 데이터를 상기 실시형태에서 나타낸 화상 부호화 장치에 사용한 부호화 방법에 의해 압축 부호화함으로써 부호화 화상 데이터로 변환하고, 이것을 다중 분리부(ex308)에 송출한다. 또, 이 때 동시에 휴대전화기(ex115)는, 카메라부(ex203)로 촬상중에 음성 입력부(ex205)에서 집음한 음성을 음성 처리부(ex305)를 통해 디지털의 음성 데이터로서 다중 분리부(ex308)에 송출한다.
다중 분리부(ex308)는, 화상 부호화부(ex312)로부터 공급된 부호화 화상 데이터와 음성 처리부(ex305)로부터 공급된 음성 데이터를 소정의 방식으로 다중화하여, 그 결과 얻어지는 다중화 데이터를 변복조 회로부(ex306)에서 스펙트럼 확산 처리하여, 송수신 회로부(ex301)에서 디지털 아날로그 변환 처리 및 주파수 변환 처리를 실시한 뒤에 안테나(ex201)를 통해 송신한다.
데이터 통신 모드시에 홈페이지 등에 링크된 동화상 파일의 데이터를 수신하는 경우, 안테나(ex201)를 통해 기지국(ex110)으로부터 수신한 수신 데이터를 변복조 회로부(ex306)에서 스펙트럼 역확산 처리하여, 그 결과 얻어지는 다중화 데이터를 다중 분리부(ex308)에 송출한다.
또, 안테나(ex201)를 통해 수신된 다중화 데이터를 복호화하기 위해서는, 다중 분리부(ex308)는, 다중화 데이터를 분리함으로써 화상 데이터의 부호화 스트림과 음성 데이터의 부호화 스트림으로 나누어, 동기 버스(ex313)를 통해 해당 부호화 화상 데이터를 화상 복호화부(ex309)에 공급하는 동시에 해당 음성 데이터를 음성 처리부(ex305)에 공급한다.
다음으로, 화상 복호화부(ex309)는, 본원 발명에서 설명한 화상 복호화 장치 를 구비한 구성이고, 화상 데이터의 부호화 스트림을 상기 실시형태에서 나타낸 부호화 방법에 대응한 복호화 방법으로 복호함으로써 재생 동화상 데이터를 생성하여, 이것을 LCD 제어부(ex302)를 통해 표시부(ex202)에 공급하고, 이에 의해 예를 들면 홈페이지에 링크된 동화상 파일에 포함되는 동화상 데이터가 표시된다. 이 때 동시에 음성 처리부(ex305)는, 음성 데이터를 아날로그 음성 데이터로 변환한 뒤, 이것을 음성 출력부(ex208)에 공급하고, 이에 의해 예를 들면 홈페이지에 링크된 동화상 파일에 포함되는 음성 데이터가 재생된다.
또한, 상기 시스템의 예에 한정되지 않고, 최근은 위성, 지상파에 의한 디지털 방송이 화제가 되고 있고, 도 17에 도시하는 바와 같이 디지털 방송용 시스템에도 상기 실시형태의 적어도 화상 부호화 장치 또는 화상 복호화 장치 중 어느 하나를 장착할 수 있다. 구체적으로는, 방송국(ex409)에서는 영상 정보의 비트 스트림이 전파를 통해 통신 또는 방송 위성(ex410)에 전송된다. 이것을 받은 방송 위성(ex410)은, 방송용의 전파를 발신하여, 이 전파를 위성 방송 수신 설비를 갖는 가정의 안테나(ex406)로 수신하여, TV(수신기)(ex401) 또는 셋탑 박스(STB)(ex407) 등의 장치에 의해 비트 스트림을 복호화하여 이것을 재생한다. 또, 기록 매체인 CD나 DVD 등의 축적 미디어(ex402)에 기록한 비트 스트림을 읽어 내어, 복호화하는 재생 장치 (ex403)에도 상기 실시형태에서 나타낸 화상 복호화 장치를 실장하는 것이 가능하다. 이 경우, 재생된 영상 신호는 모니터(ex404)에 표시된다. 또, CATV용의 케이블(ex405) 또는 위성/지상파 방송의 안테나(ex406)에 접속된 셋탑 박스(ex407) 내에 화상 복호화 장치를 실장하여, 이것을 TV의 모니터(ex408)로 재생 하는 구성도 생각할 수 있다. 이 때 셋탑 박스가 아니라, TV 내에 화상 복호화 장치를 장착해도 된다. 또, 안테나(ex411)를 갖는 차(ex412)에서 위성(ex410)으로부터 또는 기지국 (ex107) 등으로부터 신호를 수신하여, 차(ex412)가 갖는 카 네비게이션(ex413) 등의 표시 장치에 동화상을 재생하는 것도 가능하다.
또한, 화상 신호를 상기 실시형태에서 나타낸 화상 부호화 장치로 부호화하여, 기록 매체에 기록할 수도 있다. 구체예로서는, DVD 디스크(ex421)에 화상 신호를 기록하는 DVD 레코더나, 하드 디스크에 기록하는 디스크 레코더 등의 레코더 (ex420)가 있다. 또한 SD 카드(ex422)에 기록할 수도 있다. 레코더(ex420)가 상기 실시형태에서 나타낸 화상 복호화 장치를 구비하고 있으면, DVD 디스크(ex421)나 SD 카드(ex422)에 기록한 화상 신호를 재생하여, 모니터(ex408)로 표시할 수 있다.
또한, 카 네비게이션(ex413)의 구성은 예를 들면 도 16에 도시한 구성 중, 카메라부(ex203)와 카메라 인터페이스부(ex303), 화상 부호화부(ex312)를 제외한 구성을 생각할 수 있고, 동일한 것을 컴퓨터(ex111)나 TV(수신기)(ex401) 등에서도 생각할 수 있다.
또, 상기 휴대전화(ex114) 등의 단말은, 부호화기·복호화기를 모두 갖는 송수신형의 단말 외에, 부호화기만의 송신 단말, 복호화기만의 수신 단말의 3가지의 실장 형식을 생각할 수 있다.
이렇게, 상기 실시형태에서 나타낸 화상 부호화 방법 또는 화상 복호화 방법을 상술한 모든 기기·시스템에 사용하는 것은 가능하고, 그렇게 함으로써 상기 실 시형태에서 설명한 효과를 얻을 수 있다.
또, 본 발명은 이러한 상기실시형태에 한정되는 것이 아니라, 본 발명의 범위를 일탈하지 않고 여러가지의 변형 또는 수정이 가능하다.
[산업상 이용 가능성]
본 발명에 따른 화상 부호화 장치는, 통신 기능을 구비하는 PC, PDA, 디지털 방송의 방송국 및 휴대전화기 등에 구비되는 화상 부호화 장치로서 유용하다.
또, 본 발명에 따른 화상 복호화 장치는, 통신 기능을 구비하는 PC, PDA, 디지털 방송을 수신하는 STB 및 휴대전화기 등에 구비되는 화상 복호화 장치로서 유용하다.