이하, 본 발명의 실시예에 대하여 설명한다.
(실시예 1)
도 1은 본 발명의 실시예 1에 따른 동화상 부호화 장치를 설명하기 위한 블럭도이다.
본 실시예 1의 동화상 부호화 장치(10)는 동화상을 구성하는 복수의 픽쳐를 각각 일정한 데이터 처리 단위(블럭)로 분할하여, 각 픽쳐의 화상 데이터를 블럭마다 부호화하는 것이다.
즉, 이 동화상 부호화 장치(10)는, 입력된 픽쳐의 화상 데이터(입력 데이터) Id를 기억함과 동시에, 기억한 데이터 Id를 블럭마다 출력하는 입력 픽쳐용 메모리(이하, 프레임 메모리라고도 함)(101)와, 상기 프레임 메모리(101)로부터 출력 된, 부호화 대상으로 되는 대상 블럭의 화상 데이터 Md와, 해당 대상 블럭의 예측 데이터 Pd와의 차분 데이터를 대상 블럭의 예측 오차 데이터 PEd로서 산출하는 차분 연산부(102)와, 상기 대상 블럭의 화상 데이터 Md 혹은 예측 오차 데이터 PEd를 압축 부호화하는 예측 오차 부호화부(103)를 갖고 있다. 상기 프레임 메모리(101)에서는, 표시순으로 입력된 픽쳐의 화상 데이터를 픽쳐의 부호화순으로 재배열하는 처리가, 대상 픽쳐와, 그 예측 부호화 시에 참조되는 픽쳐(참조 픽쳐)와의 관계에 근거하여 행하여진다.
동화상 부호화 장치(10)는, 상기 예측 오차 부호화부(103)의 출력 데이터(부호화 데이터) Ed를 신장 복호화하여 대상 블럭의 복호 차분 데이터 PDd를 출력하는 예측 오차 복호화부(105)와, 해당 대상 블럭의 복호 차분 데이터 PDd와 상기 대상 블럭의 예측 데이터 Pd를 가산하여 대상 블럭의 복호화 데이터 Dd를 출력하는 가산 연산부(106)와, 해당 복호화 데이터 Dd를 메모리 제어 신호 Cd2에 근거하여 기록하고, 기억한 복호화 데이터 Dd를 대상 블럭의 부호화 시에 참조되는 픽쳐의 후보(후보 픽쳐)의 데이터 Rd로서 출력하는 참조 픽쳐용 메모리(이하, 프레임 메모리라고도 함)(117)를 갖고 있다.
동화상 부호화 장치(10)는, 상기 프레임 메모리(101)의 출력 데이터(대상 블럭의 화상 데이터) Md 및 프레임 메모리(117)의 출력 데이터(후보 픽쳐의 데이터) Rd에 근거하여, 대상 블럭의 움직임 벡터 MV를 검출하는 움직임 벡터 검출부(108)와, 해당 대상 블럭의 움직임 벡터 MV 및 상기 각 프레임 메모리(101, 117)의 출력 데이터 Md, Rd에 근거하여, 대상 블럭에 대응하는 부호화 모드를 결정하고 또한 스 위치 제어 신호 Cs2를 출력하는 모드 선택부(109)를 갖고 있다. 상기 움직임 벡터 검출부(108)에서는, 대상 블럭의 예측 부호화 시에 참조 가능한 복수의 후보 픽쳐를 참조하여, 상기 움직임 벡터를 검출하는 움직임 검출이 행하여진다. 또한, 상기 모드 선택부(109)에서는, 상기 대상 블럭에 대하여, 복수의 부호화 모드 중에서 부호화 효율이 최적으로 되도록 하나의 부호화 모드가 선택된다. 이 때에, 픽쳐간 예측 부호화가 선택된 경우에는, 참조 가능한 복수의 후보 픽쳐 중에서 최적의 픽쳐가 선택된다.
본 실시예 1의 동화상 부호화 장치(10)에서는, P 픽쳐(즉, 하나의 블럭의 예측 부호화 시에, 부호화된 픽쳐가 하나 참조되는 픽쳐)에 대해서는, 픽쳐내 부호화 모드, 움직임 벡터를 이용하는 픽쳐간 예측 부호화 모드, 및 움직임 벡터를 이용하지 않는(즉 움직임 벡터를 0으로 하는) 픽쳐간 예측 부호화 모드 중 하나가 선택된다. 또한, B 픽쳐(즉, 하나의 블럭의 예측 부호화 시에, 부호화된 픽쳐가 2개 참조되는 픽쳐)에 대해서는, 픽쳐내 부호화 모드, 전방 움직임 벡터를 이용한 픽쳐간 예측 부호화 모드, 후방 움직임 벡터를 이용한 픽쳐간 예측 부호화 모드, 쌍방향 움직임 벡터를 이용한 픽쳐간 예측 부호화 모드, 및 다이렉트 모드 중 하나가 선택된다. 또한, 본 실시예 1에서는, 상기 B 픽쳐의 블럭을 다이렉트 모드로 부호화할 때에는, 표시 시간축에서 대상 픽쳐의 직전의 부호화된 픽쳐가 참조된다.
동화상 부호화 장치(10)는, 상기 프레임 메모리(101)와 차분 연산부(102) 사이에 마련된 선택 스위치(111)와, 해당 차분 연산부(102)와 예측 오차 부호화부(103) 사이에 마련된 선택 스위치(112)와, 프레임 메모리(101)와 상기 모드 선택 부(109) 및 움직임 벡터 검출부(108) 사이에 마련된 온/오프 스위치(113)와, 상기 모드 선택부(109)와 가산 연산부(106) 사이에 마련된 온/오프 스위치(114)와, 상기 예측 오차 부호화부(103)와 예측 오차 복호화부(105) 사이에 마련된 온/오프 스위치(115)를 갖고 있다.
동화상 부호화 장치(10)는 상기 스위치(113∼115)의 온/오프 동작을 스위치 제어 신호 Cs1에 의해 제어함과 동시에, 부호 생성 제어 신호 Cd1 및 메모리 제어 신호 Cd2를 출력하는 부호화 제어부(110)와, 예측 오차 부호화부(103)의 출력 데이터(부호화 데이터) Ed를 부호 생성 제어 신호 Cd1에 근거하여 가변 길이 부호화해서 대상 블럭에 대한 비트열 Bs를 출력하는 부호열 생성부(104)를 갖고 있다. 해당 부호열 생성부(104)에는 움직임 벡터 검출부(108)에 의해 검출된 움직임 벡터 MV, 모드 선택부(109)에 의해 결정된 부호화 모드 Ms를 나타내는 정보가 입력되어 있으며, 해당 대상 블럭에 대한 부호열 Bs에는 대상 블럭에 대한 움직임 벡터 MV 및 부호화 모드 Ms를 나타내는 정보가 포함되어 있다.
여기서, 상기 선택 스위치(111)는 하나의 입력 단자 Ta와 2개의 출력 단자 Tb1 및 Tb2b를 갖고, 상기 스위치 제어 신호 Cs2에 따라서 해당 입력 단자 Ta가 상기 2개의 출력 단자 Tb1, Tb2의 한쪽에 접속되는 것이다. 상기 선택 스위치(112)는 2개의 입력 단자 Tc1, Tc2와, 하나의 출력 단자 Td를 갖고, 상기 스위치 제어 신호 Cs2에 따라서 해당 출력 단자 Td가 상기 2개의 입력 단자 Tc1, Tc2의 한쪽에 접속되는 것이다. 또한, 상기 선택 스위치(111)에서는, 입력 단자 Ta에 프레임 메모리(101)로부터 출력된 화상 데이터 Md가 입력되고, 한쪽의 출력 단자 Tb1로부터 는 선택 스위치(112)의 입력 단자 Tc1에 상기 프레임 메모리(101)로부터의 화상 데이터 Md가 출력되며, 다른쪽의 출력 단자 Tb2로부터는 상기 프레임 메모리(101)로부터의 화상 데이터 Md가 차분 연산부(102)에 출력된다. 상기 선택 스위치(112)에서는, 한쪽의 입력 단자 Tc1에는 상기 프레임 메모리(101)로부터의 화상 데이터 Md가 입력되고, 다른쪽의 입력 단자 Tc2에는 차분 연산부(102)에 의해 얻어진 차분 데이터 PEd가 입력되며, 출력 단자 Td로부터는 해당 화상 데이터 Md 및 차분 데이터 PEd의 한쪽이 예측 오차 부호화부(103)에 출력된다.
다음에 동작에 대하여 설명한다.
또, 이하의 각 실시예의 설명에서는, 부호화 대상으로 되는 픽쳐(대상 픽쳐)보다 표시 시간이 빠른 픽쳐(전방 픽쳐)는, 대상 픽쳐에 대하여 시간적으로 전방에 위치하는 픽쳐, 혹은 간단히 대상 픽쳐의 전방에 위치하는 픽쳐라고도 한다. 또한, 대상 픽쳐보다 표시 시간이 늦은 픽쳐(후방 픽쳐)는, 대상 픽쳐에 대하여 시간적으로 후방에 위치하는 픽쳐, 혹은 간단히 대상 픽쳐의 후방에 위치하는 픽쳐라고도 한다. 또한 이하의 각 실시예의 설명에서 「시간적으로」라고 하는 표현은, 특히 설명하지 않는 한 「표시 시간순으로」의 의미를 나타낸다.
실시예 1의 동화상 부호화 장치(10)에는, 입력 화상 데이터 Id가 표시 시간순으로 픽쳐 단위로 프레임 메모리(101)에 입력된다.
도 2(a)는 프레임 메모리(101)에 각 픽쳐의 화상 데이터가 축적되는 순서를 설명하는 도면이다. 도 2(a)에서는, 종선은 픽쳐를 나타내고, 각 픽쳐의 오른쪽 아래에 나타내는 기호는, 1 문자째의 알파벳이 픽쳐 타입(I, P 또는 B)을 나타내 고, 2 문자째 이후의 숫자가 시간순의 픽쳐 번호를 나타내고 있다. 즉, 도 2(a)에 나타내는 픽쳐 P1, B2, B3, P4, B5, B6, P7, B8, B9, P10, B11, B12, P3, B14, B15, P16은 도 43에 나타내는 픽쳐 F(k+3)∼F(k+18)[k=-2]에 상당하는 것이며, 표시순으로, 즉 표시 시간축 X을 따라 표시 시간이 빠른 것부터 순서대로 배열되어 있다.
프레임 메모리(101)에는 픽쳐의 화상 데이터가 픽쳐의 표시 순서대로 축적된다. 해당 프레임 메모리(101)에 축적된 픽쳐의 화상 데이터는 픽쳐의 표시순으로부터 픽쳐에 대한 부호화순으로 재배열된다. 이하, 설명의 간략화를 위해, 픽쳐의 화상 데이터는 간단히 픽쳐라고도 한다.
즉, 프레임 메모리(101)에 의해 픽쳐의 순서를 입력순(표시순)으로부터 부호화순으로 재배열하는 처리는 픽쳐간 예측 부호화에서의 참조 관계에 근거하여 행하여진다. 즉, 이 재배열 처리는, 제 1 픽쳐의 부호화 시에 참조 픽쳐로서 이용되는 제 2 픽쳐가 제 1 픽쳐보다도 먼저 부호화되도록 행하여진다.
여기서, P 픽쳐의 부호화 시에는, 부호화 대상 픽쳐(P 픽쳐)에 대하여 시간적으로 전방에 있는 근방의 3개의 픽쳐(I 또는 P 픽쳐)가 참조 픽쳐의 후보 픽쳐로서 이용된다. P 픽쳐의 블럭의 예측 부호화에서는 상기 3개의 후보 픽쳐 중에서 최대 하나가 참조된다.
또한, B 픽쳐의 부호화 시에는, 대상 픽쳐(B 픽쳐)에 대하여 시간적으로 전방에 위치하는 2개의 근방의 픽쳐(I 또는 P 픽쳐), 대상 픽쳐에 대하여 시간적으로 전방에 위치하는 최근방의 B 픽쳐, 및 대상 픽쳐에 대하여 시간적으로 후방에 위치 하는 I 또는 P 픽쳐가 참조 픽쳐의 후보 픽쳐로서 이용된다. B 픽쳐의 블럭의 예측 부호화에서는 상기 4개의 후보 픽쳐 중에서 최대 2개가 참조된다.
구체적으로는, 픽쳐 P10, B11, B12, P13과, 해당 각 픽쳐에 대응하는, 참조 픽쳐의 후보 픽쳐의 대응 관계는 도 2(a)에 나타내는 화살표와 같아진다. 즉, P 픽쳐 P10의 부호화 시에는 픽쳐 P1, P4, P7이 참조 픽쳐의 후보 픽쳐로 되고, P 픽쳐 P13의 부호화 시에는 픽쳐 P4, P7, P10이 참조 픽쳐의 후보 픽쳐로 된다. 또한, B 픽쳐 B11의 부호화 시에는 픽쳐 P7, B9, P10, P13이 참조 픽쳐의 후보 픽쳐로 되고, B 픽쳐 B12의 부호화 시에는 픽쳐 P7, P10, B11, P13이 참조 픽쳐의 후보 픽쳐로 된다.
또한, 도 2(b)는 도 2(a)에 나타내는 픽쳐 P1로부터 P16까지의 픽쳐의 순서를 표시순으로부터 부호화순으로 재배열 후의 픽쳐의 순서를 나타내고 있다. 재배열 후에는, 도 2(a)에 나타내는 픽쳐는, 도 2(b)에 도시하는 바와 같이, 부호화 시간을 나타내는 시간축(부호화 시간축) Y 상에서 부호화 시간이 빠른 것부터 순서대로, 즉 픽쳐 P4, B2, B3, P7, B5, B6, P10, B8, B9, P13, B11, B12, P16의 순으로 배열되어 있다.
프레임 메모리(101)에서 재배열이 행하여진 픽쳐의 데이터는 부호화 시간이 빠른 것부터 순서대로 일정의 데이터 처리 단위마다 판독된다. 여기서는, 일정의 데이터 처리 단위가 움직임 보상을 실행하는 데이터 단위이며, 구체적으로는, 수평 방향 및 수직 방향 모두 16개의 화소가 배열된 직사각형 형상 화상 공간(매크로 블럭)이다. 단 이하의 설명에서는, 매크로 블럭을 간단히 블럭이라고도 한다.
이하, 픽쳐 P13, B11, B12의 부호화 처리에 대하여 순서대로 설명한다.
<픽쳐 P13의 부호화 처리>
먼저, 픽쳐 P13의 부호화 처리에 대하여 설명한다.
부호화 대상으로 되는 픽쳐(대상 픽쳐) P13은 P 픽쳐이기 때문에, 픽쳐 P13의 대상 블럭의 픽쳐간 예측 부호화로서, 대상 픽쳐에 대하여 시간적으로 전방 혹은 후방에 위치하는 하나의 부호화된 픽쳐를 참조하는 1 방향 픽쳐간 예측 부호화가 행하여진다.
또, 이하의 설명에서는, 참조 픽쳐로서, 대상 픽쳐의 전방에 위치하는 P 픽쳐를 이용하는 경우에 대하여 설명한다.
즉, 이 경우, 픽쳐 P13의 부호화로서, 전방 참조를 이용한 픽쳐간 예측 부호화가 행해진다. 또한, P 픽쳐의 부호화에서는, B 픽쳐는 참조 픽쳐로서는 이용되지 않는다. 따라서, 이 경우, 참조 픽쳐의 후보 픽쳐는 전방의 3개의 I 또는 P 픽쳐이며, 구체적으로는 픽쳐 P4, P7, P10으로 된다. 이들 후보 픽쳐의 부호화는, 대상 픽쳐의 부호화 시에는 이미 종료되어 있어, 후보 픽쳐에 대응하는 데이터(복호화 데이터) Dd가 프레임 메모리(117)에 축적되어 있다.
P 픽쳐의 부호화에서는, 부호화 제어부(110)는 스위치(113, 114, 115)가 온 상태로 되도록, 스위치 제어 신호 Cs1에 의해 각 스위치를 제어한다. 프레임 메모리(101)로부터 판독된, 픽쳐 P13의 매크로 블럭에 대응하는 화상 데이터 Md는 먼저 움직임 벡터 검출부(108), 모드 선택부(109), 차분 연산부(102)에 입력된다.
움직임 벡터 검출부(108)는 프레임 메모리(117)에 축적된 픽쳐 P4, P7, P10의 복호화 화상 데이터 Rd를 이용하여 픽쳐 P13의 매크로 블럭의 움직임 벡터 MV를 검출한다. 그리고, 검출된 움직임 벡터 MV는 모드 선택부(109)로 출력된다. 모드 선택부(109)에서는 움직임 벡터 검출부(108)에 의해 검출된 움직임 벡터를 이용하여 픽쳐 P13의 블럭의 부호화 모드가 결정된다. 여기서 부호화 모드는 블럭을 어떠한 방법으로 부호화하는지를 나타내는 것이다. 예컨대, 상술한 바와 같이, P 픽쳐의 경우에는, 픽쳐내 부호화, 움직임 벡터를 이용한 픽쳐간 예측 부호화, 움직임 벡터를 이용하지 않는(움직임을 0으로서 취급하는) 픽쳐간 예측 부호화 중에서 1개의 부호화 모드가 결정된다. 부호화 모드의 결정에서는, 일반적으로는, 블럭에 대하여 소정의 비트량이 부호량으로서 인가된 경우에 부호화 오차가 최소로 되는 부호화 모드가 선택된다. 이 경우, 픽쳐간 예측 부호화를 선택할 때에는, 참조 픽쳐로서 픽쳐 P4, P7, P10 중에서 가장 상응한 것이 하나 선택된다.
모드 선택부(109)에 의해 결정된 부호화 모드 Ms는 부호열 생성부(104)에 출력된다. 또한, 결정한 부호화 모드 Ms가 전방 픽쳐를 참조하는 부호화 모드인 경우에는, 전방 픽쳐를 참조한 움직여 검출에 의해 얻어진 벡터(전방 움직임 벡터) MVp, 및 그 움직임 벡터가 픽쳐 P4, P7, P10 중 어느 하나를 참조하여 검출된 움직임 벡터인지라는 정보 Rp도 부호열 생성부(104)에 출력된다.
모드 선택부(109)에 의해 결정된 부호화 모드 Ms가 픽쳐간 예측 부호화 모드를 나타내는 경우에는, 픽쳐간 예측 부호화에서 이용되는 움직임 벡터 MVp와, 그 움직임 벡터가 픽쳐 P4, P7, P10 중 어느 하나를 참조하여 검출된 움직임 벡터인지 라는 정보 Rp가 움직임 벡터 기억부(116)에 기억된다.
또한, 모드 선택부(109)에서는, 대상 블럭에 대하여 결정된 부호화 모드에 따른 움직임 보상이 참조 픽쳐 및 대상 블럭에 대한 움직임 벡터를 이용하여 행하여진다. 해당 움직임 보상에 의해 얻어진, 대상 블럭에 대한 예측 데이터 Pd가 차분 연산부(102)와 가산 연산부(106)에 출력된다.
단, 픽쳐내 부호화 모드가 선택된 경우에는, 모드 선택부(109)에서는 예측 데이터 Pd가 생성되지 않는다. 또한, 픽쳐내 부호화 모드가 선택된 경우에는, 스위치(111)는 그 입력 단자 Ta가 출력 단자 Tb1에 접속되도록, 스위치(112)는 그 출력 단자 Td가 입력 단자 Tc1에 접속되도록 제어된다. 한편, 픽쳐간 예측 부호화가 선택된 경우에는, 스위치(111)는 그 입력 단자 Ta가 출력 단자 Tb2에 접속되도록, 스위치(112)는 그 출력 단자 Td가 입력 단자 Tc2에 접속되도록 제어된다.
이하에서는, 모드 선택부(109)에 의해 부호화 모드 Ms로서 픽쳐간 예측 부호화 모드가 선택된 경우에 대하여 설명한다.
차분 연산부(102)에는 픽쳐 P13의 블럭의 화상 데이터 Md와, 모드 선택부(109)로부터의 대응하는 예측 데이터 Pd가 입력된다. 차분 연산부(102)는 픽쳐 P13의 블럭의 화상 데이터와 예측 데이터와의 차분 데이터를 산출하여, 해당 차분 데이터를 예측 오차 데이터 PEd로서 출력한다.
예측 오차 데이터 PEd는 예측 오차 부호화부(103)에 입력된다. 예측 오차 부호화부(103)는 입력된 예측 오차 데이터 PEd에 대해 주파수 변환이나 양자화 등의 부호화 처리를 실시하여 부호화 데이터 Ed를 생성한다. 여기서 예컨대, 주파수 변환이나 양자화 등의 처리는 수평 방향 및 수직 방향 모두 8개의 화소가 배열된 직사각형 형상 화상 공간(서브 블럭)에 대응하는 데이터를 단위로서 행하여진다.
예측 오차 부호화부(103)로부터 출력된 부호화 데이터 Ed는 부호열 생성부(104)와 예측 오차 복호화부(105)에 입력된다.
부호열 생성부(104)는, 입력된 부호화 데이터 Ed를 가변 길이 부호화하여 부호열을 생성하고, 또한, 해당 부호열에 움직임 벡터 MVp나 부호화 모드 등 Ms의 정보나, 부호화 제어부(110)로부터의 헤더 정보 등을 부가하여 부호열 Bs를 생성한다.
이 때, 부호화 모드가 전방 참조를 하는 부호화 모드인 경우에는, 전방 움직임 벡터가 픽쳐 P4, P7, P10 중 어느 하나를 참조하여 검출된 움직임 벡터인지라는 정보(참조 픽쳐 정보) Rp도 부호열에 부가된다.
다음에, 프레임 메모리의 관리 방법과, 후보 픽쳐 중의 참조 픽쳐를 나타내는 정보(참조 픽쳐 정보)에 대하여 설명한다.
도 3은 참조 픽쳐용 메모리(프레임 메모리)(117)에 축적되는 픽쳐가 시간의 경과와 동시에 변화되는 모양을 나타내고 있다. 또, 이 프레임 메모리(117)의 관리는 부호화 제어부(110)로부터의 메모리 제어 신호 Cd2에 의해 행하여진다. 또한, 여기서는, 프레임 메모리(117)는, 5 픽쳐분의 메모리 영역 (#1)∼(#5)을 갖고 있다. 각 메모리 영역에는 1 픽쳐분의 화상 데이터가 축적 가능하다. 또, 각 픽쳐의 기억부는 하나의 프레임 메모리 내의 영역에 한정되지 않고, 하나의 메모리이더라도 된다.
먼저, 프레임 메모리(참조 픽쳐용 메모리)의 관리 방법에 대하여 설명한다.
픽쳐 P13의 부호화가 개시될 때에는, 프레임 메모리(117)의 각 메모리 영역 (#1)∼(#5)에는 픽쳐 B8, P4, P7, P10, B9가 유지되어 있다. 픽쳐 B9는 픽쳐 P13의 부호화에는 사용되지 않지만, 픽쳐 B11의 부호화에 사용되기 때문에, 프레임 메모리(117)에 유지되어 있다. 픽쳐 P13은 픽쳐 P4, P7, P10을 참조 픽쳐의 후보 픽쳐로서 이용하여 부호화된다. 부호화된 픽쳐 P13은 픽쳐 B8이 유지되어 있던 메모리 영역(#1)에 유지된다. 이것은, 픽쳐 P4, P7, P10, B9는 픽쳐 P13 이후(픽쳐 P13을 포함함)의 부호화 시에 참조 픽쳐의 후보 픽쳐로서 이용되지만, 픽쳐 B8은 픽쳐 P13 이후의 부호화 시에 참조 픽쳐로서 이용되는 것이 아니기 때문이다. 또, 도 3 중, 동그라미로 표시되어 있는 픽쳐는, 대상 픽쳐의 부호화가 완료된 시점에서, 마지막으로 프레임 메모리(117)에 축적된 픽쳐(대상 픽쳐)이다.
다음에, 참조 픽쳐 정보로서 구체적인 참조 픽쳐 번호를 후보 픽쳐에 할당하는 방법에 대하여 설명한다.
이 참조 픽쳐 번호는, 각 블럭의 부호화 시, 참조 픽쳐의 후보 픽쳐 중 어느 하나의 픽쳐가 참조 픽쳐로서 이용되었는지를 나타내는 정보이다. 바꿔 말하면, 상기 참조 픽쳐 번호는, 부호화 대상으로 되는 대상 픽쳐(픽쳐 P13)의 대상 블럭의 움직임 벡터가 참조 픽쳐의 후보인 픽쳐 P4, P7, P10 중 어느 하나를 참조하여 검출된 움직임 벡터인지를 나타내는 정보이다. 그리고, 참조 픽쳐 번호의 할당에는 대상 픽쳐에 시간적으로 가장 가까운 후보 픽쳐로부터 순번대로 번호를 할당하는 방법이 이용된다.
구체적으로는, 대상 픽쳐 P13의 블럭의 부호화 시에, 픽쳐 P10이 참조 픽쳐로 지정된 경우에는, 대상 픽쳐 P13의 1매 전의 후보 픽쳐가 참조 픽쳐로 지정된 것을 나타내는 정보(참조 픽쳐 번호 [0])가 대상 픽쳐 P13의 부호열 중에 부가된다. 대상 픽쳐 P13의 블럭의 부호화 시에, 픽쳐 P7이 참조된 경우는, 대상 픽쳐 P13의 2매 전의 후보 픽쳐가 참조 픽쳐로 지정된 것을 나타내는 정보(참조 픽쳐 번호 [1])가 대상 픽쳐 P13의 부호열 중에 부가된다. 대상 픽쳐 P13의 블럭의 부호화 시에, 픽쳐 P4가 참조된 경우에는, 대상 픽쳐 P13의 3매 전의 후보 픽쳐가 참조 픽쳐로 지정된 것을 나타내는 정보(참조 픽쳐 번호 [2])가 대상 픽쳐의 부호열 중에 부가된다.
또, 도 3 중, 참조 픽쳐 정보로서 부호 [b]가 부여된 픽쳐는, 대상 픽쳐의 부호화 시에, 후방 참조 픽쳐의 후보로 되는 것을 나타내고 있다.
<픽쳐 B11의 부호화 처리>
다음에 픽쳐 B11의 부호화 처리에 대하여 설명한다.
부호화 대상으로 되는 픽쳐는 픽쳐(대상 픽쳐) B11이기 때문에, 픽쳐 B11의 대상 블럭의 픽쳐간 예측 부호화로서, 대상 픽쳐에 대하여 시간적으로 전방 혹은 후방에 위치하는 2개의 부호화된 픽쳐를 참조하는 2 방향 픽쳐간 예측 부호화가 행하여진다.
단, 여기서는, 참조 픽쳐로서, 대상 픽쳐의 전방에 위치하는 하나의 픽쳐(I 픽쳐, P 픽쳐 혹은 B 픽쳐)와, 대상 픽쳐의 후방에 위치하는 하나의 픽쳐(I 픽쳐 혹은 P 픽쳐)를 이용하는 경우에 대하여 설명한다.
즉, 이 경우는, 전방 참조 픽쳐로서, 대상 픽쳐(픽쳐 B11)에 대하여 시간적으로 근방에 위치하는 2개의 픽쳐(I 또는 P 픽쳐), 혹은 대상 픽쳐에 대하여 시간적으로 최근방에 위치하는 B 픽쳐를 이용한다. 또한, 후방 참조 픽쳐로서, 대상 픽쳐에 대하여 시간적으로 최근방에 있는 I 또는 P 픽쳐를 이용한다. 따라서, 이 경우, 픽쳐 B11에 대한 참조 픽쳐의 후보 픽쳐는 전방 픽쳐인 픽쳐 P7, B9, P10 및 후방 픽쳐인 픽쳐 P13으로 된다.
다른 픽쳐의 부호화 시에, 참조 픽쳐로서 이용되는 B 픽쳐의 부호화에서는, 부호화 제어부(110)는 스위치(113, 114, 115)가 온 상태로 되도록 스위치 제어 신호 Cs1에 의해 각 스위치를 제어한다. 픽쳐 B11은 다른 픽쳐의 부호화 시에 참조 픽쳐로서 이용되기 때문에, 부호화 제어부(110)는 스위치(113, 114, 115)가 온 상태로 되도록 스위치 제어 신호 Cs1에 의해 각 스위치를 제어한다. 프레임 메모리(101)로부터 판독된, 픽쳐 B11의 블럭에 대응하는 화상 데이터 Md는 움직임 벡터 검출부(108), 모드 선택부(109), 차분 연산부(102)에 입력된다.
움직임 벡터 검출부(108)는 픽쳐 B11의 대상 블럭에 대한 전방 움직임 벡터와 후방 움직임 벡터를 검출한다. 이 움직임 벡터의 검출 시에는, 프레임 메모리(117)에 축적된 픽쳐 P7, B9, P10은 전방 참조 픽쳐의 후보 픽쳐로서, 픽쳐 P13은 후방 참조 픽쳐로서 이용된다. 후방 움직임 벡터의 검출은 후방 참조 픽쳐인 픽쳐 P13에 근거하여 행하여진다. 움직임 벡터 검출부(108)에 의해 검출된 움직임 벡터는 모드 선택부(109)에 출력된다.
모드 선택부(109)는 움직임 벡터 검출부(108)에 의해 검출한 움직임 벡터를 이용하여 픽쳐 B11의 대상 블럭의 부호화 모드를 결정한다. 여기서는, B 픽쳐의 부호화 모드는, 예컨대, 픽쳐내 부호화, 전방 움직임 벡터를 이용한 픽쳐간 예측 부호화, 후방 움직임 벡터를 이용한 픽쳐간 예측 부호화, 쌍방향 움직임 벡터를 이용한 픽쳐간 예측 부호화, 다이렉트 모드 중에서 선택된다. 여기서 부호화 모드가 전방 움직임 벡터를 이용한 픽쳐간 예측 부호화인 경우, 픽쳐 P7, B9, P10 중에서 가장 상응하는 픽쳐가 참조 픽쳐로서 선택된다.
이하, 픽쳐 B11의 블럭을 다이렉트 모드로 부호화하는 처리에 대해 설명한다.
[다이렉트 모드 부호화의 제 1 예]
도 4(a)는 픽쳐(대상 픽쳐) B11의 블럭(대상 블럭) BLa를 다이렉트 모드로 부호화하는 제 1 예를 나타내고 있다. 이 경우, 픽쳐 B11의 후방에 있는 참조 픽쳐인 픽쳐(기준 픽쳐) P13 중의, 대상 블럭 BLa1과 동일한 위치에 있는 블럭(기준 블럭) BLb1의 움직임 벡터(기준 움직임 벡터) MVc1을 이용한다. 움직임 벡터 MVc1은 픽쳐 P13의 블럭 BLb1을 부호화할 때에 이용된 움직임 벡터이며, 움직임 벡터 기억부(116)에 기억되어 있다. 이 움직임 벡터 MVc1은 픽쳐 P10을 참조하여 검출된 것이며, 픽쳐 P10의, 블럭 BLb1에 대응하는 영역 CRc1을 나타낸다. 블럭 BLa1에는, 움직임 벡터 MVc1과 평행한 움직임 벡터 MVd1, MVe1과, 참조 픽쳐로서 선택된 픽쳐 P10, P13을 이용하여 쌍방향 예측 부호화 처리가 실시된다. 이 블럭 BLa1 의 부호화 시에 이용하는 움직임 벡터 MVd1 및 MVe1은 픽쳐 P10의, 블럭 BLa1에 대응하는 영역 CRd1을 나타내는 전방 움직임 벡터, 및 픽쳐 P13의, 블럭 BLa1에 대응하는 영역 CRe1을 나타내는 후방 움직임 벡터이다.
이 경우, 전방 움직임 벡터 MVd1의 크기를 MVF, 후방 움직임 벡터 MVe1의 크기를 MVB는 (수학식 1), (수학식 2)로 구해진다.
(수학식 1)
MVF = MVR ×TRF/TRD
(수학식 2)
MVB = (TRB-TRD) ×MVR/TRD
여기서, MVF, MVB는 움직임 벡터의 수평 성분, 수직 성분의 각각을 표현하고 있는 것으로 한다.
또한, MVR은 움직임 벡터 MVc1의 크기(정부(正負) 부호에 의해 2차원 공간 상에서의 방향이 나타내어짐), TRD는 대상 픽쳐(픽쳐 B11)의 후방 참조 픽쳐(픽쳐 P13)와, 해당 후방 참조 픽쳐(픽쳐 P13)의 블럭 BLb1의 부호화 시에 참조된 픽쳐(픽쳐 P10)와의 시간적 거리이다. TRF는 대상 픽쳐(픽쳐 B11)와 직전의 참조 픽쳐(픽쳐 P10)와의 시간적 거리이며, TRB는 대상 픽쳐(픽쳐 B11)와, 후방 참조 픽쳐의 블럭 BLb1의 부호화 시에 참조된 픽쳐(픽쳐 P10)의 시간적 거리이다.
[다이렉트 모드 부호화의 제 2 예]
다음에, 다이렉트 모드를 이용하는 부호화 처리의 제 2 예를 설명한다.
도 4(b)는 픽쳐(대상 픽쳐) B11의 블럭(대상 블럭) BLa2를 다이렉트 모드로 부호화하는 처리의 제 2 예를 나타내고 있다.
이 경우, 픽쳐 B11의 후방에 있는 참조 픽쳐인 픽쳐 P13 중의, 블럭 BLa2와 동일한 위치에 있는 블럭(기준 픽쳐) BLb2의 움직임 벡터(기준 움직임 벡터) MVf2를 이용한다. 움직임 벡터 MVf2는 블럭 BLb2가 부호화되었을 때에 이용되는 움직임 벡터이며, 움직임 벡터 기억부(116)에 기억되어 있다. 이 움직임 벡터 MVf2는 픽쳐 P7을 참조하여 검출된 것이며, 픽쳐 P7의, 블럭 BLb2에 대응하는 영역 CRf2를 나타내고 있다. 블럭 BLa2에는 움직임 벡터 MVf2와 평행한 움직임 벡터 MVg2, MVh2와, 참조 픽쳐로서 선택된 픽쳐 P10 및 픽쳐 P13에 근거하여 쌍방향 예측 부호화 처리가 실시된다. 이 블럭 BLa2를 부호화할 때에 이용하는 움직임 벡터 MVg2 및 MVh2는 픽쳐 P10의, 블럭 BLa2에 대응하는 영역 CRg2를 나타내는 전방 움직임 벡터, 및 픽쳐 P13의, 블럭 BLa2에 대응하는 영역 CRh2를 나타내는 후방 움직임 벡터이다.
이 경우의 움직임 벡터 MVg2 및 MVh2의 크기 MVF, MVB는 각각 상기 (수학식 1), (수학식 2)에 의해 구할 수 있다.
이와 같이 다이렉트 모드에서는, 대상 블럭 BLa2의 부호화 시에 후방 참조되는 픽쳐의, 해당 대상 블럭과 상대적으로 동일 위치에 위치하는 블럭 BLb2의 움직임 벡터 MVf2를 스케일링하여 대상 블럭에 대한 전방 움직임 벡터 MVg2 및 후방 움직임 벡터 MVh2를 구하기 때문에, 다이렉트 모드가 선택된 경우에는, 대상 블럭의 움직임 벡터의 정보를 보낼 필요가 없다. 또, 전방 참조 픽쳐로서, 대상 픽쳐에 시간적으로 최근방에 위치하는 부호화된 픽쳐를 이용하기 때문에, 예측 효율을 향상시킬 수 있다.
[다이렉트 모드 부호화의 제 3 예]
다음에, 다이렉트 모드를 이용하는 부호화 처리의 제 3 예를 설명한다.
도 5(a)는 픽쳐(대상 픽쳐) B11의 블럭(대상 블럭) BLa3을 다이렉트 모드로 부호화하는 처리의 제 3 예를 나타내고 있다.
이 경우, 픽쳐 B11의 후방 참조 픽쳐인 픽쳐(기준 픽쳐) P13 중의, 블럭 BLa3과 동일한 위치에 있는 블럭 BLb3의 움직임 벡터(기준 움직임 벡터) MVc3을 이용한다. 움직임 벡터 MVc3은 블럭 BLb3이 부호화되었을 때에 이용되는 움직임 벡터이며, 움직임 벡터 기억부(116)에 기억되어 있다. 이 움직임 벡터 MVc3은 픽쳐 P7을 참조하여 얻어진 것이며, 픽쳐 P7의, 블럭 BLb3에 대응하는 영역 CRc3을 나타내고 있다. 블럭 BLa3에는, 움직임 벡터 MVc3과 평행한 움직임 벡터 MVd3, MVe3과, 블럭 BLb3의 부호화 시에 참조된 픽쳐(전방 참조 픽쳐로서 선택된 픽쳐 P7), 및 후방 참조 픽쳐인 픽쳐 P13에 근거하여 쌍방향 예측 처리가 실시된다. 이 경우, 대상 블럭 BLa3을 부호화할 때에 이용하는 움직임 벡터 MVd3, MVe3은 픽쳐 P7의, 블럭 BLa3에 대응하는 영역 CRd3을 나타내는 전방 움직임 벡터, 및 픽쳐 P13의, 블럭 BLa3에 대응하는 영역 CRe3을 나타내는 후방 움직임 벡터이다.
이 경우의 움직임 벡터 MVd3, MVe3의 크기 MVF, MVB는 각각 다음 (수학식 3), 상기 (수학식 2)로 구할 수 있다.
(수학식 3)
MVF = MVR ×TRB/TRD
여기서, MVR은 움직임 벡터 MVc3의 크기이다.
이와 같이 도 5(a)에 나타내는 다이렉트 모드에서의 처리에서는, 대상 블럭의 부호화 시에 후방 참조되는 픽쳐의, 해당 대상 블럭과 상대적으로 동일 위치에 위치하는 블럭 BLb3의 움직임 벡터 MVc3을 스케일링하여 대상 블럭에 대한 전방 움직임 벡터 MVd3 및 후방 움직임 벡터 MVe4를 구하기 때문에, 다이렉트 모드가 선택된 경우에는, 대상 블럭의 움직임 벡터의 정보를 보낼 필요가 없다.
여기서, 블럭 BLb3의 부호화 시에 참조되는 픽쳐 P13이 이미 프레임 메모리(117)로부터 삭제되어 있는 경우에는, 시간적으로 최근방의 전방 참조 픽쳐 P10을 다이렉트 모드에서의 전방 참조 픽쳐로서 이용하면 된다. 이 경우의 다이렉트 모드에서의 처리는 도 4(a)에 나타내는 다이렉트 모드의 처리(제 1 예)와 마찬가지이다.
[다이렉트 모드 부호화의 제 4 예]
다음에, 다이렉트 모드를 이용하는 부호화 처리의 제 4 예를 설명한다.
도 5(b)는 픽쳐(대상 픽쳐) B11의 블럭(대상 블럭) BLa4를 다이렉트 모드로 부호화하는 처리의 제 4 예를 나타내고 있다.
이 경우, 대상 블럭 BLa4에는, 전방 참조 픽쳐로서 선택된 최근방의 픽쳐 P10과 후방 참조 픽쳐인 픽쳐 P13에 근거하여 움직임 벡터를 0으로 하는 쌍방향 예 측 처리가 실시된다. 즉, 이 경우의 블럭 BLa4를 부호화할 때에 이용하는 움직임 벡터 MVf4 및 MVh4는 픽쳐 P10의, 대상 블럭 BLa4와 상대적으로 동일한 위치의 영역(블럭) CRf4를 나타내는 움직임 벡터, 및 픽쳐 P13의, 대상 블럭 BLa4와 상대적으로 동일한 위치의 영역(블럭) CRh4를 나타내는 움직임 벡터이다.
이와 같이, 도 5(b)에 나타내는 다이렉트 모드에서의 처리에서는, 대상 블럭에 대한 움직임 벡터를 강제적으로 0으로 하는 것에 의해, 다이렉트 모드가 선택된 경우에는, 대상 블럭의 움직임 벡터의 정보를 보낼 필요가 없고, 움직임 벡터의 스케일링 처리가 불필요해져, 신호 처리량의 삭감을 도모할 수 있다. 이 방법은 예컨대, 픽쳐 B11의 후방 참조 픽쳐인 픽쳐 P13 중의, 블럭 BLa4와 동일한 위치에 있는 블럭이, 프레임내 부호화된 블럭과 같이 움직임 벡터를 갖지 않는 블럭인 경우에도 적용할 수 있다. 따라서, 후방 참조 픽쳐 중의 대상 블럭과 동일한 위치에 있는 블럭이 움직임 벡터를 갖지 않고서 부호화되어 있는 경우이더라도, 다이렉트 모드를 이용하여 부호화 효율을 향상시킬 수 있다.
상술한 다이렉트 모드의 처리(제 1∼제 4 예)는, 픽쳐의 표시 시간의 간격이 일정한 경우뿐만 아니라, 픽쳐의 표시 시간의 간격이 가변인 경우에 대해서도 적용 가능하다.
[다이렉트 모드 부호화의 제 5 예]
다음에, 픽쳐의 표시 시간의 간격이 가변인 경우의 다이렉트 모드에서의 예측 부호화 처리를 다이렉트 모드를 이용하는 부호화 처리의 제 5 예로서 설명한다.
도 6(a)는 다이렉트 모드를 이용하는 부호화 처리의 제 5 예를 설명하는 도면이며, 다이렉트 모드에서의 예측 부호화 처리(제 2 예)를 픽쳐의 표시 간격이 가변인 경우에 적용한 처리를 나타내고 있다.
이 경우, 대상 픽쳐 B11의 대상 블럭 BLa5에 대한 쌍방향 예측 부호화 처리는, 픽쳐 B11의 후방에 있는 참조 픽쳐인 픽쳐(기준 픽쳐) P13 중의, 대상 블럭 BLa5와 동일한 위치에 있는 블럭 BLb5의 움직임 벡터(기준 움직임 벡터) MVf5를 이용하여, 도 4(b)에 나타내는 다이렉트 모드에서의 예측 부호화 처리(제 2 예)와 마찬가지로 행하여진다. 또, 움직임 벡터 MVf5는 픽쳐 P13의 블럭 BLb5를 부호화할 때에 이용된 움직임 벡터이며, 픽쳐 P7의, 블럭 BLb5에 대응하는 영역 CRf5를 나타내고 있다. 또한, 대상 블럭에 대응하는 움직임 벡터 MVg5, MVh5는 움직임 벡터 MVf5와 평행하다. 또한, 이들 움직임 벡터 MVg5, MVh5는 픽쳐 P10의, 블럭 BLa5에 대응하는 영역 CRg5를 나타내는 전방 움직임 벡터, 및 픽쳐 P13의, 블럭 BLa5에 대응하는 영역 CRh5를 나타내는 후방 움직임 벡터이다.
이 경우도, 움직임 벡터 MVg5, MVh5의 크기 MVF, MVB는 다이렉트 모드에서의 처리(제 2 예)와 마찬가지로 각각 (수학식 1), (수학식 2)에 의해 구할 수 있다.
[특정 블럭의 스킵 처리]
다음에 다이렉트 모드에서의 부호화 처리에서, 특정한 블럭을 스킵 블럭으로서 취급하는 경우에 대하여 설명한다.
다이렉트 모드에서의 부호화 처리에서, 대상 블럭에 대응하는 차분 데이터가 0으로 된 경우에는, 예측 오차 부호화부(103)에서는, 해당 대상 블럭에 대응하는 부호화 데이터가 생성되지 않고, 부호열 생성부(104)로부터는 대상 블럭에 대응하는 부호열이 출력되지 않는다. 이와 같이 차분 데이터가 0으로 된 블럭은 스킵 블럭으로서 취급된다.
이하, 특정한 블럭을 스킵 블럭으로서 취급하는 경우를 구체적으로 설명한다.
도 6(b)는 동화상을 구성하는 특정한 픽쳐 F를 나타내고 있다.
이 픽쳐 F에서는, 인접하는 블럭 MB(r-1)∼MB(r+3) 중 블럭 MB(r-1), MB(r) 및 블럭 MB(r+3)에 대응하는 차분 데이터(예측 오차 데이터)의 값은 0이 아닌 값으로 되어 있지만, 블럭 MB(r) 및 블럭 MB(r+3) 사이에 위치하는 블럭 MB(r+1) 및 MB(r+2)에 대응하는 차분 데이터(예측 오차 데이터)의 값은 0으로 되어 있다.
이 경우, 다이렉트 모드에서는, 블럭 MB(r+1) 및 MB(r+2)이 스킵 블럭으로서 취급되고, 동화상에 대응하는 부호열 Bs 중에는 블럭 MB(r+1) 및 MB(r+2)에 대한 부호열이 포함되지 않는다.
도 6(c)는 블럭 MB(r+1) 및 MB(r+2)이 스킵 블럭으로서 취급된 경우의 스트림 구조를 설명하기 위한 도면이며, 부호열 Bs의, 블럭 MB(r) 및 블럭 MB(r+3)에 대응하는 부분을 나타내고 있다.
블럭 MB(r)에 대응하는 부호열 Bmb(r)와 블럭 MB(r+3)에 대응하는 부호열 Bmb(r+3) 사이에는, 이들 블럭 사이에 스킵 블럭으로서 취급한 블럭이 2개 있는 것을 나타내는 스킵 식별자 Sf(Sk:2)가 배치되어 있다. 또한, 블럭 MB(r-1)에 대응 하는 부호열 Bmb(r-1)와 블럭 MB(r)에 대응하는 부호열 Bmb(r) 사이에는, 이들 블럭 사이에 스킵 블럭으로서 취급한 블럭이 없는 것을 나타내는 스킵 식별자 Sf(Sk:0)가 배치되어 있다.
또, 블럭 MB(r)에 대응하는 부호열 Bmb(r)는 헤더부 Hmb와 데이터부 Dmb로 구성되며, 데이터부 Dmb에는 해당 블럭에 대응하는 부호화된 화상 데이터가 포함되어 있다. 또한, 헤더부 Hmb에는, 매크로 블럭 타입, 즉 이 블럭이 어떠한 부호화 모드로 부호화되었는지를 나타내는 모드 플래그 Fm, 부호화 시에 참조한 픽쳐를 나타내는 참조 픽쳐 정보 Rp, 부호화 시에 이용한 움직임 벡터를 나타내는 정보 Bmvf, Bmvb가 포함되어 있다. 여기서는, 이 블럭은 쌍방향 예측 부호화 처리에 의해 부호화되어 있고, 움직임 벡터를 나타내는 정보 Bmvf, Bmvb는 각각 쌍방향 예측 부호화 처리에서 이용한 전방 움직임 벡터, 후방 움직임 벡터의 값을 나타내고 있다. 또한, 블럭 MB(r+3)에 대응하는 부호열 Bmb(r+3) 등의 다른 블럭에 대응하는 부호열도 블럭 MB(r)에 대응하는 부호열 Bmb(r)와 동일한 구조로 되어 있다.
이와 같이, 다이렉트 모드에서는, 차분 데이터가 0으로 된 블럭을 스킵 블럭으로서 취급하여, 즉 해당 블럭에 대응하는 정보를 부호열 중에서 모드 정보도 포함시켜 스킵하는 것에 의해 부호량의 삭감이 가능해진다.
또한, 블럭이 스킵되어 있는지 여부는 각 블럭의 부호열의 직전에 배치되어 있는 스킵 식별자 Sf로부터 검지할 수 있다. 또, 블럭이 스킵되어 있는지 여부는 각 블럭에 대응하는 부호열 중에 기술되어 있는 블럭의 번호 정보 등에 의해서 알 수도 있다.
또한, 도 4(a)에 나타내는 다이렉트 모드에서의 처리예(제 1 예), 도 4(b)에 나타내는 다이렉트 모드에서의 처리예(제 2 예), 도 5(a)에 나타내는 다이렉트 모드에서의 처리예(제 3 예)에서는, 차분 데이터가 0으로 된 블럭을 전부 스킵 블럭으로서 취급하는 것은 아니고, 대상 픽쳐에 대하여 시간적으로 직전에 위치하는 픽쳐를 전방 참조 픽쳐로서 이용하고, 또한 크기 0인 움직임 벡터를 이용하여 대상 블럭에 대한 쌍방향 예측을 해서, 대상 블럭의 차분 데이터가 0으로 된 경우에만 해당 대상 블럭을 스킵 블럭으로서 취급하도록 하더라도 된다.
그런데, 대상 블럭에 대한 부호화 모드의 선택은, 일반적으로 일정한 비트량에 대한 부호화 오차가 최소로 되도록 행하여진다. 모드 선택부(109)에 의해 결정된 부호화 모드는 부호열 생성부(104)에 출력된다. 또한, 모드 선택부(109)에 의해 결정된 부호화 모드에 근거하여 참조 픽쳐로부터 얻어진 예측 데이터가 차분 연산부(102)와 가산 연산부(106)에 출력된다. 단, 픽쳐내 부호화가 선택된 경우에는, 예측 데이터가 출력되지 않는다. 또한, 모드 선택부(109)에 의해 픽쳐내 부호화가 선택된 경우에는, 스위치(111)는 그 입력 단자 Ta가 출력 단자 Tb1에 접속되고, 스위치(112)는 그 출력 단자 Td가 입력 단자 Tc1에 접속되도록 제어된다. 픽쳐간 예측 부호화가 선택된 경우에는, 스위치(111)는 그 입력 단자 Ta가 출력 단자 Tb2에 접속되고, 스위치(112)는 그 출력 단자 Td가 입력 단자 Tc2에 접속되도록 제어된다.
이하에서는, 모드 선택부(109)에 의해 픽쳐간 예측 부호화가 선택된 경우의 동화상 부호화 장치(10)의 동작에 대하여 설명한다.
차분 연산부(102)에는 모드 선택부(109)로부터 예측 데이터 Pd가 입력된다. 차분 연산부(102)는 픽쳐 B11의 블럭에 대응하는 화상 데이터와 예측 데이터와의 차분 데이터를 연산하여, 해당 차분 데이터를 예측 오차 데이터 PEd로서 출력한다. 예측 오차 데이터 PEd는 예측 오차 부호화부(103)에 입력된다. 예측 오차 부호화부(103)는 입력된 예측 오차 데이터 PEd에 대하여 주파수 변환이나 양자화 등의 부호화 처리를 실시하는 것에 의해 부호화 데이터 Ed를 생성한다. 예측 오차 부호화부(103)로부터 출력된 부호화 데이터 Ed는 부호열 생성부(104)와 예측 오차 복호화부(104)에 입력된다.
부호열 생성부(104)는 입력된 부호화 데이터 Ed에 대해 가변 길이 부호화 등을 실시하고, 또한 움직임 벡터나 부호화 모드 등의 정보를 부가하는 것에 의해 부호열 Bs를 생성하여 해당 부호열 Bs를 출력한다. 이 때, 부호화 모드가 전방 참조를 실행하는 부호화 모드인 경우에는, 전방 움직임 벡터가 픽쳐 P7, B9, P10 중 어느 하나를 참조하여 얻어진 움직임 벡터인지를 식별하기 위한 정보(참조 픽쳐 정보) Rp도 부호열 Bs에 부가된다.
다음에, 픽쳐 B11의 부호화에서의 프레임 메모리 관리 방법 및 참조 픽쳐 정보의 할당 방법에 대해 도 3을 이용하여 설명한다.
픽쳐 B11의 부호화가 개시될 때에는, 프레임 메모리(117)에는 픽쳐 P4, P7, P10, P13, B9가 유지되어 있다. 픽쳐 B11은 픽쳐 P7, B9, P10을 전방 참조의 후보 픽쳐로서 이용하고, 픽쳐 P13을 후방 참조의 후보 픽쳐로서 이용하여 쌍방향 예측 부호화된다. 부호화된 픽쳐 B11은 픽쳐 P4가 유지되어 있던 메모리 영역(#2)에 유 지된다. 이것은, 픽쳐 P4는 픽쳐 B11 이후의 픽쳐의 부호화 처리에서는 참조 픽쳐로서 이용되지 않기 때문이다.
이 픽쳐 B11의 부호화에서는, 대상 블럭에 대한 전방 움직임 벡터가 픽쳐 P7, B9, P10 중 어느 하나를 참조하여 검출된 움직임 벡터인지를 식별하기 위한 정보(참조 픽쳐 정보)의 부가 방법으로서는 시간적으로 대상 픽쳐(픽쳐 B11)에 가장 가까운 참조 후보 픽쳐로부터 순번대로 번호를 부여하는 방법이 이용된다. 또, 참조 후보 픽쳐는 대상 픽쳐의 부호화 시에 참조 픽쳐로서 선택 가능한 픽쳐이다.
구체적으로는, 픽쳐 P10에는 참조 픽쳐 번호 [0]이, 픽쳐 B9에는 참조 픽쳐 번호 [1]이, 픽쳐 P7에는 참조 픽쳐 번호 [2]가 할당된다.
따라서, 대상 픽쳐의 부호화 시에 픽쳐 P10을 참조한 경우에는, 대상 픽쳐의 1매 전의 후보 픽쳐를 참조한 것을 나타내는 정보로서, 참조 픽쳐 번호 [0]이 대상 블럭에 대한 부호열 중에 기술된다. 마찬가지로, 픽쳐 B9를 참조한 경우에는 대상 픽쳐의 2매 전의 후보 픽쳐를 참조한 것을 나타내는 정보로서 참조 픽쳐 번호 [1]이, 픽쳐 P7을 참조한 경우에는 대상 픽쳐의 3매 전의 후보 픽쳐를 참조한 것을 나타내는 정보로서 참조 픽쳐 번호 [2]가, 대상 블럭에 대한 부호열 중에 기술된다.
여기서, 참조 픽쳐 번호 [0], [1], [2]에 대한 부호의 할당은, 예컨대, 번호의 값이 작을수록, 부호 길이가 짧게 되도록 행하여진다.
일반적으로, 후보 픽쳐가 참조 픽쳐로서 이용될 확률은 대상 픽쳐에 시간적으로 가까운 후보 픽쳐일수록 높다. 따라서, 이와 같이 부호를 할당하는 것에 의해서, 대상 블럭의 움직임 벡터가 어느 후보 픽쳐를 참조하여 얻어진 것인지를 표 현하는 부호의 전체의 부호량을 작게 할 수 있다.
예측 오차 복호화부(105)는 입력된 대상 블럭에 대한 부호화 데이터에 대해 역(逆)양자화나 역(逆)주파수 변환 등의 복호화 처리를 실시하여, 대상 블럭의 복호화 차분 데이터 PDd를 생성해서 출력한다. 복호화 차분 데이터 PDd는 가산 연산부(106)에서 예측 데이터 Pd와 가산되고, 이 가산에 의해 얻어진 대상 픽쳐의 복호화 데이터 Dd가 프레임 메모리(117)에 축적된다.
마찬가지의 처리에 의해, 픽쳐 B11의 나머지 블럭의 부호화 처리가 행하여진다. 그리고, 픽쳐 B11의 모든 블럭의 처리가 종료되면, 다음에 픽쳐 B12의 부호화 처리가 행하여진다.
<픽쳐 B12의 부호화 처리>
다음에 픽쳐 B12의 부호화 처리에 대하여 설명한다.
픽쳐 B12는 B 픽쳐이기 때문에, 픽쳐 B12의 대상 블럭의 픽쳐간 예측 부호화로서, 대상 픽쳐에 대하여 시간적으로 전방 혹은 후방에 위치하는 2개의 부호화된 픽쳐를 참조하는 2 방향 픽쳐간 예측 부호화가 행하여진다.
단, 여기서는, 픽쳐 B12의 부호화 처리로서 쌍방향 참조를 이용한 픽쳐간 예측 부호화가 행하여지는 경우에 대하여 설명한다. 따라서, 이 경우, 전방 참조 픽쳐로서는, 대상 픽쳐에 대하여 표시 시간순으로 근방의 2개의 I 또는 P 픽쳐, 혹은 대상 픽쳐에 대하여 표시 시간순으로 최근방의 B 픽쳐를 이용하여, 후방 참조 픽쳐로서, 대상 픽쳐에 대하여 표시 시간순으로 최근방에 있는 I 또는 P 픽쳐를 이용한 다. 따라서, 이 경우, 픽쳐 B12에 대한 참조 후보 픽쳐는 전방 픽쳐인 픽쳐 P7, P10, B11 및 후방 픽쳐인 픽쳐 P13으로 된다.
다른 픽쳐의 부호화 시에, 참조 픽쳐로서 이용되는 B 픽쳐의 처리에서는, 부호화 제어부(110)는 스위치(113, 114, 115)가 온이 되도록 각 스위치를 제어한다. 픽쳐 B12는 다른 픽쳐의 부호화 시에 참조 픽쳐로서 이용되기 때문에, 부호화 제어부(110)는 스위치(113, 114, 115)가 온이 되도록 각 스위치를 제어한다. 따라서, 프레임 메모리(101)로부터 판독된 픽쳐 B12의 블럭에 대응하는 화상 데이터는 움직임 벡터 검출부(108), 모드 선택부(109) 및 차분 연산부(102)에 입력된다.
움직임 벡터 검출부(108)는, 프레임 메모리(117)에 축적되어 있는 픽쳐 P7, P10, B11을 전방 참조의 후보 픽쳐로서, 프레임 메모리(117)에 축적되어 있는 픽쳐 P13을 후방 참조 픽쳐로서 이용하여, 픽쳐 B12의 블럭에 대응하는 전방 움직임 벡터와 후방 움직임 벡터를 검출한다. 검출된 움직임 벡터는 모드 선택부(109)에 출력된다.
모드 선택부(109)는 움직임 벡터 검출부(108)에 의해 얻어진 움직임 벡터를 이용하여 픽쳐 B12의 블럭의 부호화 모드를 결정한다. 여기서는, B 픽쳐의 부호화 모드는, 예컨대, 픽쳐내 부호화, 전방 움직임 벡터를 이용한 픽쳐간 예측 부호화, 후방 움직임 벡터를 이용한 픽쳐간 예측 부호화, 쌍방향 움직임 벡터를 이용한 픽쳐간 예측 부호화, 다이렉트 모드 중에서 선택된다. 여기서 부호화 모드가 전방 움직임 벡터를 이용한 픽쳐간 예측 부호화인 경우, 픽쳐 P7, P10, B11 중에서 가장 상응한 픽쳐가 참조 픽쳐로서 선택된다.
이하, 픽쳐 B12의 블럭을 다이렉트 모드로 부호화하는 처리에 대하여 설명한다.
[다이렉트 모드 부호화의 제 1 예]
도 7(a)는 픽쳐(대상 픽쳐) B12의 블럭(대상 블럭) BLa5를 다이렉트 모드로 부호화하는 경우를 나타내고 있다. 이 경우, 픽쳐 B12의 후방에 있는 참조 픽쳐인 픽쳐(기준 픽쳐) P13 중의, 블럭 BLa5와 동일한 위치에 있는 블럭(기준 블럭) BLb5의 움직임 벡터(기준 움직임 벡터) MVc5를 이용한다. 움직임 벡터 MVc5는 블럭 BLb5가 부호화되었을 때에 이용된 움직임 벡터이며, 움직임 벡터 기억부(116)에 기억되어 있다. 움직임 벡터 MVc5는 픽쳐 P10의, 블럭 BLb5에 대응하는 영역 CRc5를 나타내고 있다. 블럭 BLa5에는 움직임 벡터 MVc5와 평행한 움직임 벡터를 이용하여, 블럭 BLa5에 대한 참조 픽쳐인 픽쳐 B11 및 픽쳐 P13에 근거해서 쌍방향 예측 부호화 처리가 실시된다. 이 경우, 블럭 BLa5를 부호화할 때에 이용하는 움직임 벡터는 픽쳐 B11의, 블럭 BLa5에 대응하는 영역 CRd5를 나타내는 움직임 벡터 MVd5, 및 픽쳐 P13의, 블럭 BLa5에 대응하는 영역 CRe5를 나타내는 움직임 벡터 MVe5이다. 이 경우의 움직임 벡터 MVd5, MVe5의 크기 MVF, MVB는 각각 상술한 (수학식 1), (수학식 2)로 구할 수 있다.
[다이렉트 모드 부호화의 제 2 예]
다음에, 다이렉트 모드를 이용하는 부호화 처리의 제 2 예를 설명한다.
도 7(b)는 픽쳐(대상 픽쳐) B12의 블럭(대상 블럭) BLa6을 다이렉트 모드로 부호화하는 경우를 나타내고 있다. 이 경우, 픽쳐 B12의 후방에 있는 참조 픽쳐인 픽쳐(기준 픽쳐) P13 중의, 블럭 BLa6과 동일한 위치에 있는 블럭 BLb6의 움직임 벡터(기준 움직임 벡터) MVf6을 이용한다. 움직임 벡터 MVf6은 블럭 BLb6이 부호화되었을 때에 이용된 움직임 벡터이며, 움직임 벡터 기억부(116)에 기억되어 있다. 움직임 벡터 MVf6은 픽쳐 P7의, 블럭 BLb6에 대응하는 영역 CRf6을 나타내고 있다. 블럭 BLa6에는, 움직임 벡터 MVf6과 평행한 움직임 벡터를 이용하여, 참조 픽쳐인 픽쳐 B11과 픽쳐 P13에 근거해서 쌍방향 예측 부호화 처리가 실시된다. 이 경우, 블럭 BLa6을 부호화할 때에 이용하는 움직임 벡터 MVg6 및 MVh6은 픽쳐 B11의, 블럭 BLa6에 대응하는 영역 CRg6을 나타내는 움직임 벡터 MVg6, 및 픽쳐 P13의, 블럭 BLa6에 대응하는 영역 CRh6을 나타내는 움직임 벡터이다. 이 경우의 움직임 벡터 MVg6 및 MVh6의 크기 MVF, MVB는 각각 상술한 (수학식 1), (수학식 2)로 구할 수 있다.
이와 같이 다이렉트 모드에서는, 대상 블럭 BLa6의 부호화 시에 후방 참조하는 픽쳐의, 해당 대상 블럭과 상대적으로 동일 위치에 위치하는 블럭 BLb6의 움직임 벡터 MVf6을 스케일링하여 대상 블럭에 대한 전방 움직임 벡터 MVg6 및 후방 움직임 벡터 MVh6을 구하기 때문에, 다이렉트 모드가 선택된 경우에는, 대상 블럭의 움직임 벡터의 정보를 보낼 필요가 없다. 또, 전방 참조 픽쳐로서, 대상 픽쳐에 표시 시간순으로 최근방에 위치하는 부호화된 픽쳐를 이용하기 때문에, 예측 효율을 향상시킬 수 있다.
[다이렉트 모드 부호화의 제 3 예]
다음에, 다이렉트 모드를 이용하는 부호화 처리의 제 3 예를 설명한다.
도 8(a)는 픽쳐(대상 픽쳐) B12의 블럭(대상 블럭) BLa7을 다이렉트 모드로 부호화하는 처리의 제 3 예를 나타내고 있다.
이 경우, 픽쳐 B12의 후방에 있는 참조 픽쳐인 픽쳐(기준 픽쳐) P13 중의, 블럭 BLa7과 동일한 위치에 있는 블럭(기준 블럭) BLb7의 움직임 벡터(기준 움직임 벡터) MVc7을 이용한다. 움직임 벡터 MVc7은 블럭 BLb7이 부호화되었을 때에 이용된 움직임 벡터이며, 움직임 벡터 기억부(116)에 기억되어 있다. 이 움직임 벡터 MVc7은 픽쳐 P7의, 블럭 BLb7에 대응하는 영역 CRc7을 나타내고 있다. 블럭 BLa7에는, 움직임 벡터 MVc7과 평행한 움직임 벡터를 이용하여, 블럭 BLb7의 부호화 시에 참조된 픽쳐와 동일한 픽쳐, 즉 픽쳐 P7을 전방 참조 픽쳐로서, 픽쳐 P13을 후방 참조 픽쳐로서, 쌍방향 예측 부호화 처리가 실시된다. 이 경우의 블럭 BLa7을 부호화할 때에 이용하는 움직임 벡터 MVd7 및 MVe7은 픽쳐 P7의, 블럭 BLb7에 대응하는 영역 CRd7을 나타내는 움직임 벡터, 및 픽쳐 P13의, 블럭 BLb7에 대응하는 영역 CRe7을 나타내는 움직임 벡터이다.
상기 움직임 벡터 MVd7 및 MVe7의 크기 MVF, MVB는 각각 상술한 (수학식 2), (수학식 3)으로 구할 수 있다.
여기서, 블럭 BLb7의 부호화 시에 참조된 픽쳐가 이미 프레임 메모리(117)로부터 삭제되어 있는 경우에는, 시간적으로 최근방의 전방 참조 픽쳐를 다이렉트 모드에서의 전방 참조 픽쳐로서 이용하면 된다. 이 경우의 다이렉트 모드에서의 처 리는 다이렉트 모드의 제 1 예와 마찬가지로 된다.
이와 같이 도 8(a)에 나타내는 다이렉트 모드에서의 처리에서는, 대상 블럭의 부호화 시에 후방 참조되는 픽쳐의, 해당 대상 블럭과 상대적으로 동일 위치에 위치하는 블럭 BLb7의 움직임 벡터 MVc7을 스케일링하여 대상 블럭에 대한 전방 움직임 벡터 MVd7 및 후방 움직임 벡터 MVe7을 구하기 때문에, 다이렉트 모드가 선택된 경우에는, 대상 블럭의 움직임 벡터의 정보를 보낼 필요가 없다.
[다이렉트 모드 부호화의 제 4 예]
다음에, 다이렉트 모드를 이용하는 부호화 처리의 제 4 예를 설명한다.
도 8(b)는 픽쳐(대상 픽쳐) B12의 블럭(대상 블럭) BLa8을 다이렉트 모드로 부호화하는 처리의 제 4 예를 나타내고 있다.
이 경우, 대상 블럭 BLa8에는, 전방 참조 픽쳐로서 선택된 최근방의 픽쳐 P10과 후방 참조 픽쳐인 픽쳐 P13에 근거하여, 움직임 벡터를 0으로 하는 쌍방향 예측 처리가 실시된다. 즉, 이 경우의 블럭 BLa8을 부호화할 때에 이용하는 움직임 벡터 MVf8 및 MVh8은, 픽쳐 B11의, 대상 블럭 BLa8과 상대적으로 동일한 위치의 영역(블럭) CRf8을 나타내는 움직임 벡터, 및 픽쳐 P13의, 대상 블럭 BLa8과 상대적으로 동일한 위치의 영역(블럭) CRg8을 나타내는 움직임 벡터이다.
이와 같이 도 8(b)에 나타내는 다이렉트 모드에서의 처리에서는, 대상 블럭에 대한 움직임 벡터를 강제적으로 0으로 하는 것에 의해, 다이렉트 모드가 선택된 경우에는, 대상 블럭의 움직임 벡터의 정보를 보낼 필요가 없고, 움직임 벡터의 스 케일링 처리가 불필요해져, 신호 처리량의 삭감을 도모할 수 있다. 이 방법은 예컨대, 픽쳐 B12의 후방 참조 픽쳐인 픽쳐 P13 중의, 블럭 BLa8과 동일한 위치에 있는 블럭이, 프레임내 부호화된 블럭과 같이 움직임 벡터를 갖지 않는 블럭인 경우에도 적용할 수 있다. 따라서, 후방 참조 픽쳐 중의 대상 블럭과 동일한 위치에 있는 블럭이 움직임 벡터를 갖지 않고서 부호화되어 있는 경우이더라도, 다이렉트 모드를 이용하여 부호화 효율을 향상시킬 수 있다. 상술한 픽쳐 B12의 다이렉트 모드에서의 처리(제 1∼제 4 예)는 픽쳐의 표시 시간의 간격이 일정한 경우뿐만 아니라, 픽쳐의 표시 시간의 간격이 가변인 경우에 대해서도, 도 6(a)에 나타내는 픽쳐 B11의 경우와 마찬가지로 적용 가능하다.
또한, 픽쳐 B12의 다이렉트 모드에서의 부호화 처리에서는, 픽쳐 B11의 다이렉트 모드에서의 부호화 처리와 마찬가지로 대상 블럭에 대응하는 차분 데이터가 0으로 된 경우에는, 예측 오차 부호화부(103)에서는, 해당 대상 블럭에 대응하는 부호화 데이터는 생성되지 않고, 부호열 생성부(104)로부터는 대상 블럭에 대응하는 부호열이 출력되지 않는다. 이와 같이 차분 데이터가 0으로 된 블럭은, 도 6(b), 도 6(c)에 나타내는 픽쳐 B11의 경우와 마찬가지로 스킵 블럭으로서 취급된다.
또한, 도 7(a)에 나타내는 다이렉트 모드에서의 처리예(제 1 예), 도 7(b)에 나타내는 다이렉트 모드에서의 처리예(제 2 예), 도 8(a)에 나타내는 다이렉트 모드에서의 처리예(제 3 예)에서는, 차분 데이터가 0으로 된 블럭을 전부 스킵 블럭으로서 취급하는 것은 아니며, 대상 픽쳐에 대하여 시간적으로 직전에 위치하는 픽쳐를 전방 참조 픽쳐로서 이용하고, 또한 크기 0인 움직임 벡터를 이용하여 대상 블럭에 대한 쌍방향 예측을 해서, 대상 블럭의 차분 데이터가 0으로 된 경우에만 해당 대상 블럭을 스킵 블럭으로서 취급하도록 하더라도 된다.
그런데, 모드 선택부(109)에서 픽쳐 B12의 대상 블럭에 대한 부호화 모드가 결정되면, 픽쳐 B11의 대상 블럭의 부호화 처리와 마찬가지로 하여, 대상 블럭에 대한 예측 데이터 PEd가 생성되고, 해당 예측 데이터 PEd는 차분 연산부(102)와 가산 연산부(106)에 출력된다. 단, 픽쳐내 부호화가 선택된 경우에는, 모드 선택부(109)로부터 예측 데이터는 출력되지 않는다. 또한, 각 스위치(111, 112)는, 모드 선택부(109)에서 부호화 모드로서, 픽쳐내 부호화와 픽쳐간 부호화 중 어느 하나가 선택되었는지에 따라서 픽쳐 B11의 부호화의 경우와 마찬가지로 제어된다.
이하에서는, 픽쳐 P12의 부호화 시에 모드 선택부(109)에 의해 픽쳐간 예측 부호화가 선택된 경우의 동화상 부호화 장치(10)의 동작에 대하여 설명한다.
이 경우, 차분 연산부(102), 예측 오차 부호화부(103), 부호열 생성부(104), 예측 오차 복호화부(105), 가산 연산부(106) 및 프레임 메모리(117)는 픽쳐 P11의 부호화 시에 모드 선택부(109)에 의해 픽쳐간 예측 부호화가 선택된 경우와 마찬가지로 동작한다.
단, 이 경우, 전방 참조의 후보 픽쳐가 픽쳐 P11의 부호화의 경우와는 다르기 때문에, 대상 블럭에 대한 부호화 모드가 전방 참조를 하는 부호화 모드일 때, 대상 블럭의 부호열에 부가되는 참조 픽쳐 정보는, 전방 움직임 벡터가 픽쳐 P7, P10, B11 중 어느 하나를 참조하여 얻어진 움직임 벡터인지를 식별하기 위한 정보로 된다.
또한, 픽쳐 B12의 부호화 시의, 프레임 메모리 관리 방법 및 참조 픽쳐 정보의 할당 방법은 도 3에 나타내는 픽쳐 B11의 부호화 시의 방법과 완전히 동일하다.
이상과 같이, 본 실시예 1에서는, B 픽쳐를 부호화할 때에, 전방 참조의 후보 픽쳐로서, P 픽쳐 이외에 B 픽쳐도 이용하기 때문에, B 픽쳐에 대한 참조 픽쳐로서, 해당 B 픽쳐의 가장 근방에 위치하는 전방 픽쳐를 이용할 수 있게 되고, B 픽쳐의 움직임 보상의 예측 정밀도를 높일 수 있어, 부호 효율의 향상을 도모할 수 있다.
본 실시예 1에서는, P 픽쳐의 부호화에서는 B 픽쳐가 참조 픽쳐로서 이용하지 않는 경우에 대하여 설명하였다. 이렇게 함으로써, 복호화 도중에서 오류가 발생한 경우라도, 복호화 오류가 발생한 픽쳐의 다음 I 또는 P 픽쳐로부터, 복호화를 재개하는 것에 의해 오류로부터의 회복을 완전히 실행할 수 있다. 단, P 픽쳐의 부호화에서, B 픽쳐를 참조 픽쳐로서 이용하더라도, 본 실시예에 의해 얻어지는 다른 효과는 변하지 않는다.
또한, 본 실시예 1에서는, B 픽쳐에 대한 전방 참조의 후보 픽쳐를 2매의 P 픽쳐와 1매의 B 픽쳐로 하고 있기 때문에, 종래, B 픽쳐에 대한 전방 참조 픽쳐의 후보를 3매의 P 픽쳐로 하고 있었던 경우와 비교하면, B 픽쳐에 대한 전방 참조의 후보 픽쳐의 수에 변화는 없고, B 픽쳐에 대한 전방 참조의 후보 픽쳐에 B 픽쳐를 포함한 것에 의한, 참조 후보 픽쳐를 축적하는 프레임 메모리의 용량 증대나 움직임 검출의 처리량의 증대를 회피할 수 있다.
또한, 본 실시예에서는, 생성하는 부호열의 헤더 정보로서, B 픽쳐에 전방 B 픽쳐를 참조하여 픽쳐간 예측 부호화 처리가 실시되고 있는 것을 나타내는 정보, 및 그 전방 참조 시에, 몇 매의 I 또는 P 픽쳐와 몇 매의 B 픽쳐를 참조하는지를 나타내는 정보를 기술하는 것에 의해, 본 실시예의 동화상 부호화 장치에 의해 생성된 부호열을 복호화할 때에 어느 정도의 프레임 메모리가 필요해지는지를 알 수 있다.
또한, 본 실시예에서는, 움직임 벡터나 부호화 모드 등의 정보를 부호열에 부가할 때에, 부호화 모드가 전방 참조를 하는 부호화 모드인 경우에는, 전방 참조되는 후보 픽쳐에 할당된, 참조 픽쳐를 식별하기 위한 참조 픽쳐 정보를 부호열에 부가하고, 또한 참조 픽쳐용의 프레임 메모리의 관리 방법에 따라서, 대상 픽쳐에 시간적으로 가장 가까운 후보 픽쳐에 할당된 참조 픽쳐 정보일수록, 짧은 부호 길이의 부호에 의해 나타내기 때문에, 참조 픽쳐 정보를 표현하는 부호의 전체의 부호량을 작게 할 수 있다. 또한 프레임 메모리의 관리에서는, 예컨대, 픽쳐의 종류에 관계없이 프레임 메모리를 관리하기 때문에, 프레임 메모리량을 최소로 할 수 있다.
또한, 본 실시예 1에서는, P 픽쳐와 B 픽쳐를 분리하여 참조 픽쳐용 프레임 메모리를 관리하는 것에 의해, 프레임 메모리의 관리가 간단하게 된다.
또한, 본 실시예에서는, B 픽쳐의 블럭을 다이렉트 모드로 부호화할 때에 전방 참조되는 픽쳐로서, 해당 B 픽쳐에 대하여 표시 시간순으로 가장 근방에 위치하는 픽쳐를 이용함으로써, B 픽쳐에 대한 다이렉트 모드에서의 예측 효율을 향상시킬 수 있다.
또한, 본 실시예에서는, B 픽쳐의 블럭을 다이렉트 모드로 부호화할 때에, 전방 참조 픽쳐로서, 후방 참조 픽쳐의 부호화 시에 전방 참조된 픽쳐를 이용함으로써, B 픽쳐의 다이렉트 모드에서의 예측 효율을 향상시킬 수 있다.
또한, 본 실시예에서는, B 픽쳐의 블럭을 다이렉트 모드로 부호화할 때, 전방 참조 픽쳐 및 후방 참조 픽쳐에 근거하여, 움직임 벡터를 0으로 하는 쌍방향 예측을 하기 때문에, 다이렉트 모드에서의 움직임 벡터의 스케일링 처리를 불필요하게 되어, 정보 처리량의 경감을 도모할 수 있다. 또한 이 경우, 후방 참조 픽쳐 중의 대상 블럭과 동일한 위치에 있는 블럭이 움직임 벡터를 갖지 않고서 부호화되어 있는 경우이더라도, 다이렉트 모드를 이용하여 부호화 효율을 향상시킬 수 있다.
또한, 본 실시예에서는, B 픽쳐의 블럭을 다이렉트 모드로 부호화할 때, 대상 블럭에 대한 예측 오차가 0으로 된 경우, 해당 대상 블럭에 관한 정보는 부호열에는 기술되지 않기 때문에, 부호량의 삭감이 가능해진다.
또, 상기 실시예 1에서는, 움직임 보상은 수평 16 ×수직 16 화소로 이루어지는 화상 공간(매크로 블럭)을 단위로 하고, 예측 오차 화상의 부호화는 수평 8 ×수직 8 화소로 이루어지는 화상 공간(서브 블럭)을 단위로 하여 처리하는 경우에 대해 설명했지만, 움직임 보상 및 예측 오차 화상의 부호화는, 매크로 블럭 혹은 서브 블럭의 화소수가 실시예 1에서 나타낸 것과는 다른 것이더라도 무방하다.
또한, 실시예 1에서는 연속하는 B 픽쳐의 매수가 2매인 경우를 예로 들어 설명했지만, 연속하는 B 픽쳐의 매수는 3매수 이상이더라도 무방하다.
예컨대, I 픽쳐와 P 픽쳐 사이, 혹은 인접하는 P 픽쳐 사이에 위치하는 B 픽쳐의 매수는 3장 또는 4장이더라도 무방하다.
또한, 실시예 1에서는, P 픽쳐의 부호화 모드는 픽쳐내 부호화, 움직임 벡터를 이용한 픽쳐간 예측 부호화, 움직임 벡터를 이용하지 않는 픽쳐간 예측 부호화로부터 선택하고, B 픽쳐의 부호화 모드는 픽쳐내 부호화, 전방 움직임 벡터를 이용한 픽쳐간 예측 부호화, 후방 움직임 벡터를 이용한 픽쳐간 예측 부호화, 쌍방향 움직임 벡터를 이용한 픽쳐간 예측 부호화, 다이렉트 모드로부터 선택하는 경우를 예로 들었지만, P 픽쳐 혹은 B 픽쳐의 부호화 모드는 상기 실시예 1에서 나타낸 것 이외의 모드이더라도 무방하다.
예컨대, B 픽쳐의 부호화 모드로서 다이렉트 모드를 이용하지 않는 경우에는, 동화상 부호화 장치(10)에서의 움직임 벡터 기억부(116)는 불필요해진다.
또한, 실시예 1에서는, B 픽쳐인 픽쳐 B11, B12가 다른 픽쳐를 부호화할 때의 참조 픽쳐의 후보 픽쳐로 되는 경우에 대하여 설명했지만, 다른 픽쳐의 부호화 시에 참조 픽쳐로서 이용되지 않는 B 픽쳐는 참조용 픽쳐 메모리(117)에 유지할 필요는 없다. 이 경우, 부호화 제어부(110)는 스위치(114, 115)를 오프로 하도록 제어한다.
또한, 실시예 1에서는 P 픽쳐의 부호화에서의 전방 참조의 후보 픽쳐의 수가 3개인 경우에 대하여 설명했지만, 이것에 한정되는 것이 아니라, 예컨대, P 픽쳐의 부호화에서는 2매 혹은 4매 이상의 픽쳐를 전방 참조의 후보 픽쳐로서 이용하더라도 무방하다.
또한, 실시예 1에서는 B 픽쳐의 부호화에서의 전방 참조의 후보 픽쳐는 2개의 P 픽쳐와 1개의 B 픽쳐인 경우에 대하여 설명했지만, B 픽쳐의 부호화에서의 전방 참조의 후보 픽쳐는 상기 실시예 1의 것에 한정되지 않는다.
예컨대, B 픽쳐의 부호화에서는, 1개의 P 픽쳐와 2개의 B 픽쳐, 2개의 P 픽쳐와 2개의 B 픽쳐, 픽쳐 타입에 관계없이 시간적으로 최근방의 3개의 픽쳐 등을 전방 참조의 후보 픽쳐로서 이용하더라도 무방하다. 또한, 표시 시간축으로 가장 근방의 B 픽쳐가 아니라, 표시 시간축에서 떨어진 B 픽쳐를 참조의 후보 픽쳐로서 이용하더라도 무방하다. 또한, B 픽쳐의 블럭의 부호화 시에 1매의 후방 픽쳐가 참조되고, 최근방의 1개의 픽쳐만이 전방 참조의 후보 픽쳐되는 경우에는, 대상 블럭이 어느 픽쳐를 참조하여 부호화되어 있는지를 나타내는 정보(참조 픽쳐 정보)는 부호열 중에 기술할 필요는 없다.
또한, 실시예 1에서는, B 픽쳐의 부호화 시에, 대상 픽쳐의 최근방에 위치하는 전방 P 픽쳐의 더 전방에 위치하는 B 픽쳐가 참조되는 경우에 대하여 설명했지만, B 픽쳐의 부호화 시에는, 최근방의 전방 I 또는 P 픽쳐의 더 전방의 B 픽쳐는 참조하지 않도록 하더라도 무방하다. 이 경우, 생성된 부호열을 복호화할 때에, 복호화 도중에서 오류가 발생한 경우라도, 오류가 발생한 픽쳐의 다음 I 또는 P 픽쳐로부터 복호화를 재개하는 것에 의해 오류로부터의 회복을 완전히 실행할 수 있다.
예컨대, 도 9(a) 및 도 9(b)는, B 픽쳐의 부호화 시에, 대상 픽쳐의 최근방에 위치하는 전방 P 픽쳐의 더 전방에 위치하는 B 픽쳐가 참조되는 경우를 나타내 는 도면이다.
도 9(a)는 픽쳐 배열 및 B 픽쳐에 대한 참조 관계의 일례를 나타내고 있다. 즉, 도 9(a)에서는, 인접하는 P 픽쳐 사이에 위치하는 B 픽쳐의 매수가 2매이고, B 픽쳐에 대한 전방 참조 픽쳐(즉 B 픽쳐의 부호화 시에 참조되는 픽쳐)의 후보 픽쳐가 1개의 P 픽쳐와 2개의 B 픽쳐인 경우가 나타내어져 있다.
도 9(b)는 픽쳐 배열 및 B 픽쳐에 대한 참조 관계의 일례를 나타내고 있다. 즉, 도 9(b)에서는, P 픽쳐 사이에 위치하는 B 픽쳐의 매수가 4매이고, B 픽쳐에 대한 전방 참조의 후보 픽쳐가 픽쳐 타입에 관계없이 시간적으로 대상 픽쳐의 최근방에 위치하는 2개의 픽쳐인 경우가 나타내어져 있다.
또한, 도 10(a) 및 도 10(b)는, B 픽쳐의 부호화 시에는, 최근방의 전방 I 또는 P 픽쳐의 더 전방의 B 픽쳐는 참조하지 않은 경우를 나타내고 있다.
도 10(a)에서는, P 픽쳐 사이에 위치하는 B 픽쳐의 매수가 2장이고, B 픽쳐에 대한 전방 참조 픽쳐의 후보 픽쳐가 1개의 P 픽쳐와 1개의 B 픽쳐이며, 대상 픽쳐의 최근방에 위치하는 전방 P 픽쳐의 더 전방에 위치하는 B 픽쳐는 상기 전방 참조 픽쳐의 후보 픽쳐로 하지 않는 경우가 나타내어져 있다.
도 10(b)에서는, P 픽쳐 사이에 위치하는 B 픽쳐의 매수가 4매이고, B 픽쳐에 대한 전방 참조 픽쳐의 후보 픽쳐가 1개의 P 픽쳐와 1개의 B 픽쳐이며, 대상 픽쳐의 최근방에 위치하는 전방 P 픽쳐의 더 전방에 위치하는 B 픽쳐가 상기 전방 참조 픽쳐의 후보 픽쳐로 하지 않는 경우가 나타내어져 있다.
또한, 상기 실시예 1에서는, P 픽쳐에 대한 참조 후보 픽쳐의 수가 3이고, B 픽쳐에 대한 전방 참조의 후보 픽쳐가 2개의 P 픽쳐와 1개의 B 픽쳐인 경우, 즉 P 픽쳐의 부호화 시에 참조 가능한 픽쳐수와, B 픽쳐의 부호화 시에 전방 참조 가능한 픽쳐수가 동일한 경우에 대하여 설명했지만, B 픽쳐의 부호화 시에 전방 참조 가능한 픽쳐수를 P 픽쳐의 부호화 시에 참조 가능한 픽쳐수보다 적게 하더라도 무방하다.
또한, 상기 실시예 1에서는 다이렉트 모드의 부호화 처리의 예로서 4가지의 방법에 대하여 설명했지만, 다이렉트 모드에서는 그들 중 어느 하나의 방법을 이용하더라도 무방하고, 4가지의 방법 중 복수의 방법을 이용하더라도 무방하다. 단, 복수의 방법을 이용하는 경우에는, 어떤 다이렉트 모드를 이용했는지를 나타내는 정보(DM 모드 정보)를 부호열 중에 기술하는 것이 바람직하다.
예컨대, 시퀀스 전체에 걸쳐 하나의 방법을 이용하는 경우에는 DM 모드 정보를 시퀀스 전체의 헤더에 기술하고, 픽쳐마다 하나의 방법을 선택하는 경우에는 픽쳐의 헤더에 DM 모드 정보를 기술하며, 블럭 단위로 하나의 방법을 선택하는 경우에, 블럭의 헤더에 DM 모드 정보를 기술하면 무방하다.
또한, 상기 다이렉트 모드에서의 처리 방법을 선택하는 단위로서는, 상기 픽쳐나 블럭 등의 단위 외에, 복수의 픽쳐로 이루어지는 GOP(Group of pictures), 복수의 블럭으로 이루어지는 GOB(Group of blocks), 픽쳐를 구분하는 슬라이스 등이더라도 무방하다.
또한, 실시예 1에서는 프레임 메모리의 관리 방법으로서 도 3을 이용하고 설명했지만, 프레임 메모리의 관리 방법은 도 3에 나타내는 것에 한정되지 않는다.
이하, 다른 프레임 메모리의 관리 방법에 대하여 설명한다.
먼저, 참조 픽쳐로서 이용되는 모든 픽쳐를 P 픽쳐와 B 픽쳐로 분할하여 관리하는 경우의 제 1 예에 대해 도 11을 이용하여 설명한다.
이 경우, 프레임 메모리(117)는 메모리 영역으로서 P 픽쳐용 메모리 영역(#1)∼(#4)과, B 픽쳐용 메모리 영역(#1), (#2)의 합계 6 픽쳐분의 영역을 갖는 것으로 한다. 또, 각 픽쳐의 기억부는 하나의 프레임 메모리 내의 영역에 한정되지 않고, 하나의 메모리이더라도 무방하다.
픽쳐 P13의 부호화가 개시될 때에는, 프레임 메모리(117)의 P 픽쳐용 메모리 영역(#1)∼(#4)에는 픽쳐 P1, P4, P7, P10이, 그 B 픽쳐용 메모리 영역(#1), (#2)에는 픽쳐 B8, B9가 유지되어 있다. 그리고, 픽쳐 P13은 픽쳐 P4, P7, P10을 참조 픽쳐의 후보 픽쳐로서 이용하여 부호화되고, 픽쳐 P1이 유지되어 있던 영역(#1)에는 부호화된 픽쳐 P13이 유지된다. 이것은, 픽쳐 P1이, 픽쳐 P13 이후의 픽쳐의 부호화 시에, 참조 픽쳐로서 이용되지 않기 때문이다.
이 경우, 참조 픽쳐 정보를 후보 픽쳐인 픽쳐 P4, P7, P10에 할당하는 방법은, 도 3에 나타내는 방법과 마찬가지로, 대상 픽쳐에 대하여 시간적으로 가장 가까운 후보 픽쳐일수록, 값이 작은 참조 픽쳐 번호가 할당되는 것이다.
즉, 대상 픽쳐에 가장 가까운 전방 후보 픽쳐에는 참조 픽쳐 번호 [0]이 부여되고, 대상 픽쳐에 2번째로 가까운 후보 픽쳐에는 참조 픽쳐 번호 [1]이 부여된다. 대상 픽쳐로부터 가장 먼 후보 픽쳐에는 참조 픽쳐 번호 [2]가 부여된다.
또, 도 11 중, 후방 참조 픽쳐로서 이용되는 픽쳐에는, 참조 픽쳐 정보로서 부호 [b]가 부여되고, 대상 픽쳐 이후의 픽쳐의 부호화 시에, 참조 픽쳐로서 이용되지 않는 픽쳐에는 부호 [n]이 부여되어 있다.
다음에, 참조 픽쳐로서 이용되는 모든 픽쳐를 P 픽쳐와 B 픽쳐로 분할하여 관리하는 경우의 제 2 예에 대해 도 12를 이용하여 설명한다.
메모리 관리에 대해서는, 도 11에 나타내는 제 1 예와 마찬가지이기 때문에 그 설명은 생략한다.
이 경우, 참조 픽쳐 정보의 부가 방법으로서는, P 픽쳐용 메모리 영역에 저장되어 있는 픽쳐를 우선적으로 번호 부여를 실행하는 방법이 이용된다. 단, 픽쳐 P13의 부호화에서는, B 픽쳐가 참조 픽쳐로서 이용되지 않기 때문에, B 픽쳐에는 번호 부여는 행하여지지 않는다. 따라서, 픽쳐 P10에는 참조 픽쳐 번호 [0], 픽쳐 P7에는 참조 픽쳐 번호 [1], 픽쳐 P4에는 참조 픽쳐 번호 [2]가 부여된다.
다음에, 참조 픽쳐로서 이용되는 모든 픽쳐를 P 픽쳐와 B 픽쳐로 분할하여 관리하는 경우의 제 3 예에 대해 도 13을 이용하여 설명한다.
메모리 관리에 대해서는, 도 11에 나타내는 제 1 예와 마찬가지이기 때문에 그 설명은 생략한다.
이 경우, 참조 픽쳐 번호의 부가 방법으로서는, B 픽쳐용 메모리 영역에 저장되어 있는 픽쳐를 우선적으로 번호 부여를 실행하는 방법이 이용된다. 단, 픽쳐 P13의 부호화에서는, B 픽쳐가 참조 픽쳐로서 이용되지 않기 때문에, B 픽쳐에는 번호 부여는 행하여지지 않는다. 따라서, 픽쳐 P10에는 참조 픽쳐 번호 [0], 픽쳐 P7에는 참조 픽쳐 번호 [1], 픽쳐 P4에는 참조 픽쳐 번호 [2]가 부여된다.
다음에, 참조 픽쳐로서 이용되는 모든 픽쳐를 P 픽쳐와 B 픽쳐로 분할하여 관리하는 경우의 제 4 예를 도 14를 이용하여 설명한다.
메모리 관리에 대해서는, 도 11에 나타내는 제 1 예와 마찬가지이기 때문에 그 설명은 생략한다.
이 경우, 참조 픽쳐 정보의 부가 방법으로서는, 부호화하는 픽쳐마다 P 픽쳐용 메모리 영역과 B 픽쳐용 메모리 영역 중 어디에 저장되어 있는 픽쳐를 우선하는지를 결정하여, 참조 픽쳐 정보를 부가하는 방법이 이용된다.
구체적으로는, 예컨대, 대상 픽쳐에 시간적으로 가장 가까운 참조 픽쳐의 종류에 따라서, P 픽쳐용 메모리 영역과 B 픽쳐용 메모리 영역 중 어느 메모리 영역에 저장되어 있는 픽쳐를 우선적으로 번호 부여를 실행하는지를 결정하면 된다.
픽쳐 P13의 부호화에서는, B 픽쳐가 참조 픽쳐로서 이용되지 않기 때문에, P 픽쳐용 메모리 영역에 저장되어 있는 픽쳐를 우선적으로 번호 부여를 행한다. 따라서, 픽쳐 P10에는 참조 픽쳐 번호 [0], 픽쳐 P7에는 참조 픽쳐 번호 [1], 픽쳐 P4에는 참조 픽쳐 번호 [2]가 부여된다. 또한 이 경우, P 픽쳐용 메모리 영역의 픽쳐를 우선적으로 참조 픽쳐 번호의 부여를 하고 있는 것을 나타내는 정보를 픽쳐의 헤더에 기술한다. 상기 도 3, 도 11∼도 14에 나타내는 참조 픽쳐 번호의 할당 방법에서는, 참조 픽쳐 번호의 값이 작은 것일수록, 참조 픽쳐 번호를 나타내는 부호의 부호 길이를 짧은 것으로 한다. 일반적으로, 대상 픽쳐에 대하여 시간적으로 가까운 픽쳐일수록 참조 픽쳐로서 이용될 확률이 높기 때문에, 이와 같이 참조 픽쳐 번호를 나타내는 부호의 부호 길이를 결정함으로써, 참조 픽쳐 번호를 표현하는 부호의 전체의 부호량을 작게 할 수 있다.
이상과 같이, 프레임 메모리의 관리 방법 및 참조 픽쳐 번호의 할당 방법에 대해서 도 3, 도 11∼도 14에 나타내는 5가지의 방법을 나타내었지만, 이들 5가지의 방법 중 어느 하나를 미리 선택하여 사용하더라도 된다. 또한, 이들 5가지의 방법 중 복수의 방법을 전환하여 사용하도록 하더라도 된다. 단, 복수의 방법을 전환하여 사용하는 경우에는, 어떤 방법을 사용하고 있는지라는 정보를 예컨대 헤더 정보로서 기술하는 것이 바람직하다.
또한, 헤더 정보로서, P 픽쳐가 3개의 참조 후보 픽쳐를 이용하여 픽쳐간 예측 부호화되어 있는 것을 나타내는 정보를 기술하는 것에 의해, 본 실시예 1의 동화상 부호화 장치(10)에 의해 생성된 부호열 Bs를 복호화할 때에, 어느 정도의 프레임 메모리가 필요해지는지를 알 수 있다. 이들 헤더 정보는 시퀀스 전체의 헤더에 기술하더라도 무방하고, GOP(Group of pictures)와 같은 복수 픽쳐마다의 헤더, 혹은 픽쳐의 헤더에 기술하더라도 된다.
계속해서, 픽쳐 B11의 부호화 시의, 프레임 메모리의 관리 방법 및 참조 픽쳐 정보의 할당 방법으로서, 도 3에 나타내는 방법 이외의 방법(참조 후보 픽쳐를 P 픽쳐와 B 픽쳐로 분할하여 관리하는 방법)에 대하여 설명한다.
먼저, 참조 후보 픽쳐를 P 픽쳐와 B 픽쳐로 분할하여 관리하는 제 1 예에 대해 도 11을 이용해서 설명한다.
픽쳐 B11의 부호화가 개시될 때에는, 프레임 메모리(117)에는 P 픽쳐용 메모리 영역에 픽쳐 P4, P7, P10, P13이, B 픽쳐용 메모리 영역에 픽쳐 B8, B9가 유지 되어 있다. 그리고, 픽쳐 B11은, 픽쳐 P7, B9, P10을 전방 참조의 후보 픽쳐로서 이용하고, 픽쳐 P13을 후방 참조의 후보 픽쳐로서 이용하여 부호화되며, 픽쳐 B8이 유지되어 있던 메모리 영역에 부호화된 픽쳐 B11이 유지된다. 이것은, 픽쳐 B8은, 픽쳐 B11 이후의 픽쳐의 부호화에서는 참조 픽쳐로서 이용되지 않기 때문이다.
이 경우, 참조 픽쳐 정보, 즉 전방 움직임 벡터가 픽쳐 P7, B9, P10 중 어느 하나의 참조 후보 픽쳐를 참조하여 얻어진 움직임 벡터인지를 식별하기 위한 정보를 각 픽쳐에 할당하는 방법으로서는, 도 3에 나타내는 할당 방법의 예와 마찬가지로, 참조 후보 픽쳐에 대하여 대상 픽쳐에 시간적으로 가장 가까운 것부터 순번대로 참조 픽쳐 번호를 부여하는 방법이 이용된다.
즉, 대상 픽쳐(픽쳐 B11)의 1매 전의 후보 픽쳐(픽쳐 P10)에는 참조 픽쳐 번호 [0]이 부여되고, 대상 픽쳐의 2매 전의 후보 픽쳐(픽쳐 B9)에는 참조 픽쳐 번호 [1]이 부여된다. 대상 픽쳐의 3매 전의 후보 픽쳐(픽쳐 P7)에는 참조 픽쳐 번호 [3]이 부여된다.
다음에, 픽쳐 B11의 부호화 시에, 참조 후보 픽쳐를 P 픽쳐와 B 픽쳐로 분할하여 관리하는 제 2 예에 대해 도 12를 이용하여 설명한다.
이 예에서는, 메모리 관리에 대해서는 도 11에서 설명한 제 1 예와 마찬가지이기 때문에 설명은 생략한다.
이 경우, 참조 픽쳐 정보의 부가 방법으로서는, P 픽쳐용 메모리 영역에 저장되어 있는 픽쳐를 우선적으로 번호 부여를 행하는 방법이 이용된다. 따라서, 픽쳐 P10에는 참조 픽쳐 번호 [0], 픽쳐 P7에는 참조 픽쳐 번호 [1], 픽쳐 B9에는 참 조 픽쳐 번호 [2]가 부여된다.
다음에, 픽쳐 B11의 부호화 시에, 참조 후보 픽쳐를 P 픽쳐와 B 픽쳐로 분할하여 관리하는 제 3 예에 대해 도 13을 이용하여 설명한다.
이 제 3 예에서는, 메모리 관리에 대해서는 도 12에 나타내는 제 1 예와 마찬가지이기 때문에 설명은 생략한다.
이 경우, 참조 픽쳐 번호의 부가 방법으로서는, B 픽쳐용 메모리 영역에 저장되어 있는 픽쳐를 우선적으로 번호 부여를 행하는 방법이 이용된다. 따라서, 픽쳐 B9에는 참조 픽쳐 번호 [0], 픽쳐 P10에는 참조 픽쳐 번호 [1], 픽쳐 P7에는 참조 픽쳐 번호 [2]가 부여된다.
다음에, 픽쳐 B11의 부호화 시에, 참조 후보 픽쳐를 P 픽쳐와 B 픽쳐로 분할하여 관리하는 제 4 예에 대해 도 14를 이용하여 설명한다.
이 제 4 예에서는, 메모리 관리에 대해서는 도 11에 나타내는 제 1 예와 마찬가지이기 때문에 설명은 생략한다.
이 경우, 참조 픽쳐 번호의 부가 방법으로서는, 부호화하는 픽쳐마다 P 픽쳐용 메모리 영역과 B 픽쳐용 메모리 영역 중 어느 영역에 저장되어 있는 픽쳐를 우선할지를 결정하여, 참조 픽쳐 정보를 부가하는 방법이 이용된다.
구체적으로는, 예컨대, 부호화 대상으로 되는 대상 픽쳐에 대하여 시간적으로 가장 가까운 참조 후보 픽쳐의 종류에 따라서, 어느 메모리를 우선적으로 번호 부여를 행할지를 결정한다.
픽쳐 B11의 부호화에서는, 대상 픽쳐에 대하여 시간적으로 가장 가까운 전방 참조 픽쳐가 픽쳐 P10이기 때문에, P 픽쳐용 메모리 영역에 저장되어 있는 픽쳐를 우선적으로 번호 부여를 행한다.
따라서, 픽쳐 P10에는 참조 픽쳐 번호 [0], 픽쳐 P7에는 참조 픽쳐 번호 [1], 픽쳐 B9에는 참조 픽쳐 번호 [2]가 부여된다. 또한 이 경우, P 픽쳐용 메모리 영역의 픽쳐를 우선적으로 참조 픽쳐 번호의 부여를 하고 있는 것을 나타내는 정보를 픽쳐의 헤더에 기술한다.
또, 픽쳐 B11의 부호화 시에 참조 픽쳐 번호를 할당하는 방법(도 3, 도 11∼도 14에 나타내는 5가지의 방법)에서는, 픽쳐 P13의 부호화의 경우와 마찬가지로, 참조 픽쳐 번호의 값이 작은 것일수록, 참조 픽쳐 번호를 표시하는 부호의 부호 길이를 짧은 것으로 한다.
또한, B 픽쳐 B11의 부호화에서는, P 픽쳐 P13의 부호화의 경우와 마찬가지로, 상술한 5가지의 할당 방법 중 어느 하나를 미리 선택하여 사용하더라도 된다. 또한, 이들 5가지의 방법 중의 복수의 방법을 전환하여 사용하도록 하더라도 된다. 단, 복수의 방법을 전환하여 사용하는 경우에는, 어떤 방법을 사용하고 있는지라는 정보를 예컨대 헤더 정보로서 기술하는 것이 바람직하다.
또한 헤더 정보로서, B 픽쳐가 전방 B 픽쳐도 참조 후보 픽쳐로서 이용하여 픽쳐간 예측 부호화 처리가 실시되고 있는 것, 및 B 픽쳐의 부호화 시에 이용하는 전방 참조의 후보 픽쳐가 2개의 I 또는 P 픽쳐와, 1개의 B 픽쳐인 것을 나타내는 정보를 기술하는 것에 의해, 본 실시예 1의 동화상 부호화 장치(10)에 의해 생성된 부호열을 복호화할 때에, 어느 정도의 기억 용량을 갖는 프레임 메모리가 필요해지 는지를 알 수 있다. 이들 헤더 정보는 시퀀스 전체의 헤더에 기술하더라도 되고, 또한, GOP(Group of pictures)와 같은 복수 픽쳐마다의 헤더, 혹은 픽쳐의 헤더에 기술하더라도 된다.
마지막으로, 픽쳐 B12의 부호화 시의, 프레임 메모리의 관리 방법 및 참조 픽쳐 정보의 할당 방법으로서, 도 3에 나타내는 방법 이외의 방법(참조 후보 픽쳐를 P 픽쳐와 B 픽쳐로 분할하여 관리하는 방법)에 대해 설명한다.
단, 도 11∼도 13에 나타내는 제 1 예∼제 3 예에 대해서는, 픽쳐 B11의 부호화의 경우와 마찬가지이기 때문에, 설명은 생략한다.
그래서, 픽쳐 B12에 대해서는, 참조 후보 픽쳐를 P 픽쳐와 B 픽쳐로 분할하여 관리하는 제 4 예만, 도 14를 이용해서 설명한다.
이 제 4 예에서는, 메모리 관리에 대해서는, 픽쳐 B11의 부호화 시에 참조 후보 픽쳐를 P 픽쳐와 B 픽쳐로 분할하여 관리하는 제 1 예와 마찬가지이기 때문에 설명은 생략한다.
이 경우, 참조 픽쳐 정보, 즉 전방 움직임 벡터가 픽쳐 P7, P10, B11 중 어느 하나의 참조 후보 픽쳐를 참조하여 얻어진 움직임 벡터인지를 식별하기 위한 정보를 각 픽쳐에 할당하는 방법으로서는, 부호화하는 픽쳐마다 P 픽쳐용 메모리 영역과 B 픽쳐용 메모리 영역 중 어느 영역에 저장된 후보 픽쳐를 우선하는지를 결정하는 방법이 이용된다.
구체적으로는 예컨대, 픽쳐 B12의 부호화에서는, 대상 픽쳐에 시간적으로 가장 가까운 참조 픽쳐의 종류에 따라서, 어떤 메모리 영역의 후보 픽쳐를 우선적으 로 번호 부여를 행하는지를 결정한다.
픽쳐 B12의 부호화에서는, 대상 픽쳐(픽쳐 B12)에 시간적으로 가장 가까운 전방 참조의 후보 픽쳐가 픽쳐 B11이기 때문에, B 픽쳐용 메모리 영역에 저장되어 있는 픽쳐를 우선적으로 번호 부여가 행하여진다.
따라서, 픽쳐 B11에는 참조 픽쳐 번호 [0], 픽쳐 P10에는 참조 픽쳐 번호 [1], 픽쳐 P7에는 참조 픽쳐 번호 [2]가 부여된다. 또한 이 경우, B 픽쳐용 메모리 영역의 픽쳐를 우선적으로 참조 픽쳐 번호의 부여를 하고 있는 것을 나타내는 정보를 픽쳐의 헤더에 기술한다.
또한, 헤더 정보로서, 픽쳐 B11을 부호화하는 경우와 마찬가지로, B 픽쳐가 전방 B 픽쳐도 참조 후보 픽쳐로서 이용하여 픽쳐간 예측 부호화 처리가 실시되고 있는 것, 및 B 픽쳐의 부호화 시에 이용하는 전방 참조의 후보 픽쳐가 2개의 I 또는 P 픽쳐와 하나의 B 픽쳐인 것을 나타내는 정보를 기술한다.
또한, 상기 실시예 1에서는 프레임 메모리의 관리 방법의 5가지의 예(도 3, 도 11∼도 14)를, P 픽쳐에 대한 참조 후보 픽쳐의 수가 3이고, B 픽쳐에 대한 전방 참조의 후보 픽쳐가 2개의 P 픽쳐와 1개의 B 픽쳐인 경우에 대하여 설명했지만, 프레임 메모리의 관리 방법의 5가지의 예는, 각각 참조 후보 픽쳐의 수가 실시예 1의 것과는 다른 경우에도 적용할 수 있다. 이와 같이 참조 후보 픽쳐의 수가 다른 경우에는, 프레임 메모리의 용량이 실시예 1의 것과 다른 것은 말할 필요도 없다.
또한, 상기 실시예 1에서는, 참조 후보 픽쳐를 P 픽쳐와 B 픽쳐로 나누어 프레임 메모리를 관리하는 방법(도 11∼도 14에서 나타내는 4가지의 예)에서는, P 픽 쳐를 P 픽쳐용 메모리 영역에 저장하고, B 픽쳐를 B 픽쳐용 메모리 영역에 저장하는 경우를 나타내었지만, 픽쳐를 축적하는 메모리부에는, H.263++로 정의되어 있는 단기간 픽쳐용 메모리 및 장기간 픽쳐 메모리를 이용하더라도 된다. 예컨대, 단기간 픽쳐용 메모리를 P 픽쳐용 메모리 영역으로서 이용하고, 장기간 픽쳐 메모리를 B 픽쳐용 메모리 영역으로서 이용하는 방법이 있다.
(실시예 2)
다음에 본 발명의 실시예 2에 대하여 설명한다.
도 15는 본 발명의 실시예 2에 따른 동화상 복호화 장치를 설명하기 위한 블럭도이다.
본 실시예 2의 동화상 복호화 장치(20)는 상기 실시예 1의 동화상 부호화 장치(10)로부터 출력된 부호열 Bs를 복호화하는 것이다.
즉, 이 동화상 복호화 장치(20)는, 상기 부호열 Bs를 해석하여 각종 데이터의 추출을 하는 부호열 해석부(201)와, 해당 부호열 해석부(201)로부터 출력된 부호화 데이터 Ed를 복호화하여 예측 오차 데이터 PDd를 출력하는 예측 오차 복호화부(202)와, 해당 부호열 해석부(201)에 의해 추출된 모드 선택에 관한 모드 정보(부호화 모드) Ms에 근거하여 스위치 제어 신호 Cs를 출력하고, 또한 해당 모드 정보(부호화 모드) Ms를 출력하는 모드 복호부(223)를 갖고 있다.
동화상 복호화 장치(20)는, 복호화된 화상 데이터 DId를 저장하고, 또한 저장된 화상 데이터를 참조 데이터 Rd 혹은 출력 화상 데이터 Od로서 출력하는 참조 픽쳐용 메모리(207)와, 해당 참조 픽쳐용 메모리(207)로부터 판독된 데이터(참조 화상 데이터) Rd, 상기 부호열 해석부(201)에 의해 추출된 움직임 벡터 MV의 정보, 및 상기 모드 복호부(223)로부터의 부호화 모드 Ms에 근거하여, 예측 데이터 Pd를 생성하는 움직임 보상 복호화부(205)와, 상기 예측 오차 복호화부(202)의 출력 데이터 PDd에 상기 예측 데이터 Pd를 가산하여 복호 데이터 Ad를 생성하는 가산 연산부(208)를 갖고 있다.
동화상 복호화 장치(20)는, 상기 부호열 해석부(201)에 의해 추출된 헤더 정보 Ih에 근거하여 메모리 제어 신호 Cm에 의해 참조 픽쳐용 메모리(207)를 제어하는 메모리 제어부(204)와, 상기 예측 오차 복호화부(202)와 가산 연산부(208) 사이에 마련된 선택 스위치(209)와, 해당 가산 연산부(208)와 참조 픽쳐용 메모리(207) 사이에 마련된 선택 스위치(210)를 갖고 있다.
여기서, 상기 선택 스위치(209)는 하나의 입력 단자 Te와 2개의 출력 단자 Tf1, Tf2를 갖고, 상기 스위치 제어 신호 Cs에 따라서 해당 입력 단자 Te가 상기 양 출력 단자 Tf1, Tf2의 한쪽에 접속되는 것이다. 상기 선택 스위치(210)는 2개의 입력 단자 Tg1, Tg2와, 하나의 출력 단자 Th를 갖고, 상기 스위치 제어 신호 Cs에 따라서 해당 출력 단자 Th가 상기 2개의 입력 단자 Tg1, Tg2의 한쪽에 접속되는 것이다. 또한, 선택 스위치(209)에서는, 입력 단자 Te에 예측 오차 복호화부(202)의 출력 데이터 PDd가 입력되고, 한쪽의 출력 단자 Tf1로부터는 선택 스위치(210)의 입력 단자 Tg1에 상기 예측 오차 복호화부(202)의 출력 데이터 PDd가 출력되며, 다른쪽의 출력 단자 Tf2로부터는 상기 예측 오차 복호화부(202)의 출력 데이터 PDd 가 가산 연산부(208)에 출력된다. 상기 선택 스위치(210)에서는, 한쪽의 입력 단자 Tg1에는 상기 예측 오차 복호화부(202)의 출력 데이터 PDd가 입력되고, 다른쪽의 입력 단자 Tg2에는 가산 연산부(208)의 출력 데이터 Ad가 입력되며, 출력 단자 Th로부터는 해당 출력 데이터 PDd 및 Ad의 한쪽이 복호 화상 데이터 DId로서 참조 픽쳐용 메모리(207)에 출력된다.
또한, 상기 동화상 복호화 장치(20)는, 움직임 보상 복호부(205)로부터의 움직임 벡터 MV를 기억하고, 기억한 움직임 벡터 MV를 상기 움직임 보상 복호부(205)로 출력하는 움직임 벡터 기억부(226)를 갖고 있다.
다음에 동작에 대하여 설명한다.
또, 이하의 설명에서는, 복호화 대상으로 되는 대상 픽쳐에 대하여 표시 시간축 상에서 전방 혹은 후방에 위치하는 픽쳐를, 대상 픽쳐에 대하여 시간적으로 전방 혹은 후방에 있는 픽쳐, 또는, 간단히 전방 혹은 후방의 픽쳐라고도 한다.
도 15에 나타내는 동화상 복호화 장치(20)에는 실시예 1의 동화상 부호화 장치(10)에 의해 생성된 부호열 Bs가 입력된다. 여기서는, P 픽쳐의 부호열은 P 픽쳐에 대하여 시간적으로 전방 혹은 후방에 위치하는 근방의 3개의 후보 픽쳐(I 또는 P 픽쳐) 중 하나를 참조하여 픽쳐간 예측 부호화를 실시해서 얻어진 것이다. 또한, B 픽쳐의 부호열은 해당 B 픽쳐에 대하여 전방 혹은 후방에 위치하는 4개의 후보 픽쳐(즉 시간적으로 최근방에 있는 전방의 2개의 I 또는 P 픽쳐와, 시간적으로 최근방에 있는 하나의 B 픽쳐와, 시간적으로 후방에 위치하는 I 또는 P 픽쳐) 중 2개를 참조해서 픽쳐간 예측 부호화를 실시하여 얻어진 것이다. 여기서, 처리 대상의 B 픽쳐에 대한 4개의 후보 픽쳐에는 해당 대상 B 픽쳐에 대하여 시간적으로 전방에 있는 다른 B 픽쳐가 포함되어 있다.
또, 처리 대상으로 되는 P 픽쳐 혹은 B 픽쳐가 어떠한 후보 픽쳐를 참조하여 부호화되어 있는지는 부호열의 헤더 정보로서 기술하여 판단하더라도 무방하다. 따라서, 처리 대상 픽쳐의 부호화가 어떠한 픽쳐를 참조하여 행해졌는지는 해당 헤더 정보를 부호열 해석부(201)에 의해 추출함으로써 알 수 있다. 이 헤더 정보 Ih는 메모리 제어부(204)에 대하여 출력된다. 이 경우의 부호열 중의, 픽쳐에 대응하는 부호화 데이터의 배열은, 도 16(a)과 같이, 부호화순으로 되어 있다.
구체적으로는, 부호열 Bs 중의 픽쳐에 대응하는 부호화 데이터는 픽쳐 P4, B2, B3, P7, B5, B6, P10, B8, B9, P13, B11, B12, P16, B14, B15의 순으로 재배열되어 있다. 바꿔 말하면, 이 픽쳐의 배열은 각 픽쳐를 복호 시간 Tdec을 나타내는 복호화 시간축 Y 상에서 복호 시간이 빠른 것부터 순서대로 배치한 배열(복호순의 배열)로 되어 있다.
또, 도 16(b)는 상기 복호순으로 배열되어 있는 픽쳐를 표시순으로 재배열한 픽쳐의 배열을 나타내고 있다. 즉, 도 16(b)에 나타내는 픽쳐 B2, B3, P4, B5, B6, P7, B8, B9, P10, B11, B12, P13, B14, B15, P16의 배열은 각 픽쳐를 표시 시간 Tdis를 나타내는 표시 시간축 X 상에서 표시 시간이 빠른 것부터 순서대로 배치한 배열(표시순의 배열)로 되어 있다.
이하에서는, 픽쳐 P13, B11, B12의 복호화 처리에 대하여 순서대로 설명한다.
<픽쳐 P13의 복호화 처리>
픽쳐 P13의 부호열은 부호열 해석부(201)에 입력된다. 부호열 해석부(201)는 입력된 부호열로부터 각종 데이터를 추출하는 처리를 한다. 여기서 각종 데이터란, 모드 선택을 하기 위한 정보, 즉 부호화 모드 Ms를 나타내는 정보(이하 간단히 부호화 모드라고도 함)나 움직임 벡터 MV를 나타내는 정보(이하 간단히 움직임 벡터라고도 함), 헤더 정보, 부호화 데이터(화상 정보) 등이다. 추출된 부호화 모드 Ms는 모드 복호부(203)에 출력된다. 또한, 추출된 움직임 벡터 MV는 움직임 보상 복호부(205)에 출력된다. 또한, 부호열 해석부(201)에 의해 추출된 예측 오차 부호화 데이터 Ed는 예측 오차 복호화부(202)에 출력된다.
모드 복호부(203)는 부호열로부터 추출된 부호화 모드 Ms에 근거하여 스위치(209, 210)의 전환 제어를 한다. 부호화 모드가 픽쳐내 부호화를 나타내는 경우에는, 스위치(209)는 그 입력 단자 Te가 출력 단자 Tf1에 접속되고, 스위치(210)는 그 출력 단자 Th가 입력 단자 Tg1에 접속되도록 제어된다. 또한, 부호화 모드가 픽쳐간 예측 부호화를 나타내는 경우에는, 스위치(209)는 그 입력 단자 Te가 출력 단자 Tf2에 접속되고, 스위치(210)는 그 출력 단자 Th가 입력 단자 Tg2에 접속되도록 제어된다. 또한, 모드 복호부(203)는 부호화 모드 Ms를 움직임 보상 복호부(205)에 출력한다.
이하에서는 부호화 모드가 픽쳐간 예측 부호화를 나타내는 경우에 대하여 설명한다.
예측 오차 복호화부(202)는 입력된 부호화 데이터 Ed를 복호화하여, 예측 오 차 데이터 PDd를 생성한다. 생성된 예측 오차 데이터 PDd는 스위치(209)에 출력된다. 이 경우, 스위치(209)는 그 입력 단자 Te가 출력 단자 Tf2에 접속되어 있기 때문에, 예측 오차 데이터 PDd는 가산 연산부(208)에 출력된다.
움직임 보상 복호부(205)는 해석부(201)에 의해 추출된 움직임 벡터 MV 및 참조 픽쳐 번호 Rp에 근거하여 움직임 보상을 행하여 참조 픽쳐용 메모리(207)로부터 움직임 보상 화상을 취득한다. 이 움직임 보상 화상은 참조 픽쳐에서의, 복호 대상 블럭에 대응하는 영역의 화상이다.
픽쳐 P13은 픽쳐 P4, P7, P10을 전방 참조의 후보 픽쳐로서 이용하여 부호화가 실시된 것이며, 픽쳐 P13에 대한 복호화 처리 시에는, 이들 후보 픽쳐가 이미 복호화되어 참조 픽쳐용 메모리(207)에 유지되어 있다.
그래서, 움직임 보상 복호부(205)는, 참조 프레임 번호 Rp로부터, 상기 픽쳐 P13의 대상 블럭이 상기 픽쳐 P4, P7, P10 중 어느 픽쳐를 참조 픽쳐로서 이용하여 부호화된 것인지를 결정한다. 그리고, 움직임 보상 복호부(205)는 움직임 벡터에 근거하여, 참조 픽쳐용 메모리(207)로부터 참조 픽쳐에서의 대상 블럭에 대응하는 영역의 화상을 움직임 보상 화상으로서 취득한다.
참조 픽쳐용 메모리(207)에서 유지하고 있는 픽쳐의 시간적 변화의 모양, 및 참조 픽쳐의 결정 방법을 도 3을 이용하여 설명한다.
참조 픽쳐용 메모리(207)의 제어는 메모리 제어부(204)에 의해서 부호열의 헤더 정보로부터 추출된 P 픽쳐 및 B 픽쳐가 어떠한 참조를 하여 얻어진 것인지를 나타내는 정보(참조 픽쳐 정보)에 근거하여 행하여진다.
도 3에 도시하는 바와 같이, 참조 픽쳐용 메모리(207)는 5 픽쳐분의 메모리 영역(#1)∼(#5)을 갖고 있다. 픽쳐 P13의 복호화가 개시될 때에는, 참조 픽쳐용 메모리에는 픽쳐 B8, P4, P7, P10, B9가 유지되어 있다. 그리고, 픽쳐 P13은 픽쳐 P4, P7, P10을 참조 픽쳐의 후보로서 이용하여 복호화되고, 픽쳐 B8이 유지되어 있던 메모리 영역에, 복호화된 픽쳐 P13이 유지된다. 이것은, 픽쳐 P4, P7, P10이 픽쳐 P13 이후(픽쳐 P13을 포함함)의 픽쳐에 대한 복호화 시에 참조 픽쳐의 후보로서 이용되지만, 픽쳐 B8은 픽쳐 P13 이후(픽쳐 P13을 포함함)의 픽쳐에 대한 복호화 시에는 참조 픽쳐로서 이용되지 않기 때문이다.
또, 도 3 중, 동그라미로 표시되어 있는 픽쳐는, 대상 픽쳐의 복호화가 완료된 시점에서, 마지막으로 참조 픽쳐용 메모리(207)에 축적된 픽쳐(대상 픽쳐)이다.
이 경우, 픽쳐 P13의 대상 블럭의 움직임 벡터가 어떤 픽쳐를 참조하여 얻어진 것인지는 움직임 벡터에 부가되어 있는 참조 픽쳐 정보로부터 결정할 수 있다.
여기서는, 참조 픽쳐 정보는 구체적으로는 참조 픽쳐 번호이다. 그리고, 픽쳐 P13에 대한 참조 후보 픽쳐에 대하여 참조 픽쳐 번호가 부여된다. 이 때, 참조 후보 픽쳐에 할당되는 참조 픽쳐 번호는 참조 후보 픽쳐가 대상 픽쳐(픽쳐 P13)에 시간적으로 가까울수록 값이 작은 번호로 된다.
즉, 픽쳐 P13의 대상 블럭을 부호화 시에, 픽쳐 P10을 참조한 경우에는, 대상 픽쳐의 1매 전의 후보 픽쳐(픽쳐 P10)가 참조 픽쳐로서 이용된 것을 나타내는 정보(예컨대 참조 픽쳐 번호 [0])가 대상 블럭의 부호열 중에 기술되어 있다. 또한, 대상 블럭을 부호화 시에, 픽쳐 P7을 참조한 경우에는, 대상 픽쳐의 2매 전의 후보 픽쳐가 참조 픽쳐로서 이용된 것을 나타내는 정보(예컨대 참조 픽쳐 번호 [1])가 픽쳐 P4를 참조한 경우에는, 대상 픽쳐의 3매 전의 후보 픽쳐가 참조 픽쳐로서 이용된 것을 나타내는 정보(예컨대 참조 픽쳐 번호 [2])가 대상 블럭의 부호열 중에 부가되어 있다.
이 참조 픽쳐 번호에 의해서, 대상 블럭의 부호화 시에 어떤 후보 픽쳐가 참조 픽쳐로서 이용되고 있는지를 알 수 있다.
이렇게 하여, 움직임 보상 복호부(205)는 움직임 벡터와 참조 픽쳐 정보를 이용하여 참조 픽쳐용 메모리(207)로부터 움직임 보상 화상, 즉 참조 픽쳐에서의, 대상 블럭에 대응하는 영역의 화상을 취득한다.
이렇게 하여 생성된 움직임 보상 화상은 가산 연산부(208)에 출력된다.
또한, 움직임 보상 복호부(205)는, P 픽쳐의 복호화를 하는 경우에는, 움직임 벡터 MV 및 참조 픽쳐 정보 Rp를 움직임 벡터 기억부(226)에 출력한다.
가산 연산부(208)는 예측 오차 데이터 PDd와 움직임 보상 화상의 데이터(예측 데이터) Pd를 가산하여 복호 데이터 Ad를 생성한다. 생성된 복호 데이터 Ad는 스위치(210)를 거쳐서 복호 화상 데이터 DId로서 참조 픽쳐용 메모리(207)에 출력된다.
이상과 같이 하여, 픽쳐 P13의 블럭이 순서대로 복호화된다. 픽쳐 P13의 블럭이 모두 복호화되면, 픽쳐 B11의 복호화가 행하여진다.
<픽쳐 B11의 복호화 처리>
부호열 해석부(201), 모드 복호화부(203) 및 예측 오차 복호화부(202)의 동작은 픽쳐 P13의 복호화 처리 시와 마찬가지로 행하여지기 때문에, 그 설명은 생략한다.
움직임 보상 복호부(205)는 입력된 움직임 벡터 등의 정보로부터 움직임 보상 데이터를 생성한다. 부호열 해석부(201)로부터 움직임 보상 복호부(205)로 입력되는 것은 움직임 벡터 및 참조 픽쳐 번호이다. 픽쳐 B11은 전방 참조의 후보 픽쳐로서 픽쳐 P7, B9 및 P10을 이용하고, 또한 후방 참조의 후보 픽쳐로서 픽쳐 P13을 이용하는 예측 부호화 처리에 의해 얻어진 것이다. 이들 참조 후보 픽쳐는 대상 픽쳐의 복호화 시점에서 이미 복호화 처리가 실시되어 참조 픽쳐용 메모리(207)에 축적되어 있다.
이하, 참조 픽쳐용 메모리(207)에서 유지하고 있는 픽쳐의 시간적 변화의 모양, 및 참조 픽쳐의 결정 방법을 도 3을 이용하여 설명한다.
참조 픽쳐용 메모리(207)의 제어는 메모리 제어부(204)에 의해서, 부호열의 헤더 정보로부터 추출된, P 픽쳐 및 B 픽쳐가 어떠한 참조를 하여 부호화되어 있는지라는 정보 Ih에 근거하여 행하여진다.
픽쳐 B11의 복호화가 개시될 때에는, 도 3에 도시하는 바와 같이, 참조 픽쳐용 메모리에는 픽쳐 P13, P4, P7, P10, B9가 유지되어 있다. 그리고, 픽쳐 B11에는, 픽쳐 P7, B9, P10을 전방 참조의 후보 픽쳐로서, 픽쳐 P13을 후방 참조 픽쳐로서 이용하여 복호화 처리가 실시되고, 픽쳐 P4가 유지되어 있던 메모리 영역에 복 호화된 픽쳐 B11이 유지된다. 이것은, 픽쳐 P4는 픽쳐 B11 이후의 픽쳐의 복호화 시에, 참조 픽쳐의 후보로서 이용되지 않기 때문이다.
이 경우, 전방 움직임 벡터가 어떤 후보 픽쳐를 참조하여 얻어진 것인지는 움직임 벡터에 부가되어 있는 참조 픽쳐 정보로부터 결정할 수 있다.
즉, 픽쳐 B11의 대상 블럭을 부호화 시에, 픽쳐 P10을 참조한 경우에는, 대상 픽쳐의 1매 전의 후보 픽쳐(픽쳐 P10)가 참조 픽쳐로서 이용된 것을 나타내는 정보(예컨대 참조 픽쳐 번호 [0])가 대상 블럭의 부호열 중에 기술되어 있다. 또한, 대상 블럭을 부호화 시에, 픽쳐 B9를 참조한 경우에는 대상 픽쳐의 2매 전의 후보 픽쳐를 참조 픽쳐로서 이용한 것을 나타내는 정보(예컨대 참조 픽쳐 번호 [1])가, 픽쳐 P7을 참조한 경우에는 대상 픽쳐의 3매 전의 후보 픽쳐를 참조 픽쳐로서 이용한 것을 나타내는 정보(예컨대 참조 픽쳐 번호 [2])가, 대상 블럭의 부호열 중에 부가되어 있다.
따라서, 이 참조 픽쳐 번호에 따라서, 대상 블럭의 부호화 시에 어떤 후보 픽쳐가 참조 픽쳐로서 이용되고 있는지를 알 수 있다.
움직임 보상 복호부(205)는, 모드 선택이 쌍방향 예측의 픽쳐 예측 부호화인 경우에는, 참조 픽쳐 번호로부터 픽쳐 P7, B9 및 P10 중 어느 하나의 픽쳐를 전방 참조하고 있는지를 결정한다. 그리고, 전방 움직임 벡터에 근거하여 전방 움직임 보상 화상을 참조 픽쳐용 메모리(207)로부터 취득하고, 또한, 후방 움직임 벡터에 근거하여 후방 움직임 보상 화상을 참조 픽쳐용 메모리(207)로부터 취득한다.
그리고, 움직임 보상 복호부(205)는 전방 움직임 보상 화상과 후방 움직임 보상 화상의 가산 평균에 의해 움직임 보상 화상을 생성한다.
다음에, 전방 및 후방 움직임 벡터를 이용하여 움직임 보상 화상을 생성하는 처리에 대해 설명한다.
(쌍방향 예측 모드)
도 17은 복호화 대상 픽쳐가 픽쳐 B11이고, 픽쳐 B11의 복호화 대상으로 되는 블럭(대상 블럭) BLa01에 대하여 쌍방향 예측 복호화를 하는 경우를 나타내고 있다.
먼저, 전방 참조 픽쳐가 픽쳐 P10이고, 후방 참조 픽쳐가 픽쳐 P13인 경우를 설명한다.
이 경우, 전방 움직임 벡터는 픽쳐 P10의, 블럭 BLa01에 대응하는 영역 CRe01을 나타내는 움직임 벡터 MVe01이다. 후방 움직임 벡터는 픽쳐 P13의, 블럭 BLa01에 대응하는 영역 CRg01을 나타내는 움직임 벡터 MVg01이다.
따라서, 움직임 보상 복호부(205)는, 전방 참조 화상으로서 픽쳐 P10에서의 영역 CRe01의 화상을, 후방 참조 화상으로서 픽쳐 P13에서의 영역 CRg01의 화상을 참조 픽쳐용 메모리(207)로부터 취득하여, 해당 양 영역 CRe01 및 CRg01의 화상에 대해 화상 데이터의 가산 평균을 실시해서 상기 대상 블럭 BLa01에 대한 움직임 보상 화상을 얻는다.
다음에, 전방 참조 픽쳐가 픽쳐 B9이고, 후방 참조 픽쳐가 픽쳐 P13인 경우를 설명한다.
이 경우, 전방 움직임 벡터는 픽쳐 B9의, 블럭 BLa01에 대응하는 영역 CRf01을 나타내는 움직임 벡터 MVf01이다. 후방 움직임 벡터는 픽쳐 P13의, 블럭 BLa01에 대응하는 영역 CRg01을 나타내는 움직임 벡터 MVg01이다.
따라서, 움직임 보상 복호부(205)는, 전방 참조 화상으로서 픽쳐 B9에서의 영역 CRf01의 화상을, 후방 참조 화상으로서 픽쳐 P13에서의 영역 CRg01의 화상을 참조 픽쳐용 메모리(207)로부터 취득하여, 해당 양 영역 CRf01 및 CRg01의 화상에 대해 화상 데이터의 가산 평균을 실시해서, 상기 대상 블럭 BLa01에 대한 움직임 보상 화상을 얻는다.
(다이렉트 모드)
또한, 부호화 모드가 다이렉트 모드인 경우에는, 움직임 보상 복호부(205)는 움직임 벡터 기억부(226)에 기억되어 있는, 대상 픽쳐 B11에 대한 후방 참조 픽쳐 P13의, 픽쳐에 대한 상대 위치가 대상 블럭과 동일한 블럭의 움직임 벡터(기준 움직임 벡터)를 취득한다. 움직임 보상 복호부(205)는 또한 이 기준 움직임 벡터를 이용하여 전방 참조 화상과 후방 참조 화상을 참조 픽쳐용 메모리(207)로부터 취득한다. 그리고, 움직임 보상 복호부(205)는 전방 참조 화상과 후방 참조 화상에 대하여 화상 데이터의 가산 평균을 실시해서, 상기 대상 블럭에 대한 움직임 보상 화상을 생성한다. 또, 이하의 설명에서는, 픽쳐에 대한 상대적인 위치가 하나의 픽쳐에서의 특정한 블럭과 동등한 다른 픽쳐에서의 블럭은 간단히 하나의 픽쳐의 특정한 블럭과 동일한 위치에 있는 블럭이라고도 한다.
도 18(a)는 픽쳐 B11의 블럭 BLa10을 픽쳐B11 직전의 픽쳐 P10을 참조하여 다이렉트 모드로 복호화하는 경우(다이렉트 모드 복호화의 제 1 예)를 나타내고 있다.
여기서, 블럭 BLa10의 다이렉트 모드에서의 복호화에 이용하는 기준 움직임 벡터는 블럭 BLa10의 복호화 시에 후방 참조되는 픽쳐(기준 픽쳐) P13의, 블럭 BLa10과 동일한 위치에 있는 블럭(기준 블럭) BLg10의 전방 움직임 벡터(기준 움직임 벡터) MVh10이다. 이 전방 움직임 벡터 MVh10은 픽쳐 B11 직전의 픽쳐 P10의, 기준 블럭 BLg10에 대응하는 영역 CRh10을 나타내는 것이다.
이 경우, 복호화 대상으로 되는 블럭 BLa10의 전방 움직임 벡터 MVk10에는 상기 픽쳐 P10의, 대상 블럭 BLa10에 대응하는 영역 CRk10을 나타내는, 상기 기준 움직임 벡터 MVh10과 평행한 움직임 벡터가 이용된다. 또한, 복호화 대상으로 되는 블럭 BLa10의 후방 움직임 벡터 MVi10에는 상기 픽쳐 P13의, 대상 블럭 BLa10에 대응하는 영역 CRi10을 나타내는, 상기 기준 움직임 벡터 MVh10과 평행한 움직임 벡터가 이용된다.
따라서, 움직임 보상 복호부(205)는, 전방 참조 화상으로서 전방 참조 픽쳐 P10의 영역 CRk10의 화상을, 후방 참조 화상으로서 후방 참조 픽쳐 P13의 영역 CRi10의 화상을 참조 픽쳐용 메모리(207)로부터 취득하여, 해당 양 화상에 대한 화상 데이터의 가산 평균에 의해 대상 블럭 BLa10에 대한 움직임 보상 화상(예측 화상)을 취득한다.
이 경우, 전방 움직임 벡터 MVk10의 크기(MVF) 및 후방 움직임 벡터 MVi10의 크기(MVB)는 상기 기준 움직임 벡터 MVh10의 크기(MVR)를 이용하여 상기 (수학식 1), (수학식 2)에 의해 구해진다.
여기서, 각 움직임 벡터의 크기 MVF, MVB는 움직임 벡터의 수평 성분, 수직 성분의 각각을 표현하고 있는 것으로 한다.
또한, TRD는 픽쳐 B11의 대상 블럭 BLa10에 대한 후방 참조 픽쳐 P13과, 해당 후방 참조 픽쳐(기준 픽쳐)의 블럭(기준 블럭) BLg10의 복호화 시에 전방 참조되는 픽쳐 P10과의 시간적 거리이다. TRF는 픽쳐 B11과 그 직전의 참조 픽쳐 P10과의 시간적 거리, TRB는 픽쳐 B11과 후방 참조 픽쳐 P13의 블럭 BLg10이 참조하고 있는 픽쳐(픽쳐 P10)와의 시간적 거리이다.
도 18(b)는 픽쳐 B11의 블럭 BLa10을 픽쳐 B11 직전의 픽쳐 P10을 참조하여 다이렉트 모드로 복호화하는 경우(다이렉트 모드 복호화의 제 2 예)를 나타내고 있다.
이 다이렉트 모드 복호화의 제 2 예에서는, 도 18(a)에 나타내는 다이렉트 모드 복호화의 제 1 예와는 달리, 기준 블럭(즉 대상 블럭에 대한 후방 참조 픽쳐의, 대상 블럭과 동일한 위치의 블럭)의 복호화 시에 전방 참조된 픽쳐는 픽쳐 P7로 되어 있다.
즉, 블럭 BLa20의 다이렉트 모드에서의 복호화에 이용하는 기준 움직임 벡터는 블럭 BLa20의 복호화 시에 후방 참조되는 픽쳐 P13의, 블럭 BLa20과 동일한 위치에 있는 블럭 BLg20의 전방 움직임 벡터 MVh20이다. 이 전방 움직임 벡터 MVh20은 대상 픽쳐 B11의 전방에 위치하는 픽쳐 P7의, 기준 블럭 BLg20에 대응하는 영역 CRh20을 나타내는 것이다.
이 경우, 복호화 대상으로 되는 블럭 BLa20의 전방 움직임 벡터 MVk20에는 상기 픽쳐 P10의, 대상 블럭 BLa20에 대응하는 영역 CRk20을 나타내는, 상기 기준 움직임 벡터 MVh20과 평행한 움직임 벡터가 이용된다. 또한, 복호화 대상으로 되는 블럭 BLa20의 후방 움직임 벡터 MVi20에는, 상기 픽쳐 P13의, 대상 블럭 BLa20에 대응하는 영역 CRi20을 나타내는, 상기 기준 움직임 벡터 MVh20과 평행한 움직임 벡터가 이용된다.
따라서, 움직임 보상 복호부(205)는, 전방 참조 화상으로서 전방 참조 픽쳐 P10의 영역 CRk20의 화상을, 후방 참조 화상으로서 후방 참조 픽쳐 P13의 영역 CRi20의 화상을 참조 픽쳐용 메모리(207)로부터 취득하여, 해당 양 화상에 대한 화상 데이터의 가산 평균에 의해 대상 블럭 BLa20에 대한 움직임 보상 화상(예측 화상)을 취득한다.
이 경우의 전방 움직임 벡터 MVk20의 크기(MVF) 및 후방 움직임 벡터 MVi20의 크기(MVB)는 상기 기준 움직임 벡터 MVh20의 크기(MVR)를 이용하여, 상기 다이렉트 모드 복호화의 제 1 예와 마찬가지로, 상기 (수학식 1), (수학식 2)에 의해 구해진다.
도 19(a)는 픽쳐 B11의 블럭 BLa30을 픽쳐 B11 직전의 픽쳐 P10보다 전방에 위치하는 픽쳐 P7을 참조하여 다이렉트 모드로 복호화하는 경우(다이렉트 모드 복호화의 제 3 예)를 나타내고 있다.
이 다이렉트 모드 복호화의 제 3 예에서는, 도 18(a) 및 도 18(b)에 나타내 는 다이렉트 모드 복호화의 제 1 및 제 2 예와는 달리, 대상 블럭의 복호화 시에 전방 참조되는 픽쳐는 대상 픽쳐 직전의 픽쳐가 아니라, 기준 픽쳐의 기준 블럭(대상 블럭과 동일한 위치의 블럭)의 복호화 시에 전방 참조된 픽쳐로 되어 있다. 여기서, 기준 픽쳐는 대상 블럭의 복호화 시에 후방 참조되는 픽쳐이다.
즉, 블럭 BLa30의 다이렉트 모드에서의 복호화에 이용하는 기준 움직임 벡터는 블럭 BLa30의 복호화 시에 후방 참조되는 픽쳐 P13의, 블럭 BLa30과 동일한 위치에 있는 블럭 BLg30의 전방 움직임 벡터 MVh30이다. 이 전방 움직임 벡터 MVh30은 대상 픽쳐 B11의 전방에 위치하는 픽쳐 P7의, 기준 블럭 BLg30에 대응하는 영역 CRh30을 나타내는 것이다.
이 경우, 복호화 대상으로 되는 블럭 BLa30의 전방 움직임 벡터 MVk30에는 상기 픽쳐 P7의, 대상 블럭 BLa30에 대응하는 영역 CRk30을 나타내는, 상기 기준 움직임 벡터 MVh30과 평행한 움직임 벡터가 이용된다. 또한, 복호화 대상으로 되는 블럭 BLa30의 후방 움직임 벡터 MVi30에는 상기 픽쳐 P13의, 대상 블럭 BLa30에 대응하는 영역 CRi30을 나타내는, 상기 기준 움직임 벡터 MVh30과 평행한 움직임 벡터가 이용된다.
따라서, 움직임 보상 복호부(205)는, 전방 참조 화상으로서 전방 참조 픽쳐 P7의 영역 CRk30의 화상을, 후방 참조 화상으로서 후방 참조 픽쳐 P13의 영역 CRi30의 화상을 참조 픽쳐용 메모리(207)로부터 취득하고, 해당 양 화상에 대한 화상 데이터의 가산 평균에 의해 대상 블럭 BLa30에 대한 움직임 보상 화상(예측 화상)을 취득한다.
이 경우의 전방 움직임 벡터 MVk30의 크기(MVF) 및 후방 움직임 벡터 MVi30의 크기(MVB)는 상기 기준 움직임 벡터 MVh30의 크기(MVR)를 이용하여 상기 (수학식 2), (수학식 3)에 의해 구해진다.
또, 여기서, 블럭 BLg30의 복호화 시에 참조되는 픽쳐가 이미 참조 픽쳐용 메모리(207)로부터 삭제되어 있는 경우에는, 시간적으로 최근방에 위치하는 전방 픽쳐 P10을 다이렉트 모드 복호화의 제 3 예에서의 전방 참조 픽쳐로서 이용하면 된다. 이 경우의 다이렉트 모드 복호화의 제 3 예에서의 처리는 다이렉트 모드 복호화의 제 1 예와 마찬가지로 된다.
도 19(b)는 픽쳐 B11의 블럭 BLa40을, 크기가 0의 움직임 벡터를 이용하여 다이렉트 모드로 복호화하는 경우(다이렉트 모드 복호화의 제 4 예)를 나타내고 있다.
이 다이렉트 모드 복호화의 제 4 예는 도 18(a) 및 도 18(b)에 나타내는 다이렉트 모드 복호화의 제 1 및 제 2 예에서의 기준 움직임 벡터의 크기를 0으로 한 것이다.
이 경우, 복호화 대상으로 되는 블럭 BLa40의 전방 움직임 벡터 MVk40 및 후방 움직임 벡터 MVi40에는 크기가 0의 움직임 벡터가 이용된다.
즉, 상기 전방 움직임 벡터 MVk40은 픽쳐 P10의, 대상 블럭 BLa40과 동일한 위치에 위치하는, 대상 블럭과 동일 사이즈의 영역(블럭) CRk40을 나타낸다. 또한, 상기 후방 움직임 벡터 MVi40은 픽쳐 P13의, 대상 블럭 BLa40과 동일한 위치에 위치하는, 대상 블럭과 동일 사이즈의 영역(블럭) CRi40을 나타낸다.
따라서, 움직임 보상 복호부(205)는, 전방 참조 화상으로서 전방 참조 픽쳐 P10의 영역(블럭) CRk40의 화상을, 후방 참조 화상으로서 후방 참조 픽쳐 P13의 영역(블럭) CRi40의 화상을 참조 픽쳐용 메모리(207)로부터 취득하고, 해당 양 화상에 대한 화상 데이터의 가산 평균에 의해 대상 블럭 BLa40에 대한 움직임 보상 화상(예측 화상)을 취득한다. 이 방법은 예컨대, 픽쳐 B11의 후방 참조 픽쳐인 픽쳐 P13 중의, 블럭 BLa40과 동일한 위치에 있는 블럭이, 프레임내 부호화된 블럭과 같이 움직임 벡터를 갖지 않는 블럭인 경우에도 적용할 수 있다.
이렇게 하여 생성된 움직임 보상 화상의 데이터는 가산 연산부(208)에 대하여 출력된다. 가산 연산부(208)에서는 입력된 예측 오차 데이터와 움직임 보상 화상의 데이터를 가산하여, 복호화 화상의 데이터를 생성한다. 생성된 복호화 화상의 데이터는 스위치(210)를 거쳐서 참조 픽쳐용 메모리(207)에 출력되고, 복호화 화상은 해당 참조 픽쳐용 메모리(207)에 축적된다.
메모리 제어부(204)는 부호열의 헤더 정보로부터 추출된 P 픽쳐 및 B 픽쳐가 어떠한 참조를 하여 부호화되어 있는지라는 헤더 정보 Ih에 근거해서 참조 픽쳐용 메모리(207)의 제어를 한다.
이상과 같이 하여, 픽쳐 B11의 블럭이 순서대로 복호화된다. 픽쳐 B11의 블럭이 모두 복호화되면, 픽쳐 B12의 복호화가 행하여진다.
또, 상기 B 픽쳐의 복호화에서는, 특정한 블럭이 스킵 블럭으로서 취급되고 있는 경우가 있어, 이하, 스킵 블럭의 복호화에 대하여 간단히 설명한다.
입력된 부호열의 복호화 처리 중에, 해당 부호열 중에 기술되어 있는 스킵 식별자나 블럭의 번호 정보 등에 의해서, 특정한 블럭이 스킵 블럭으로서 취급되고 있는 것이 판명된 경우, 움직임 보상, 즉 대상 블럭에 대응하는 예측 화상의 취득은 다이렉트 모드로 행하여진다.
예컨대, 도 6에 도시하는 바와 같이, 픽쳐 B11의 블럭 MB(r)과 블럭 MB(r+3) 사이의 블럭 MB(r+1) 및 MB(r+2)이 스킵 블럭으로서 취급되고 있는 경우, 동화상 복호화 장치(20)에서는 부호열 해석부(201)에 의해 부호열 Bs 중의 스킵 식별자 Sf가 검출되고, 해당 스킵 식별자 Sf가 모드 복호부(223)에 입력되면, 모드 복호부(223)는 움직임 보상 복호부(205)에 대하여 움직임 보상이 다이렉트 모드로 행하여지도록 지령한다.
이렇게 하면, 움직임 보상 복호부(205)에서는, 상기한 바와 같이, 전방 참조 화상인, 전방 참조 픽쳐 P10의, 스킵 블럭으로 된 블럭과 동일한 위치의 블럭의 화상과, 후방 참조 화상인, 스킵 블럭으로서 취급된 블럭과 동일한 위치의 블럭의 화상에 근거하여서, 블럭 MB(r+1) 및 MB(r+2)의 예측 화상을 취득하고, 예측 화상의 데이터를 가산 연산부(208)에 출력한다. 또한, 예측 오차 복호화부(202)는 스킵 블럭으로서 취급된 블럭의 차분 데이터로서 값이 0인 데이터를 출력한다. 가산 연산부에서는, 스킵 블럭으로서 취급된 블럭의 차분 데이터가 0이기 때문에, 블럭 MB(r+1) 및 MB(r+2)의 예측 화상의 데이터가 블럭 MB(r+1) 및 MB(r+2)의 복호 화상의 데이터로서 참조 픽쳐용 메모리(207)에 출력된다.
또, 도 18(a)에 나타내는 다이렉트 모드에서의 처리예(제 1 예), 도 18(b)에 나타내는 다이렉트 모드에서의 처리예(제 2 예), 도 19(a)에 나타내는 다이렉트 모 드에서의 처리예(제 3 예)에서는, 차분 데이터가 0으로 된 블럭을 모두 스킵 블럭으로서 취급하는 것은 아니며, 대상 픽쳐에 대하여 시간적으로 직전에 위치하는 픽쳐를 전방 참조 픽쳐로서 이용하고, 또한 크기 0의 움직임 벡터를 이용하여 대상 블럭에 대한 쌍방향 예측을 해서, 대상 블럭의 차분 데이터가 0으로 된 경우에만, 해당 대상 블럭을 스킵 블럭으로서 취급하고 있는 경우가 있다.
이러한 경우에는, 부호열 Bs 중의 스킵 식별자 등으로부터 특정한 블럭이 스킵 블럭인 것을 알았을 때에는, 움직임 보상 처리는 시간적으로 직전의 참조 픽쳐를 전방 참조 픽쳐로 하여, 움직임이 0인 쌍방향 예측에 의해 행하여진다.
<픽쳐 B12의 복호화 처리>
부호열 해석부(201), 모드 복호부(223) 및 예측 오차 복호화부(202)의 동작은 픽쳐 P10의 복호화 처리 시와 마찬가지로 행하여지기 때문에, 그 설명은 생략한다.
움직임 보상 복호부(205)는 입력된 움직임 벡터의 정보 등으로부터 움직임 보상 화상 데이터를 생성한다. 움직임 보상 복호부(205)에 입력되는 것은 움직임 벡터 MV 및 참조 픽쳐 번호 Rp이다. 픽쳐 B12는, 전방 참조의 후보 픽쳐로서 픽쳐 P7, P10 및 B11을 이용하고, 후방 참조의 후보 픽쳐로서 픽쳐 P13을 이용하여 부호화 처리가 실시된 것이다. 또한, 이들 후보 픽쳐의 것은, 대상 픽쳐의 복호화의 시점에서는 이미 복호화되어 참조 픽쳐용 메모리(207)에 축적되어 있다.
또, 참조 픽쳐용 메모리(207)에서 유지하고 있는 픽쳐의 시간적 변화의 모 양, 및 참조 픽쳐의 결정 방법은, 도 3을 이용하여 설명한 픽쳐 B11의 복호화 시의 방법과 완전히 동일하다.
부호화 모드가 쌍방향 예측 부호화 모드인 것을 나타내는 경우에는, 움직임 보상 복호부(205)는 참조 픽쳐 번호로부터 픽쳐 P7, P10 및 B11 중 어느 하나의 픽쳐를 전방 참조하고 있는지를 결정한다. 그리고, 움직임 보상 복호부(205)는 전방 움직임 벡터에 근거하여 전방 참조 화상을 참조 픽쳐용 메모리(207)로부터 취득하고, 또한, 후방 움직임 벡터에 근거하여 후방 참조 화상을 참조 픽쳐용 메모리(207)로부터 취득한다. 그리고, 움직임 보상 복호부(205)는 전방 참조 화상과 후방 참조 화상에 대하여 화상 데이터의 가산 평균을 실시하는 것에 의해 대상 블럭에 대한 움직임 보상 화상을 생성한다.
(쌍방향 예측 모드)
도 20은 복호화 대상 픽쳐가 픽쳐 B12이고, 픽쳐 B12의 복호화 대상으로 되는 블럭(대상 블럭) BLa02에 대하여 쌍방향 예측 복호화를 하는 경우를 나타내고 있다.
먼저, 전방 참조 픽쳐가 픽쳐 B11이고, 후방 참조 픽쳐가 픽쳐 P13인 경우를 설명한다.
이 경우, 전방 움직임 벡터는 픽쳐 B11의, 블럭 BLa02에 대응하는 영역 CRe02를 나타내는 움직임 벡터 MVe02이다. 후방 움직임 벡터는 픽쳐 P13의, 블럭 BLa02에 대응하는 영역 CRg02를 나타내는 움직임 벡터 MVg02이다.
따라서, 움직임 보상 복호부(205)는, 전방 참조 화상으로서 픽쳐 B11에서의 영역 CRe02의 화상을, 후방 참조 화상으로서 픽쳐 P13에서의 영역 CRg02의 화상을 참조 픽쳐용 메모리(207)로부터 취득하고, 해당 양 영역 CRe02 및 CRg02의 화상에 대하여 화상 데이터의 가산 평균을 실시해서, 상기 대상 블럭 BLa02에 대한 움직임 보상 화상을 얻는다.
다음에, 전방 참조 픽쳐가 픽쳐 P10이고, 후방 참조 픽쳐가 픽쳐 P13인 경우를 설명한다.
이 경우, 전방 움직임 벡터는 픽쳐 P10의, 블럭 BLa02에 대응하는 영역 CRf02를 나타내는 움직임 벡터 MVf02이다. 후방 움직임 벡터는 픽쳐 P13의, 블럭 BLa02에 대응하는 영역 CRg02를 나타내는 움직임 벡터 MVg02이다.
따라서, 움직임 보상 복호부(205)는, 전방 참조 화상으로서 픽쳐 P10에서의 영역 CRf02의 화상을, 후방 참조 화상으로서 픽쳐 P13에서의 영역 CRg02의 화상을 참조 픽쳐용 메모리(207)로부터 취득하고, 해당 양 영역 CRf02 및 CRg02의 화상에 대하여 화상 데이터의 가산 평균을 실시해서, 상기 대상 블럭 BLa01에 대한 움직임 보상 화상을 얻는다.
(다이렉트 모드)
또한, 부호화 모드가 다이렉트 모드인 경우에는, 움직임 보상 복호부(205)는 움직임 벡터 기억부(226)에 기억되어 있는, 대상 픽쳐 B12에 대한 후방 참조 픽쳐 P13의 기준 블럭(상대 위치가 대상 블럭과 동일한 블럭)의 움직임 벡터(기준 움직 임 벡터)를 취득한다. 움직임 보상 복호부(205)는, 또한 이 기준 움직임 벡터를 이용하여 전방 참조 화상과 후방 참조 화상을 참조 픽쳐용 메모리(207)로부터 취득한다. 그리고, 움직임 보상 복호부(205)는 전방 참조 화상과 후방 참조 화상에 대하여 화상 데이터의 가산 평균을 실시해서, 상기 대상 블럭에 대한 움직임 보상 화상을 생성한다.
도 21(a)는 픽쳐 B12의 블럭 BLa50을 픽쳐 B12 직전의 픽쳐 B11을 참조하여 다이렉트 모드로 복호화하는 경우(다이렉트 모드 복호화의 제 1 예)를 나타내고 있다.
여기서, 블럭 BLa50의 다이렉트 모드에서의 복호화에 이용하는 기준 움직임 벡터는 블럭 BLa50의 복호화 시에 후방 참조되는 픽쳐 P13의 기준 블럭(블럭 BLa50과 동일한 위치에 있는 블럭 BLg50)의 전방 움직임 벡터 MVj50이다. 이 전방 움직임 벡터 MVj50은 픽쳐 B11의 전방 근방에 위치하는 픽쳐 P10의, 기준 블럭 BLg50에 대응하는 영역 CRj50을 나타내는 것이다.
이 경우, 복호화 대상으로 되는 블럭 BLa50의 전방 움직임 벡터 MVk50에는 상기 픽쳐 B11의, 대상 블럭 BLa50에 대응하는 영역 CRk50을 나타내는, 상기 기준 움직임 벡터 MVj50과 평행한 움직임 벡터가 이용된다. 또한, 복호화 대상으로 되는 블럭 BLa50의 후방 움직임 벡터 MVi50에는 상기 픽쳐 P13의, 대상 블럭 BLa50에 대응하는 영역 CRi50을 나타내는, 상기 기준 움직임 벡터 MVj50과 평행한 움직임 벡터가 이용된다.
따라서, 움직임 보상 복호부(205)는, 전방 참조 화상으로서 전방 참조 픽쳐 B11의 영역 CRk50의 화상을, 후방 참조 화상으로서 후방 참조 픽쳐 P13의 영역 CRi50의 화상을 참조 픽쳐용 메모리(207)로부터 취득하고, 해당 양 화상에 대한 화상 데이터의 가산 평균에 의해 대상 블럭 BLa50에 대한 움직임 보상 화상(예측 화상)을 취득한다.
이 경우, 전방 움직임 벡터 MVk50의 크기(MVF) 및 후방 움직임 벡터 MVi50의 크기(MVB)는 상기 기준 움직임 벡터 MVj50의 크기(MVR)를 이용하여 상기 (수학식 1), (수학식 2)에 의해 구해진다.
여기서, 각 움직임 벡터의 크기 MVF, MVB는 움직임 벡터의 수평 성분, 수직 성분의 각각을 표현하고 있는 것으로 한다.
도 21(b)는 픽쳐 B12의 블럭 BLa60을 픽쳐 B12의 전방의 픽쳐 B11을 참조하여 다이렉트 모드로 복호화하는 경우(다이렉트 모드 복호화의 제 2 예)를 나타내고 있다.
이 다이렉트 모드 복호화의 제 2 예에서는, 도 21(a)에 나타내는 다이렉트 모드 복호화의 제 1 예와는 달리, 기준 블럭(즉 대상 블럭에 대한 후방 참조 픽쳐의, 대상 블럭과 동일한 위치의 블럭)의 복호화 시에 전방 참조된 픽쳐가 픽쳐 P7로 되어 있다.
즉, 블럭 BLa60의 다이렉트 모드에서의 복호화에 이용하는 기준 움직임 벡터는 블럭 BLa60의 복호화 시에 후방 참조되는 픽쳐 P13의 기준 블럭(블럭 BLa60과 동일한 위치에 있는 블럭 BLg60)의 전방 움직임 벡터 MVj60이다. 이 전방 움직임 벡터 MVj60은 대상 픽쳐 B12의 전방에 위치하는 픽쳐 P7의, 기준 블럭 BLg60에 대 응하는 영역 CRj60을 나타내는 것이다.
이 경우, 복호화 대상으로 되는 블럭 BLa60의 전방 움직임 벡터 MVk60에는 상기 픽쳐 B11의, 대상 블럭 BLa60에 대응하는 영역 CRk260을 나타내는, 상기 기준 움직임 벡터 MVj60과 평행한 움직임 벡터가 이용된다. 또한, 복호화 대상으로 되는 블럭 BLa60의 후방 움직임 벡터 MVi60에는 상기 픽쳐 P13의, 대상 블럭 BLa60에 대응하는 영역 CRi60을 나타내는, 상기 기준 움직임 벡터 MVj60과 평행한 움직임 벡터가 이용된다.
따라서, 움직임 보상 복호부(205)는, 전방 참조 화상으로서 전방 참조 픽쳐 B11의 영역 CRk60의 화상을, 후방 참조 화상으로서 후방 참조 픽쳐 P13의 영역 CRi60의 화상을 참조 픽쳐용 메모리(207)로부터 취득하고, 해당 양 화상에 대한 화상 데이터의 가산 평균에 의해 대상 블럭 BLa60에 대한 움직임 보상 화상(예측 화상)을 취득한다.
이 경우의 전방 움직임 벡터 MVk60의 크기(MVF) 및 후방 움직임 벡터 MVi60의 크기(MVB)는 상기 기준 움직임 벡터 MVj60의 크기(MVR)를 이용하여 상기 다이렉트 모드 복호화의 제 1 예와 마찬가지로 상기 (수학식 1), (수학식 2)에 의해 구해진다.
도 22(a)는 픽쳐 B12의 블럭 BLa70을 픽쳐 B12의 최근방에 위치하는 전방 픽쳐 P10보다 더 전방에 위치하는 픽쳐 P7을 참조하여 다이렉트 모드로 복호화하는 경우(다이렉트 모드 복호화의 제 3 예)를 나타내고 있다.
이 다이렉트 모드 복호화의 제 3 예에서는, 도 21(a) 및 도 21(b)에 나타내 는 다이렉트 모드 복호화의 제 1 및 제 2 예와는 달리, 대상 블럭의 복호화 시에 전방 참조되는 픽쳐는 대상 픽쳐 직전의 픽쳐가 아니라, 기준 픽쳐의 기준 블럭의 복호화 시에 전방 참조된 픽쳐로 되어 있다. 여기서, 기준 픽쳐는 대상 블럭의 복호화 시에 후방 참조되는 픽쳐이다.
즉, 블럭 BLa70의 다이렉트 모드에서의 복호화에 이용하는 기준 움직임 벡터는 블럭 BLa70의 복호화 시에 후방 참조되는 픽쳐 P13의 기준 블럭(블럭 BLa70과 동일한 위치에 있는 블럭) BLg70의 전방 움직임 벡터 MVj70이다. 이 전방 움직임 벡터 MVj70은 대상 픽쳐 B12의 전방에 위치하는 픽쳐 P7의, 기준 블럭 BLg70에 대응하는 영역 CRj70을 나타내는 것이다.
이 경우, 복호화 대상으로 되는 블럭 BLa70의 전방 움직임 벡터 MVk70에는 상기 픽쳐 P7의, 대상 블럭 BLa70에 대응하는 영역 CRk70을 나타내는, 상기 기준 움직임 벡터 MVj70과 평행한 움직임 벡터가 이용된다. 또한, 복호화 대상으로 되는 블럭 BLa70의 후방 움직임 벡터 MVi70에는 상기 픽쳐 P13의, 대상 블럭 BLa70에 대응하는 영역 CRi70을 나타내는, 상기 기준 움직임 벡터 MVj70과 평행한 움직임 벡터가 이용된다.
따라서, 움직임 보상 복호부(205)는, 전방 참조 화상으로서 전방 참조 픽쳐 P7의 영역 CRk70의 화상을, 후방 참조 화상으로서 후방 참조 픽쳐 P13의 영역 CRi70의 화상을 참조 픽쳐용 메모리(207)로부터 취득하고, 해당 양 화상에 대한 화상 데이터의 가산 평균에 의해 대상 블럭 BLa70에 대한 움직임 보상 화상(예측 화상)을 취득한다.
이 경우의 전 방향 움직임 벡터 MVk70의 크기(MVF) 및 후방 움직임 벡터 MVi70의 크기(MVB)는 상기 기준 움직임 벡터 MVj70의 크기(MVR)를 이용하여 상기 (수학식 2), (수학식 3)에 의해 구해진다.
또, 여기서, 블럭 BLg70의 복호화 시에 참조되는 픽쳐가 이미 참조 픽쳐용 메모리(207)로부터 삭제되어 있는 경우에는, 시간적으로 최근방에 위치하는 전방 픽쳐 P10을 다이렉트 모드 복호화의 제 3 예에서의 전방 참조 픽쳐로서 이용하면 된다. 이 경우의 다이렉트 모드 복호화의 제 3 예에서의 처리는 다이렉트 모드 복호화의 제 1 예와 마찬가지로 된다.
도 22(b)는 픽쳐 B12의 블럭 BLa80을 크기가 0의 움직임 벡터를 이용하여 다이렉트 모드로 복호화하는 경우(다이렉트 모드 복호화의 제 4 예)를 나타내고 있다.
이 다이렉트 모드 복호화의 제 4 예는 도 21(a) 및 도 21(b)에 나타내는 다이렉트 모드 복호화의 제 1 및 제 2 예에서의 기준 움직임 벡터의 크기를 0으로 한 것이다.
이 경우, 복호화 대상으로 되는 블럭 BLa80의 전방 움직임 벡터 MVk80 및 후방 움직임 벡터 MVi80에는 크기가 0인 움직임 벡터가 이용된다.
즉, 상기 전방 움직임 벡터 MVk80은 픽쳐 B11의, 대상 블럭 BLa80과 동일한 위치에 위치하는, 대상 블럭과 동일 사이즈의 영역(블럭) CRk80을 나타낸다. 또한, 상기 후방 움직임 벡터 MVi80은 픽쳐 P13의, 대상 블럭 BLa80과 동일한 위치에 위치하는, 대상 블럭과 동일 사이즈의 영역(블럭) CRi80을 나타낸다.
따라서, 움직임 보상 복호부(205)는, 전방 참조 화상으로서 전방 참조 픽쳐 B11의 영역(블럭) CRk80의 화상을, 후방 참조 화상으로서 후방 참조 픽쳐 P13의 영역(블럭) CRi80의 화상을 참조 픽쳐용 메모리(207)로부터 취득하고, 해당 양 화상에 대한 화상 데이터의 가산 평균에 의해 대상 블럭 BLa80에 대한 움직임 보상 화상(예측 화상)을 취득한다. 이 방법은 예컨대, 픽쳐 B12의 후방 참조 픽쳐인 픽쳐 P13 중의, 블럭 BLa80과 동일한 위치에 있는 블럭이, 프레임내 부호화된 블럭과 같이 움직임 벡터를 갖지 않는 블럭인 경우에도 적용할 수 있다.
이렇게 하여 생성된 움직임 보상 화상의 데이터는 가산 연산부(208)에 출력된다. 가산 연산부(208)는 입력된 예측 오차 데이터와 움직임 보상 화상의 데이터를 가산하여 복호화 화상 데이터를 생성한다. 생성된 복호화 화상 데이터는 스위치(210)를 거쳐서 참조 픽쳐용 메모리(207)에 출력된다.
이렇게 하여, 픽쳐 B12의 블럭에 대하여 순서대로 복호화 처리가 실시된다. 참조 픽쳐용 메모리(207)에 유지된 각 픽쳐의 화상 데이터는 시간순으로 재배열되어 출력 화상 데이터 Od로서 출력된다.
그리고, 도 16(a)에 도시하는 바와 같이 복호 시간순으로 배열된, 픽쳐 B12 이후의 픽쳐는 픽쳐 타입에 따라서 상기 픽쳐 P13, B11, B12와 마찬가지의 처리에 의해서 복호화된다. 또, 도 16(b)는 표시 시간순으로 재배열된 픽쳐의 배열을 나타내고 있다.
또한, 입력된 부호열의 복호화 처리 중에, 해당 부호열 중에 기술되어 있는 스킵 식별자나 블럭의 번호 정보 등에 의해서, 특정한 블럭이 스킵 블럭으로서 취 급되고 있는 것이 판명된 경우, 움직임 보상, 즉 대상 블럭에 대응하는 예측 화상의 취득은 픽쳐 B11의 복호화의 경우와 마찬가지로 다이렉트 모드로 행하여진다.
이와 같이 본 실시예 2의 동화상 복호화 장치(20)에서는, B 픽쳐의 블럭의 복호화 시, 전방 참조의 후보 픽쳐로서 복호화된 P 픽쳐와 함께 복호화된 B 픽쳐를 이용하여, 해당 복호 대상 블럭에 대응하는 부호열에 포함되어 있는, 해당 블럭의 부호화 시에 전방 참조된 후보 픽쳐를 나타내는 정보(참조 픽쳐 번호)에 근거해서, 해당 대상 블럭에 대한 예측 화상을 생성하기 때문에, B 픽쳐를 전방 참조의 후보 픽쳐로서 이용하여 부호화된 B 픽쳐의 블럭을 정확하게 복호화할 수 있다.
또한, 동화상 복호화 장치(20)에서는, B 픽쳐의, 복호 대상 블럭이 다이렉트 모드로 부호화되어 있는 경우에는, 복호화된 P 픽쳐의, 해당 복호 대상 블럭과 동일한 위치의 블럭의 움직임 벡터에 근거하여 복호화 대상 블럭의 움직임 벡터를 산출하기 때문에, 복호화측에서는, 다이렉트 모드로 부호화되어 있는 블럭의 움직임 벡터의 정보를 부호화측에서 취득할 필요는 없다.
또한, 동화상 복호화 장치(20)에서는, 헤더 정보로서 부호열 중에 포함되는, P 픽쳐 및 B 픽쳐의 부호화 시에 이용한 후보 픽쳐를 나타내는 정보에 근거하여, 참조 픽쳐용 메모리에 축적되어 있는 복호화된 픽쳐의 데이터를 관리하는, 예컨대, 하나의 픽쳐의 복호화 처리가 완료한 시점에서, 이 픽쳐 이후의 복호화 처리에서는 참조 픽쳐로서 이용되는 것이 없는 픽쳐의 데이터를 순차적으로 소거해 나가기 때문에, 픽쳐용 메모리를 효율적으로 이용할 수 있다.
또한, P 픽쳐의 블럭의 복호화 시에, 후보 픽쳐 중의 어느 픽쳐가 참조 픽쳐 로서 이용되었는지, 즉, 복호화 대상 블럭의 움직임 벡터가 어느 후보 픽쳐를 참조하여 얻어진 것인지는 움직임 벡터 정보에 부가되어 있는 참조 픽쳐 정보로부터 결정할 수 있다.
또한, B 픽쳐의 블럭의 복호화 시에, 전방 참조의 후보 픽쳐 중의 어느 픽쳐가 참조 픽쳐로서 이용되었는지, 즉, 복호화 대상 블럭의 전방 움직임 벡터가 어느 후보 픽쳐를 참조하여 얻어진 것인지는 움직임 벡터 정보에 부가되어 있는 참조 픽쳐 정보로부터 결정할 수 있다.
또, 본 실시예 2에서는 B 픽쳐에 대한 복수의 부호화 모드 중 하나가 다이렉트 모드인 경우에 대하여 설명했지만, B 픽쳐의 부호화 모드로서 다이렉트 모드를 이용하지 않더라도 된다. 이 경우, 동화상 복호화 장치(20)의 움직임 벡터 기억부(226)는 불필요하다.
또한, 본 실시예 2에서는, 다이렉트 모드로서, 구체적으로 4가지의 방법(즉 도 18(a) 및 도 21(a)에 나타내는 제 1 예, 도 18(b) 및 도 21(b)에 나타내는 제 2 예, 도 19(a) 및 도 22(a)에 나타내는 제 3 예, 도 19(b) 및 도 22(b)에 나타내는 제 4 예)을 예로 들어 설명했지만, 복호화 장치에서는, 부호화 장치에서 다이렉트 모드로서 이용되고 있는 방법에 대응한 방법을 이용하여 복호화를 한다. 구체적으로는, 다이렉트 모드로서 복수의 방법이 이용되고 있는 경우에는, 부호열 중에 기술되어 있는, 구체적인 다이렉트 모드로서 어떤 방법을 이용했는지를 나타내는 정보를 이용하여 복호화를 한다.
이 때에는, 움직임 보상 복호화부(205)의 동작이 그 정보에 의해서 변하게 된다. 예컨대, 움직임 보상의 블럭 단위로 이 정보가 부가되어 있는 경우, 모드 복호부(223)에서, 다이렉트 모드로서 상기 4가지의 구체적 방법 중 어느 방법을 이용하여 부호화되어 있는지를 결정해서, 결정한 다이렉트 모드의 구체적 방법을 움직임 보상 복호부(205)에 전달한다. 그리고, 움직임 복호부(205)에서는, 다이렉트 모드의 구체적 방법으로서 상기 4가지의 방법 중 어느 것이 이용되고 있는지에 따라서 적절한 움직임 보상 예측 복호화 처리를 한다.
또한, 다이렉트 모드의 구체적 방법으로서 어느 방법이 이용되고 있는지라는 정보(DM 모드 정보)가 시퀀스 전체의 헤더, GOP 헤더, 픽쳐 헤더 혹은 슬라이스 헤더에 기술되어 있는 경우에는, 시퀀스 전체, GOP, 픽쳐 혹은 슬라이스마다 부호열 해석부(201)로부터 움직임 보상 복호부(205)로 DM 모드 정보를 전송하여, 움직임 보상 복호부(205)의 동작을 변경하도록 하면 된다.
또한, 본 실시예 2에서는, I 픽쳐와 P 픽쳐의 사이, 혹은 인접하는 P 픽쳐 사이에 2매의 B 픽쳐가 위치하고 있는 경우에 대하여 설명했지만, 연속하는 B 픽쳐의 매수는 다른 값, 예컨대 3매나 4매이더라도 무방하다.
또한, 본 실시예 2에서는 P 픽쳐에 대한 전방 참조의 후보 픽쳐의 수가 3개인 경우에 대하여 설명했지만, 이것은 다른 값이더라도 무방하다.
또한, 본 실시예에서는, B 픽쳐의 복호화 시에 전방 참조되는 후보 픽쳐가, 2개의 I 혹은 P 픽쳐와 하나의 B 픽쳐인 경우에 대해 설명했지만, B 픽쳐의 복호화 시에 전방 참조되는 후보 픽쳐는 이들에 한정되는 것은 아니다.
또한, 실시예 2에서는, 픽쳐 P13, 픽쳐 B11 및 픽쳐 B12의 복호화 시에 참조 픽쳐용 메모리를 관리하는 방법으로서, 도 3에 도시하는 바와 같이, 참조 픽쳐의 후보로서 이용되는 P 픽쳐와 B 픽쳐를 일괄해서 관리하는 방법에 대하여 설명했지만, 참조 픽쳐용 메모리의 관리 방법은 실시예 1에서 도 11∼도 14를 이용하고 설명한 4가지의 관리 방법, 즉, 참조 픽쳐의 후보로서 이용되는 모든 픽쳐를 P 픽쳐와 B 픽쳐로 분할하여 관리하는 방법이더라도 무방하다.
이 경우, 참조 픽쳐용 메모리(207)는 메모리 영역으로서, 6 픽쳐분의 영역, 즉, P 픽쳐용 메모리 영역(#1)∼(#4)과, B 픽쳐용 메모리 영역(#1) 및 (#2)을 갖는 것으로 된다. 또한, 이들 6개의 메모리 영역은 하나의 참조 픽쳐용 메모리 내에 형성하는 경우에 한정되지 않고, 6개의 메모리 영역은 각각 하나가 독립된 참조 픽쳐용 메모리에 의해 구성하더라도 무방하다.
또한, 도 14에 도시하는 바와 같이, 부호화측에서, 부호화하는 픽쳐마다 P 픽쳐용 메모리 영역과 B 픽쳐용 메모리 영역 중 어느 쪽을 우선하는지를 결정하여 참조 픽쳐 번호를 부가하는 방법이 이용되고 있는 경우는, 동화상 복호화 장치에서는 상기 양 메모리 영역 중 우선하고 있는 메모리 영역을 나타내는 부호열 중의 정보를 이용하는 것에 의해, 후보 픽쳐 중 참조 픽쳐로서 이용된 픽쳐를 참조 픽쳐 번호에 근거하여 간단히 식별할 수 있다.
예컨대, 복호화 대상 픽쳐가 픽쳐 B11인 경우, 해당 대상 픽쳐에 시간적으로 가장 가까운 전방 참조 픽쳐가 픽쳐 P10이기 때문에, P 픽쳐용 메모리에 저장되어 있는 픽쳐를 우선적으로 번호 부여가 행하여지고 있다. 따라서, 픽쳐 B11의 대상 블럭의 부호화 시에, 픽쳐 P10이 참조 픽쳐로서 이용된 경우에는 참조 픽쳐 번호 [0]이, 픽쳐 P7이 참조 픽쳐로서 이용된 경우에는 참조 픽쳐 번호 [1]이, 픽쳐 B9가 참조 픽쳐로서 이용된 경우에는 참조 픽쳐 번호[2]가, 대상 블럭의 부호열에 헤더 정보로서 부가되어 있다. 따라서, 동화상 복호화 장치에서는, 참조 픽쳐 번호에 따라서, 대상 블럭의 부호화 시에 어느 후보 픽쳐가 참조 픽쳐로서 이용되고 있는지를 알 수 있다.
이 경우, P 픽쳐용 메모리의 후보 픽쳐를 우선하여 번호 부여하고 있는 것을 나타내는 정보가 헤더 정보로서 부호열 중에 포함되어 있기 때문에, 그 정보를 이용하는 것에 의해 더욱 용이하게 참조 픽쳐를 식별할 수 있다.
또한, 복호화 대상 픽쳐가 픽쳐 B12인 경우, 해당 대상 픽쳐에 시간적으로 가장 가까운 전방 참조 픽쳐는 B11이기 때문에, B 픽쳐용 메모리에 저장되어 있는 픽쳐를 우선하여 번호 부여가 행하여지고 있다. 따라서, 픽쳐 B12의 대상 블럭의 부호화 시에, 픽쳐 B11이 참조 픽쳐로서 이용된 경우에는 참조 픽쳐 번호 [0]이, 픽쳐 P10이 참조 픽쳐로서 이용된 경우에는 참조 픽쳐 번호 [1]이, 픽쳐 P7이 참조 픽쳐로서 이용된 경우에는 참조 픽쳐 번호 [2]가, 대상 블럭의 부호열에 헤더 정보로서 부가되어 있다. 따라서, 동화상 복호화 장치에서는, 참조 픽쳐 번호에 따라서, 대상 블럭의 부호화 시에 어느 후보 픽쳐가 참조 픽쳐로서 이용되고 있는지를 알 수 있다.
이 경우, B 픽쳐용 메모리의 후보 픽쳐를 우선하여 번호 부여하고 있는 것을 나타내는 정보가 헤더 정보로서 부호열 중에 포함되어 있기 때문에, 그 정보를 이용하는 것에 의해 더욱 용이하게 참조 픽쳐를 식별할 수 있다.
또한, 부호화측에서는, 참조 픽쳐용 메모리의 관리 방법으로서 상기 5가지의 방법(도 3, 도 11∼도 14) 중 미리 선택된 하나의 방법을 이용하고 있는 경우, 혹은 5가지의 방법 중의 복수의 방법을 전환하여 사용하고 있는 경우가 있다. 예컨대, 참조 픽쳐용 메모리를 상기 복수의 방법을 전환하여 관리하고 있는 경우에는, 동화상 복호화 장치에서는 부호열 중에 기술되어 있는, 각 픽쳐에 대하여 어느 관리 방법을 이용했는지를 나타내는 정보에 근거하여 참조 픽쳐 번호를 결정할 수 있다.
또한, 상기 실시예 2에서는, 참조 픽쳐용 메모리의 관리 방법의 5가지의 예(도 3, 도 11∼도 14)를, P 픽쳐에 대한 참조 후보 픽쳐의 수가 3이고, B 픽쳐에 대한 전방 참조의 후보 픽쳐가 2개의 P 픽쳐와 하나의 B 픽쳐인 경우에 대하여 설명했지만, 참조 픽쳐용 메모리의 관리 방법의 5가지의 예는 각각 참조 후보 픽쳐의 수가 실시예 2의 것과는 다른 경우에도 적용할 수 있다. 이와 같이 참조 후보 픽쳐의 수가 다른 경우에는, 참조 픽쳐용 메모리의 용량이 실시예 2의 것과 다른 것은 말할 필요도 없다.
또한, 상기 실시예 2에서는, 참조 후보 픽쳐를 P 픽쳐와 B 픽쳐로 나누어 참조 픽쳐용 메모리를 관리하는 방법(도 11∼도 14에서 나타내는 4가지의 예)에서는, P 픽쳐를 P 픽쳐용 메모리 영역에 저장하고, B 픽쳐를 B 픽쳐용 메모리 영역에 저장하는 경우를 나타내었지만, 픽쳐를 축적하는 메모리부에는 H.263++로 정의되어 있는 단기간 픽쳐용 메모리 및 장기간 픽쳐 메모리를 이용하더라도 된다. 예컨대, 단기간 픽쳐용 메모리를 P 픽쳐용 메모리 영역으로서 이용하고, 장기간 픽쳐 메모 리를 B 픽쳐용 메모리 영역으로서 이용하는 방법이 있다.
(실시예 3)
도 23은 본 발명의 실시예 3에 따른 동화상 부호화 장치를 설명하는 블럭도이다.
이 실시예 3의 동화상 부호화 장치(30)는 후보 픽쳐에 대하여 참조 픽쳐 번호를 할당하는 방법을 외부로부터의 제어 신호에 의해 초기 설정되어 있는 규칙에 따라서 참조 픽쳐 번호를 할당하는 방법(디폴트 할당 방법)과, 디폴트 할당 방법에 의해 후보 픽쳐에 대하여 참조 픽쳐 번호를 할당하고, 또한, 할당된 참조 픽쳐 번호를 부호화 상황에 따라 적응적으로 변경하는 적응적 할당 방법 중 어느 하나로 전환 가능한 것이다.
즉, 본 실시예 3의 동화상 부호화 장치(30)의 하나의 동작 형태가 실시예 1의 동화상 부호화 장치(10)의 동작이며, 바꿔 말하면, 실시예 3의 동화상 부호화 장치(30)는, 그 참조 픽쳐 번호의 할당 방법으로서 디폴트 할당 방법이 선택되어 있는 경우에는, 실시예 1의 동화상 부호화 장치(10)와 동일한 처리를 하는 것이다.
이하, 구체적으로 설명한다.
본 실시예 3의 동화상 부호화 장치(30)는, 실시예 1의 동화상 부호화 장치(10)에서의 부호화 제어부(110) 대신에, 외부로부터의 제어 신호 Cont에 의해, 후보 픽쳐에 대하여 참조 픽쳐 번호를 할당하는 방법을 초기 설정되어 있는 규칙에 따라서 후보 픽쳐에 참조 픽쳐 번호를 할당하는 방법(디폴트 할당 방법)과, 후보 픽쳐에 대하여 디폴트 할당 방법에 의해 참조 픽쳐 번호를 할당하는 제 1 단계, 및 디폴트 할당 방법에 의해 후보 픽쳐에 할당된 참조 픽쳐 번호를 적응적으로 변경하는 제 2 단계를 포함하는 방법(적응적 할당 방법) 중 어느 하나로 전환하는 부호화 제어부(130)를 구비한 것이다.
또한, 부호화 제어부(130)는, 부호화 대상 픽쳐마다 복수의 참조 후보 픽쳐의 각각에 대해 참조 픽쳐로서 이용한 경우의 부호화 효율을 검출하는 검출부(도시하지 않음)를 갖고 있으며, 해당 검출부에 의해 검출된 부호화 효율에 따라서, 디폴트 할당 방법에 의해 설정된 각 후보 픽쳐에 대한 참조 픽쳐 번호를 변경하는 것이다.
구체적으로는, 부호화 제어부(130)는 대상 픽쳐에 대한 복수의 참조 후보 픽쳐 중, 참조 픽쳐로서 이용한 경우의 대상 픽쳐의 부호화 효율이 높은 것일수록, 참조 픽쳐 번호의 값이 작게 되도록, 디폴트 할당 방법에 의해 설정된 각 후보 픽쳐의 참조 픽쳐 번호의 값을 변경하는 것이다.
그리고, 모드 선택부(139)는, 다이렉트 모드에서는 대상 블럭에 대한 전방 참조 픽쳐로서 참조 픽쳐 번호 [0]이 부여되어 있는 픽쳐를 전방 참조 픽쳐로서 선택한다. 또, 모드 선택부(139)는, 다이렉트 모드 이외의 예측 부호화 모드, 예컨대 쌍방향 예측 모드에서는 부호화 효율에 따라서 복수의 후보 픽쳐로부터 참조 픽쳐를 선택하는 처리를 한다.
본 실시예 3의 동화상 부호화 장치(30)의 그 외의 구성은 실시예 1의 동화상 부호화 장치(10)에서의 것과 동일하다.
다음에 동작에 대하여 설명한다.
이 동화상 부호화 장치(30)에서는, 외부로부터의 제어 신호 Cont에 의해 후보 픽쳐에 대한 참조 픽쳐 번호를 할당하는 방법으로서, 디폴트 할당 방법이 선택되어 있는 경우는, 동화상 부호화 장치(30)의 동작이 실시예 1의 동화상 부호화 장치(10)의 동작과 마찬가지이다.
또한, 외부로부터의 제어 신호 Cont에 의해 후보 픽쳐에 대한 참조 픽쳐 번호를 할당하는 방법으로서, 적응적 할당 방법이 선택되어 있는 경우, 이 동화상 부호화 장치(30)에서는, 제 1 단계에서는 실시예 1의 동화상 부호화 장치(10)와 마찬가지로 참조 픽쳐 번호의 할당이 행하여진다.
그리고, 적응적 할당 방법이 선택되어 있는 경우에는, 이 동화상 부호화 장치(30)에서는, 제 2 단계에서, 디폴트 할당 방법에 의해 할당된 참조 픽쳐 번호가 적응적으로 변경된다.
이하, 적응적 할당 방법이 선택되어 있는 경우의, 참조 픽쳐 번호의 구체적인 할당 방법에 대하여 설명한다. 단, 이 설명에서는, 대상 픽쳐는 픽쳐 B12로 한다.
먼저, 제 1 단계에서는, 도 3에 도시하는 바와 같이, 전방 참조의 후보 픽쳐에, 대상 픽쳐에 가까운 후보 픽쳐일수록 참조 픽쳐 번호의 값이 작게 되도록 참조 픽쳐 번호가 할당된다. 즉, 참조 픽쳐 P10에 참조 픽쳐 번호 [1]이, 참조 픽쳐 B11에 참조 픽쳐 번호 [0]이, 참조 픽쳐 P7에 참조 픽쳐 번호 [2]가 할당된다.
다음에, 제 2 단계에서는, 도 24에 도시하는 바와 같이, 참조 픽쳐 P10의 참 조 픽쳐 번호 [1]이 [0]으로 변경되고, 참조 픽쳐 B11의 참조 픽쳐 번호 [0]이 [1]로 변경된다.
이러한 참조 픽쳐 번호의 리라이팅은 대상 픽쳐마다 부호화 효율에 근거하여 행하여진다. 또한, 동화상 부호화 장치(30)는 외부 제어 신호 Cont에 의해, 할당 방법으로서, 디폴트 할당 방법과 적응적 할당 방법 중 어느 것이 설정되어 있는지를 나타내는 정보를 헤더 정보로서 부호열에 삽입한다. 또한 적응적 할당 방법이 설정되어 있는 경우에는, 참조 픽쳐 번호의 할당이 어떻게 행하여져 있는지의 정보도 헤더 정보로서 부호열에 삽입된다.
이와 같이 이 실시예 3에서는, 부호화 효율에 따라서, 다이렉트 모드에서 전방 참조해야 할 후보 픽쳐의 참조 픽쳐 번호를 [0]으로 할 수 있다.
즉, 실시예 1에서는, 대상 픽쳐에 시간적으로 가장 가까운 참조 후보 픽쳐일수록 작은 값의 참조 픽쳐 번호를 부여하고 있었기 때문에, 다이렉트 모드에서는 대상 픽쳐 B12에 시간적으로 가장 가까운 픽쳐 B11밖에 참조할 수 없지만, 본 실시예 3에서는, 부호화 효율이 양호하게 되는 것이면, 대상 픽쳐 B12에 시간적으로 가장 가까운 픽쳐 B11 이외의 픽쳐를 전방 참조할 수 있다.
또한, 이 경우, 이 픽쳐 B12가 다이렉트 모드에서 참조하는 픽쳐를 픽쳐 B11이 아니라 픽쳐 P10으로 할 수 있기 때문에, 픽쳐 B11을 복호화할 필요가 없어진다. 따라서, 도 25(a)에 도시하는 바와 같이, P 픽쳐 직후의 B 픽쳐를 복호화하지 않고서 처리할 수 있어, 픽쳐 B11이 불필요한 경우에는 복호화 처리의 고속화를 도모할 수 있게 된다. 또한, 전송 오류 등으로 픽쳐 B11의 데이터가 결핍되었다고 해도 복호할 수 있기 때문에, 복호화의 신뢰성을 향상시킬 수 있다.
이와 같이, 참조 픽쳐 번호를 임의로 부여하여, 다이렉트 모드에서 참조하는 픽쳐를 의도적으로 정할 수 있게 되면, 도 25(a)에 도시하는 바와 같이 소정의 픽쳐를 복호화하지 않고서 처리할 수 있다.
또한 본 실시예 3과 같이 P 픽쳐 사이에 B 픽쳐가 2매 있는 경우에 관계없이, 도 25(b)에 도시하는 바와 같이 P 픽쳐 사이에 B 픽쳐가 3매 있는 경우에도 소정의 픽쳐를 부호화하지 않고서 처리할 수 있어, 사용자가 필요로 하지 않는 픽쳐가 미리 부호화측에서 알고 있는 경우에는, 이러한 픽쳐를 생략하여 복호화에서의 처리 시간의 단축화를 도모할 수 있다.
도 25(b)에 나타내는 참조 관계에서는, 픽쳐 B3을 복호화하지 않더라도 다른 픽쳐의 복호화가 가능해진다.
즉, 실시예 1의 할당 방법에서는, 픽쳐 B4가 다이렉트 모드에서 픽쳐 B3을 참조하기 때문에, 픽쳐 B4를 복호화하기 위해서는 픽쳐 B3을 복호화해야 하지만, 본 실시예 3과 같이 다이렉트 모드에서 참조하는 픽쳐를 임의로 설정할 수 있도록 하는 것에 의해 픽쳐 B3의 복호화가 필요없어진다.
또한, 본 실시예 3에서는, 참조 픽쳐 번호의 부여를 대상 픽쳐에 가까운 후보 픽쳐일수록 작은 값의 참조 픽쳐 번호가 인가되도록 실행하고, 참조 픽쳐 번호에 근거하여 다이렉트 모드에서의 참조 픽쳐를 결정하기 때문에, 움직임 벡터의 단축화에 의한 부호화 효율을 높일 수 있고, 또한 처리 시간의 단축화를 할 수 있게 된다.
또한, 복호화측에서는, 대상 블럭을 다이렉트 모드에서 처리할 때, 참조 픽쳐 번호 [0]이 부여되어 있는 전방 참조 후보 픽쳐가 즉시 참조 픽쳐로서 이용되기 때문에, 복호화의 시간을 단축할 수 있다.
또, 상기 실시예 3에서는, 부호화 효율에 근거하여 참조 픽쳐 번호를 [0]으로 리라이팅하는 후보 픽쳐를 결정하고 있지만, 이것은 1번 참조되기 쉬운 픽쳐, 예컨대 시간적으로 가장 가까운 P 픽쳐의 참조 픽쳐 번호를 [0]으로 하도록 하더라도 된다.
또한, 상기 실시예 3에서는 다이렉트 모드로 참조하는 픽쳐를 참조 픽쳐 번호가 [0]인 것으로 하여 설명했지만, 이것에 한정되지 않고, 다이렉트 모드에서 참조하는 것을 아는 정보를 부호화해서, 그 다이렉트 모드에서 참조하는 정보에 근거하여 다이렉트 모드 시에 복호화를 하도록 하면 된다.
(실시예 4)
도 26은 본 발명의 실시예 4에 따른 동화상 부호화 장치를 설명하는 블럭도이다.
본 실시예 4의 동화상 복호화 장치(40)는 실시예 3의 동화상 부호화 장치(30)로부터의 부호열을 수취하여, 해당 부호열에 포함되어 있는, 참조 픽쳐 번호의 할당을 상기 디폴트 할당 방법과 상기 적응적 할당 방법 중 어느 것으로 실행하는지를 나타내는 정보(할당 방법 지시 정보)에 근거하여 각 픽쳐의 복호화 처리를 하는 것이다.
즉, 본 실시예 4의 동화상 복호화 장치(40)의 하나의 동작 형태가 실시예 2의 동화상 복호화 장치(20)의 동작이며, 바꿔 말하면, 실시예 4의 동화상 복호화 장치(40d), 참조 픽쳐 번호의 할당 방법으로서 디폴트 할당 방법을 이용하는 경우에는, 동화상 복호화 장치(40)의 동작이 실시예 2의 동화상 복호화 장치(20)와 동일하게 된다.
이하, 구체적으로 설명한다.
본 실시예 4의 동화상 복호화 장치(40)는, 실시예 2의 동화상 복호화 장치(20)에서의 메모리 제어부(204) 대신에, 부호열에 헤더 정보로서 포함되는 할당 방법 지시 정보에 근거하여, 상기 디폴트 할당 방법과 적응적 할당 방법 중 어느 하나에 따른 메모리의 관리를 하는 메모리 제어부(244)를 구비한 것이다. 본 실시예 4의 동화상 복호화 장치(40)의 그 외의 구성은 실시예 2의 동화상 부호화 장치(20)에서의 것과 동일하다.
다음에 동작에 대하여 설명한다.
이 동화상 복호화 장치(40)는 동화상 부호화 장치(30)로부터의 부호열에 헤더 정보로서 포함되는 할당 방법 지시 정보에 따른 동작을 한다.
즉, 이 동화상 복호화 장치(40)는, 부호화측에서 참조 픽쳐 번호의 할당 방법으로서 디폴트 할당 방법이 선택되어 있는 경우, 즉, 부호열에 디폴트 방법이 선택되어 있는 것을 나타내는 정보가 포함되어 있는 경우는, 실시예 2의 동화상 부호화 장치(20)와 마찬가지로 동작한다.
또한, 이 동화상 복호화 장치(40)는, 부호화측에서 참조 픽쳐 번호의 할당 방법으로서 적응적 할당 방법이 선택되어 있는 경우는, 즉, 부호열에 적응적 할당 방법이 선택되어 있는 것을 나타내는 정보가 포함되어 있는 경우에는, 적응적 할당 방법에 따른 동작을 한다. 이 경우, 참조 픽쳐 번호의 할당이 어떻게 행하여져 있는지의 정보도 헤더 정보로서 부호열에 포함되어 있기 때문에, 그 정보를 기초로 하여 참조 번호를 할당한다. 이하, 적응적 할당 방법이 선택되어 있는 경우의 동작을 설명한다.
참조 픽쳐용 메모리(207)에는, 도 24에 도시하는 바와 같이, 대상 픽쳐의 처리마다 각 메모리 영역에서의 참조 후보 픽쳐의 리라이팅이 행하여진다.
구체적으로는, 복호화 대상 픽쳐가 픽쳐 B12인 경우, 해당 대상 블럭인 픽쳐 B12에 대한 복호화 처리는 대상 블럭의 헤더 정보에 따라 후보 픽쳐로부터 참조 픽쳐를 선택하여 행하여진다.
예컨대, 대상 블럭의 부호화 모드가 쌍방향 예측 모드인 경우, 대상 블럭의 복호화 처리는 전방 참조 픽쳐로서, 후보 픽쳐 P10, B11, P7 중에서 대상 블럭의 헤더 정보에 포함되는 참조 픽쳐 번호와 동일한 참조 픽쳐 번호가 부여되어 있는 픽쳐가 선택된다. 여기서, 대상 블럭의 헤더 정보에 포함되는 참조 픽쳐 번호가 [1]인 경우는, 전방 참조 픽쳐로서 후보 픽쳐 B11이 선택된다. 그리고, 대상 블럭의 쌍방향 예측 복호화 처리가, 전방 참조 픽쳐로서 후보 픽쳐 B11을 참조하고, 후방 참조 픽쳐로서 픽쳐 P13을 참조하여 행하여진다.
또한, 대상 블럭의 부호화 모드가 다이렉트 모드인 경우, 대상 블럭의 복호화 처리는, 전방 참조 픽쳐로서, 후보 픽쳐 P7, P10, B9 중에서 참조 픽쳐 번호 [0]이 부여되어 있는 픽쳐(즉 픽쳐 P10)가 전방 참조 픽쳐로서 선택된다. 그리고, 대상 블럭의 복호화 처리가, 전방 참조 픽쳐로서 후보 픽쳐 P10을 참조하고, 후방 참조 픽쳐로서 픽쳐 P13을 참조하여 행하여진다.
이와 같이 본 실시예 4에서는, 참조 픽쳐용 메모리(207)에서, 도 24에 도시하는 바와 같이 메모리의 관리가 행하여지는, 즉, 각 후보 픽쳐의 참조 픽쳐 번호의 값으로서 디폴트 할당 방법에 의해 할당된 참조 픽쳐 번호의 값을 부호화 상황에 따라 변경한 값을 이용하여 행하여지기 때문에, 부호화 효율에 따라서, 후보 픽쳐의 참조 픽쳐 번호를 리라이팅하는 부호화 방법에 대응한 복호화 방법을 실현할 수 있다.
즉, 실시예 2에서는, 대상 픽쳐에 시간적으로 가장 가까운 참조 후보 픽쳐일수록 작은 값의 참조 픽쳐 번호가 부여되어 있기 때문에, 다이렉트 모드에서는 대상 픽쳐 B12에 시간적으로 가장 가까운 픽쳐 B11밖에 참조할 수 없지만, 본 실시예 4에서는 대상 픽쳐 B12에 시간적으로 가장 가까운 픽쳐 B11 이외의 픽쳐를 전방 참조할 수 있다.
또한, 이 경우, 픽쳐 B12의 블럭의 다이렉트 모드에서의 복호화 시에 참조하는 픽쳐를 픽쳐 B11이 아니라 픽쳐 P10으로 할 수 있어, 픽쳐 B11을 복호화할 필요가 없어진다. 따라서, 도 25(a)에 도시하는 바와 같이 P 픽쳐 직후의 B 픽쳐를 복호화하지 않고서 처리할 수 있어, 픽쳐 B11이 불필요한 경우에는 복호화 처리의 고속화를 도모할 수 있다. 또한, 전송 오류 등으로 픽쳐 B11의 데이터가 결핍되었다고 해도 복호할 수 있기 때문에, 복호화의 신뢰성을 향상시킬 수 있다.
이와 같이, 참조 후보 픽쳐에 할당하는 참조 픽쳐 번호의 값을 부호 화 상황에 따라 임의의 값으로 하여, 다이렉트 모드에서 참조하는 픽쳐를 의도적으로 정할 수 있도록 되면, 도 25(a)에 도시하는 바와 같이 소정의 픽쳐를 복호화하지 않고서 처리할 수 있다.
또한 본 실시예 4와 같이 P 픽쳐 사이에 B 픽쳐가 2매 있는 경우에 관계없이, 도 25(b)에 도시하는 바와 같이 P 픽쳐 사이에 B 픽쳐가 3매 있는 경우에도 소정의 픽쳐를 부호화하지 않고서 처리할 수 있어, 사용자가 필요로 하지 않는 픽쳐가 미리 부호화측에서 알고 있는 경우는, 이러한 픽쳐를 생략하여 복호화에서의 처리 시간의 단축화를 도모할 수 있다.
도 25(b)에 나타내는 참조 관계에서는, 픽쳐 B3을 복호화하지 않더라도 다른 픽쳐의 복호화가 가능해진다.
즉, 실시예 2에서는, 픽쳐 B4가 다이렉트 모드에서는 픽쳐 B3을 참조하여 복호화되기 때문에, 픽쳐 B3을 복호화해야 하지만, 본 실시예 4와 같이, 부호화측에서, 다이렉트 모드에서 참조하는 픽쳐가 임의로 설정되어 있는 경우에는, 픽쳐 B3의 복호화를 불필요로 할 수 있다.
또한, 복호화측에서는, 대상 블럭을 다이렉트 모드로 처리할 때, 참조 픽쳐 번호 [0]이 부여되어 있는 전방 참조 후보 픽쳐가 즉시 참조 픽쳐로서 이용되기 때문에, 복호화의 시간을 단축할 수 있다.
또, 상기 각 실시예 1∼4에서는, P 픽쳐의 부호화 혹은 복호화 시에 B 픽쳐를 참조하지 않은 경우를 나타내었지만, P 픽쳐의 부호화 혹은 복호화 시에 B 픽쳐 를 참조하더라도 된다.
또한, 상기 각 실시예 1∼4에서는, 픽쳐 사이의 시간적 거리를 각 픽쳐의 표시 시간에 근거하여 산출하는 경우를 나타내었지만, 픽쳐 사이의 시간적 거리는 각 픽쳐의 표시 시간 등의 시간 이외의 정보에 근거하여 구하도록 하더라도 된다.
예컨대, 각 픽쳐에 대하여, 픽쳐가 처리될수록 증가되는 카운터값을 설정하고, 이 카운터값에 근거하여 픽쳐 사이의 시간적 거리를 산출하도록 하더라도 된다.
예컨대, 하나의 콘텐츠에 대한 비디오 스트림과 오디오 스트림에 모두 시간 정보가 포함되어 있는 경우, 비디오 정보와 오디오 정보를 양 정보의 동기가 어긋나지 않도록 시간 정보에 근거하여 관리하는 것은, 시간 정보의 단위가 상세하여 간단하지 않지만, 상기 각 픽쳐의 배열을 카운터값에 의해 관리함으로써, 비디오 정보와 오디오 정보에 대한 동기를 고려한 관리는 간단하게 된다.
또한, 상기 각 실시예 1∼4에서는, 데이터 처리 단위, 예컨대, GOP나 픽쳐 등의 헤더 정보와 데이터부를 분리하지 않고서, 각 데이터 처리 단위에 대응하는 부호열 중에 포함시켜 전송하는 경우를 나타내었지만, 이들은 분리하여 각각의 스트림으로 전송하도록 하더라도 무방하다.
예컨대, 스트림을 패킷 등의 데이터 전송 단위로 구분하여 전송하는 경우에는, 상기 픽쳐에 대응하는 헤더부와 데이터부는 분리하여 전송하도록 하더라도 무방하다. 이 경우는, 헤더부와 데이터부는 동일한 스트림에 포함되지 않는 것도 있다. 단, 패킷을 이용한 데이터 전송에서는, 헤더부와 데이터부가 전송하는 순서가 연속이 아니더라도, 대응하는 헤더부와 데이터부가 각각의 패킷으로 전송될 뿐이며, 대응하는 헤더부와 데이터부와의 대응 관계는 패킷의 헤더 정보 등에 의해 유지되게 되어, 실질적으로는 하나의 비트 스트림 중에 포함되어 있는 경우와 동일하다.
또한, 상기 실시예 1∼4에서는, 상기 참조 픽쳐 번호는 대상 블럭의 부호화 시에 복수의 참조 후보 픽쳐 중 어느 픽쳐가 참조되었는지를 식별하는 정보로서 이용하고 있지만, 이 참조 픽쳐 번호는 부호화 처리 혹은 복호화 처리의 대상으로 되는 대상 픽쳐에 대한 복수의 전방 참조 후보 픽쳐의 위치를 나타내는 정보로서 이용하더라도 된다. 즉, 상기 실시예 1 및 2의 참조 픽쳐 번호의 할당 방법 혹은 실시예 3 및 4의 디폴트 할당 방법에서는, 상기 복수의 전방 참조 후보 픽쳐에는, 대상 픽쳐에 가까운 것일수록 값이 작은 참조 픽쳐 번호가 부여되기 때문에, 각 전방 참조 후보 픽쳐에 할당되어 있는 참조 픽쳐 번호의 값의 크기에 따라서, 각 전방 참조 후보 픽쳐의 위치, 즉, 각 전방 참조 후보 픽쳐가 모든 전방 참조 픽쳐 중에 몇 번째로 대상 픽쳐에 가까운 것인지를 검지할 수 있다.
또한, 동화상에 대응하는 부호열에는, 이러한 각 전방 후보 픽쳐의 상대 위치를 나타내는 참조 픽쳐 번호와는 별도로, 동화상을 구성하는 각 픽쳐의 표시 시간축 상에서의 위치를 나타내는 위치 식별 정보를 포함하도록 하더라도 된다. 이 위치 식별 정보는 픽쳐의 표시 시간을 나타내는 시간 정보와는 다른 것으로, 각 픽쳐의 상대 위치를 특정하는 정보이다.
또한, 상기 각 실시예 1∼4에서는, 다이렉트 모드에서 기준 픽쳐로서 부호화 혹은 복호화의 대상으로 되는 대상 픽쳐의 블럭이 부호화될 때에 후방 참조되는 픽쳐(대상 픽쳐에 대한 후방 참조 픽쳐)를 이용하는 경우에 대하여 나타내었지만, 다이렉트 모드에서는, 기준 픽쳐로서, 대상 픽쳐에 대한 후방 참조 픽쳐 이외의 처리된 픽쳐, 예컨대, 대상 픽쳐의 블럭이 부호화될 때에 전방 참조되는 픽쳐를 이용하더라도 된다.
(실시예 5)
도 27은 본 발명의 실시예 5에 따른 동화상 부호화 장치를 설명하기 위한 블럭도이다.
본 실시예 5의 동화상 부호화 장치(50)는, P 픽쳐 및 B 픽쳐의 부호화 시에 전방 참조하는 후보 픽쳐, 및 B 픽쳐에 대한 부호화 모드가 상기 실시예 1의 동화상 부호화 장치(10)와는 상이하다.
즉, 본 실시예 5의 동화상 부호화 장치(50)는, 실시예 1의 부호화 제어부(110) 및 모드 선택부(109) 대신에, 이들과는 다른 동작을 하는 제어부(150) 및 모드 선택부(159)를 갖는 것이다.
구체적으로는, 실시예 5의 동화상 부호화 장치(50)의 제어부(150)는, P 픽쳐의 부호화 시에는 해당 P 픽쳐의 전방에 위치하는 4개의 픽쳐(I 또는 P 픽쳐)가 전방 참조의 후보 픽쳐로서 이용되고, B 픽쳐의 부호화 시에는 해당 B 픽쳐의 전방에 위치하는 4개의 픽쳐(I 또는 P 픽쳐), 해당 B 픽쳐의 최근방에 위치하는 하나의 전방 B 픽쳐 및 후방의 하나의 I 또는 P 픽쳐가 후보 픽쳐로서 이용되도록, 참조 픽 쳐용 메모리(117)를 제어하는 것이다.
또한, 실시예 5의 동화상 부호화 장치(50)의 모드 선택부(159)는, P 픽쳐의 블럭의 부호화 시에는 대상 블럭의 부호화 모드로서, 픽쳐내 부호화, 움직임 벡터를 이용한 픽쳐간 예측 부호화, 움직임 벡터를 이용하지 않는(움직임을 0으로서 취급하는) 픽쳐간 예측 부호화 중에서 하나를 선택하고, B 픽쳐의 블럭의 부호화 시에는 대상 블럭의 부호화 모드로서, 픽쳐내 부호화, 전방 움직임 벡터를 이용하는 픽쳐간 예측 부호화, 후방 움직임 벡터를 이용하는 픽쳐간 예측 부호화, 및 전방 움직임 벡터 및 후방 움직임 벡터를 이용하는 픽쳐간 예측 부호화 중에서 하나를 선택하는 것이다. 즉, 본 실시예 5의 동화상 부호화 장치(50)의 모드 선택부(159)는, 실시예 1의 동화상 부호화 장치(10)의 모드 선택부(109)와는 다이렉트 모드를 이용하지 않는 점에서만 상이하며, 따라서, 이 동화상 부호화 장치(50)는 동화상 부호화 장치(10)의 움직임 벡터 기억부(116)는 갖고 있지 않다.
또한, 실시예 5의 동화상 부호화 장치(50)의 부호화 제어부(150) 및 모드 선택부(159) 이외의 부분은 실시예 1의 동화상 부호화 장치(10)에서의 것과 동일하다.
다음에 동작에 대하여 설명한다.
입력 픽쳐는 표시 시간순으로 픽쳐 단위로 입력 픽쳐용 메모리(101)에 입력된다. 여기서는, 도 29(a)에 도시하는 바와 같이, 표시 시간순으로 각 픽쳐 P0, B1, B2, P3, B4, B5, P6, B7, B8, P9, B10, B11, P12, B13, B14, P15, B16, B17, P18이 입력 픽쳐용 메모리(101)에 입력된다.
입력 픽쳐용 메모리(101)에 입력된 각 픽쳐는, 도 29(b)에 도시하는 바와 같이, 부호화순으로 재배열된다. 부호화순으로의 재배열은 픽쳐간 예측 부호화에서의 참조 관계에 근거하여 행하여진다. 즉, 제 1 픽쳐의 부호화 시에 참조 픽쳐의 후보로서 이용되는 제 2 픽쳐가 제 1 픽쳐보다 먼저 부호화되도록, 입력된 픽쳐의 재배열이 행하여진다.
여기서는, P 픽쳐의 부호화 시에는, 시간적으로 그 전방에 있는 근방의 4개의 픽쳐(I 또는 P 픽쳐)가 참조 픽쳐의 후보로서 이용된다. 또한, B 픽쳐의 부호화 시에는, 시간적으로 그 근방에 있는 전방의 4개의 픽쳐(I 또는 P 픽쳐), 시간적으로 그 전방에 있는 최근방의 하나의 B 픽쳐, 및 후방에 있는 최근방의 I 또는 P 픽쳐가 참조 픽쳐의 후보로서 이용된다.
입력 픽쳐용 메모리(101)에서 재배열이 행하여진 각 픽쳐는 움직임 보상의 단위마다 판독된다. 여기서는, 움직임 보상의 단위는 수평 16 ×수직 16 화소의 크기, 즉 매트릭스 형상으로 화소를 배열하여 이루어지는 직사각형 영역이며, 수평 방향의 화소수 및 수직 방향의 화소수는 모두 16 화소인 영역(매크로 블럭)이다. 단, 이하의 설명에서는, 매크로 블록을 간단히 블럭이라고 한다.
이하에서는, 픽쳐 P15, B13, B14의 부호화 처리에 대하여 순서대로 설명한다.
<픽쳐 P15의 부호화 처리>
픽쳐 P15는 P 픽쳐이기 때문에, 이 픽쳐에 대해서는 전방 참조를 이용한 픽 쳐간 예측 부호화가 실시된다. 또한, P 픽쳐의 부호화에서는, B 픽쳐가 참조 픽쳐로서 이용하지 않는다.
도 28은 참조 픽쳐용 메모리(117)에서의 픽쳐 관리의 모양을 나타낸다.
예컨대, 픽쳐 P15의 부호화 개시 시점에서는, 참조 픽쳐용 메모리(117)에는 논리 메모리 번호가 할당된 메모리 영역에 논리 메모리 번호의 값이 작은 것부터 순서대로, 픽쳐 P12, B11, P9, P6, P3이 축적되어 있다. 이들 픽쳐는 이미 부호화가 종료되어 있고, 참조 픽쳐용 메모리(117)에 축적되어 있는 화상 데이터는 동화상 부호화 장치(50)에 의해 복호화된 화상 데이터이다. 이하, 설명을 간략화하기 위해서, 메모리에 그 화상 데이터가 축적되어 있는 픽쳐를 간단히 메모리에 축적되어 있는 픽쳐라고도 한다.
참조 픽쳐용 메모리(117)에 축적되어 있는 참조 후보 픽쳐에 대하여, 부호화 제어부(150)의 제어에 의해 참조 픽쳐 번호의 부여가 행하여진다. 그 때의 번호 부여는 픽쳐의 부호화순이 아니라, 표시 시의 시간순에 따라서 행하여진다. 상세하게는, 시간순으로 새로운 참조 후보 픽쳐, 즉 표시의 순서가 늦은 참조 후보 픽쳐에 대하여, 값이 보다 작은 참조 픽쳐 번호가 할당된다. 단, P 픽쳐의 부호화 시에는, B 픽쳐에 대해서는 참조 픽쳐 번호의 부여가 행하여지지 않는다. 또한, B 픽쳐의 부호화 시에는, 시간순으로 가장 새로운 참조 후보 픽쳐에는 후방 참조 픽쳐로서 취급하는 것을 나타내는 부호 [b]가 할당된다.
이러한 참조 픽쳐 번호의 결정 방법에 따르면, 도 28에 도시하는 바와 같이, 픽쳐 P12, P9, P6, P3에 대한 참조 픽쳐 번호는 각각 [0], [1], [2], [3]로 되고, 픽쳐 B11에는 참조 픽쳐 번호가 할당되지 않는다.
그런데, P 픽쳐의 부호화 시에는, 부호화 제어부(150)는 스위치(113, 114, 115)가 온이 되도록 각 스위치를 제어한다. 입력 픽쳐용 메모리(101)로부터 판독된 픽쳐 P15의 블럭은 먼저 움직임 벡터 검출부(108), 모드 선택부(109), 차분 연산부(102)에 입력된다.
움직임 벡터 검출부(108)에서는, 입력 픽쳐용 메모리(117)에 축적된 픽쳐 중, 참조 픽쳐 번호가 부여된 픽쳐 P12, P9, P6, P3을 참조 후보 픽쳐로서 이용하여, 픽쳐 P15의 블럭에 대해서 움직임 벡터의 검출이 행하여진다. 이 경우, 움직임 벡터의 검출은 픽쳐 P12, P9, P6, P3 중에서 가장 상응한 참조 후보 픽쳐를 선택하는 것에 의해 실행된다. 검출된 움직임 벡터는 모드 선택부(159) 및 부호열 생성부(104)에 대하여 출력된다. 또한, 움직임 벡터가 픽쳐 P12, P9, P6, P3 중 어느 하나를 참조하여 얻어진 움직임 벡터인지라는 정보 Rp, 즉 참조 픽쳐 번호도 모드 선택부(159)에 대하여 출력된다.
모드 선택부(159)에서는, 움직임 벡터 검출부(108)에 의해 검출한 움직임 벡터를 이용하여 픽쳐 P15의 블럭의 부호화 모드가 결정된다. 여기서 부호화 모드란, 블럭을 어떠한 방법으로 부호화하는지를 나타내는 것이다. 예컨대, P 픽쳐의 블럭에 대해서는, 부호화 모드로서, 픽쳐내 부호화, 움직임 벡터를 이용한 픽쳐간 예측 부호화, 움직임 벡터를 이용하지 않는(움직임을 0으로서 취급하는) 픽쳐간 예측 부호화 중의 하나가 선택된다. 부호화 모드의 선택은, 일반적으로는 소정의 비트량으로 부호화 오차가 최소로 되도록 행하여진다.
모드 선택부(159)에 의해 결정된 부호화 모드 Ms는 부호열 생성부(104)에 대하여 출력된다. 또한, 결정한 부호화 모드가 전방 참조가 행하여지는 부호화 모드인 경우에는, 참조 픽쳐 번호도 부호열 생성부(104)에 대하여 출력된다.
또한, 모드 선택부(159)에 의해 결정된 부호화 모드에 근거하여 얻어진 예측 화상 Pd가 차분 연산부(102)와 가산 연산부(106)에 출력된다. 단, 픽쳐내 부호화가 선택된 경우에는, 예측 화상 Pd가 출력되지 않는다. 또한, 모드 선택부(159)에 의해 픽쳐내 부호화가 선택된 경우에는, 스위치(111)는 입력 단자 Ta가 출력 단자 Tb1에, 스위치(112)는 출력 단자 Td가 입력 단자 Tc1에 접속되도록 제어되고, 픽쳐간 예측 부호화가 선택된 경우에는, 스위치(111)는 입력 단자 Ta가 출력 단자 Tb2에, 스위치(112)는 출력 단자 Td가 입력 단자 Tc2에 접속되도록 제어된다.
이하에서는, 모드 선택부(109)에 의해 픽쳐간 예측 부호화가 선택된 경우에 대해 설명한다. 단, 이 경우의 차분 연산부(102), 예측 오차 부호화부(103), 부호열 생성부(104), 예측 오차 복호화부(105)의 동작은 실시예 1의 것과 동일하기 때문에, 그 설명은 생략한다.
픽쳐 P15에 대하여 모든 블럭의 부호화 처리가 종료되면, 부호화 제어부(150)에서는, 참조 픽쳐용 메모리(117)에 축적되어 있는 픽쳐에 대한 논리 메모리 번호 및 참조 픽쳐 번호의 갱신이 행하여진다.
즉, 부호화된 픽쳐 P15는 참조 픽쳐용 메모리(117)에 축적되어 있는 어떤 픽쳐보다도 표시 시간순으로 새로운 것이기 때문에, 픽쳐 P15는 논리 메모리 번호(0)가 설정된 메모리 영역에 저장된다. 그리고, 이미 다른 참조 픽쳐가 축적되어 있 는 메모리 영역의 논리 메모리 번호가 1만큼 증가된다. 또한, 다음 부호화 대상 픽쳐는 B 픽쳐인 픽쳐 B13이기 때문에, 픽쳐 B11에 대해서도 참조 픽쳐 번호의 부여가 행하여진다. 이것에 의해, 논리 메모리 번호(0)∼(5)가 설정된 메모리 영역에는, 각각 픽쳐 P15, P12, B11, P9, P6, P3이 저장되고, 픽쳐 P12, B11, P9, P6, P3의 각각에 대하여 참조 픽쳐 번호 [0], [1], [2], [3], [4]가 부여되게 된다. 또한, 다음 부호화 대상으로 되는 픽쳐는 B 픽쳐이기 때문에, 논리 메모리 번호 0에 저장되어 있는 픽쳐 P15에는, 참조 픽쳐 번호 대신에, 후방 참조 픽쳐로서 취급되는 것을 나타내는 부호 [b]가 할당된다.
<픽쳐 B13의 부호화 처리>
픽쳐 B13은 B 픽쳐이기 때문에, 쌍방향 참조를 이용한 픽쳐간 예측 부호화가 행하여진다. 이 경우, 전방 참조의 후보 픽쳐로서는, 시간적으로 근방의 4개의 I 또는 P 픽쳐와, 시간적으로 최근방의 하나의 B 픽쳐가 이용되고, 후방 참조의 후보 픽쳐로서는 시간적으로 최근방에 있는 I 또는 P 픽쳐가 이용된다. 따라서, 픽쳐 B13에 대한 전방 참조의 후보 픽쳐가 픽쳐 P12, B11, P9, P6, P3로, 또한, 픽쳐 B13에 대한 후방 참조의 후보 픽쳐가 픽쳐 P15로 된다. 이들 참조 후보 픽쳐는 참조 픽쳐용 메모리(117)에 축적되어 있다. 이들 참조 후보 픽쳐에 대해서는, 도 28에 도시하는 바와 같이, 논리 메모리 번호 및 참조 픽쳐 번호가 할당된다.
B 픽쳐의 부호화 시에는, 부호화 제어부(150)는 스위치(113, 114, 115)가 온으로 되도록 각 스위치를 제어한다. 따라서, 입력 픽쳐용 메모리(101)로부터 판독 된 픽쳐 B11의 블럭은 움직임 벡터 검출부(108), 모드 선택부(109), 차분 연산부(102)에 입력된다.
움직임 벡터 검출부(108)에서는, 참조 픽쳐용 메모리(117)에 축적된 픽쳐 P12, B11, P9, P6, P3을 전방 참조의 후보 픽쳐로서, 픽쳐 P15를 후방 참조의 후보 픽쳐로서 이용하여, 픽쳐 B13의 블럭의 전방 움직임 벡터와 후방 움직임 벡터의 검출이 행하여진다. 이 경우, 전방 움직임 벡터의 검출은 픽쳐 P12, B11, P9, P6, P3 중에서 가장 상응한 픽쳐를 참조 픽쳐로서 선택하는 것에 의해 행하여진다. 검출된 움직임 벡터는 모드 선택부(159) 및 부호열 생성부(104)에 대하여 출력된다. 또한, 전방 움직임 벡터가 픽쳐 P12, B11, P9, P6, P3 중 어느 하나를 참조하는 움직임 벡터인지라는 정보 Rp, 즉 참조 픽쳐 번호도 모드 선택부(159)에 대하여 출력된다.
그리고, 모드 선택부(159), 차분 연산부(102), 부호열 생성부(104), 예측 오차 복호화부(105)의 동작은 픽쳐 P15의 부호화 시와 마찬가지로 행하여진다.
픽쳐 B13에서의 모든 블럭의 처리가 종료되면, 부호화 제어부(150)의 제어에 의해, 참조 픽쳐용 메모리(117)에 축적되어 있는 픽쳐에 대한 논리 메모리 번호 및 참조 픽쳐 번호의 갱신이 행하여진다.
즉, 픽쳐 B13은, 표시 시간순에서는 참조 픽쳐용 메모리(117)에 축적되어 있는 픽쳐 P15보다도 이전에 있고, 참조 픽쳐용 메모리(117)에 축적되어 있는 픽쳐 P12보다도 새로운 것이기 때문에, 픽쳐 B13은 논리 메모리 번호(1)가 설정되어 있는 메모리 영역에 저장된다. 또한, 픽쳐 B11은 이후의 픽쳐의 부호화 처리에서는 참조 픽쳐로서 이용되지 않으므로 삭제된다. 이때, 픽쳐 B11을 참조 픽쳐용 메모리로부터 삭제한 것을 나타내는 정보가 제어 신호 Cs1로서 부호열 생성부(104)에 출력된다. 부호열 생성부(104)는 이 정보를 헤더 정보로서 부호열에 기술하여 출력한다. 또한, 픽쳐 P12에 대응하는 메모리 영역의 논리 메모리 번호는 1 증가된다.
다음 부호화 대상 픽쳐는 B 픽쳐인 픽쳐 B14이다. 따라서, 논리 메모리 번호(0)에 대응하는 메모리 영역에 축적되어 있는 픽쳐는 후방 참조 픽쳐로서 이용되고, 그 이외의 픽쳐에 대하여 참조 픽쳐 번호가 할당된다. 이것에 의해, 논리 메모리 번호(0)∼(5)에 대응하는 메모리 영역에는 각각 픽쳐 P15, B13, P12, P9, P6, P3이 저장되고, 픽쳐 B13, P12, P9, P6, P3에 대하여 각각 참조 픽쳐 번호 [0], [1], [2], [3], [4]가 부여되게 된다.
<픽쳐 B14의 부호화 처리>
픽쳐 B14는 B 픽쳐이기 때문에, 쌍방향 참조를 이용한 픽쳐간 예측 부호화를 한다. 픽쳐 B14에 대한 참조 픽쳐에는, 전방 참조 픽쳐로서 픽쳐 B13, P12, P9, P6, P3이, 후방 참조 픽쳐로서 픽쳐 P15가 이용된다. B 픽쳐의 처리에서는, 부호화 제어부(150)는 스위치(113, 114, 115)가 온이 되도록 각 스위치를 제어한다. 따라서, 입력 픽쳐용 메모리(101)로부터 판독된 픽쳐 B14의 블럭은 움직임 벡터 검출부(108), 모드 선택부(159), 차분 연산부(102)에 입력된다.
움직임 벡터 검출부(108)에서는, 참조 픽쳐용 메모리(117)에 축적된 픽쳐 B13, P12, P9, P6, P3을 전방 참조의 후보 픽쳐로서, 픽쳐 P15를 후방 참조의 후보 픽쳐로서 이용하여, 픽쳐 B14의 블럭의 전방 움직임 벡터와 후방 움직임 벡터의 검출이 행하여진다. 이 경우, 전방 움직임 벡터의 검출은 픽쳐 B13, P12, P9, P6, P3 중에서 가장 상응한 픽쳐를 참조 픽쳐로 선택하는 것에 의해 행하여진다. 검출된 움직임 벡터는 모드 선택부(109) 및 부호열 생성부(104)에 출력된다. 또한, 전방 움직임 벡터가 픽쳐 B13, P12, P9, P6, P3 중 어느 하나를 참조하여 얻어진 움직임 벡터인지라는 정보 Rp, 즉 참조 픽쳐 번호도 모드 선택부(159)에 출력된다.
그리고, 모드 선택부(159), 차분 연산부(102), 부호열 생성부(104), 예측 오차 복호화부(105), 가산 연산부(106)의 동작은 픽쳐 P15의 부호화 시와 거의 마찬가지로 행하여진다.
픽쳐 B14에서의 모든 블럭의 처리가 종료되면, 부호화 제어부(150)의 제어에 의해, 참조 픽쳐용 메모리(117)에 축적되어 있는 픽쳐에 대한 논리 메모리 번호 및 참조 픽쳐 번호의 갱신이 행하여진다.
즉, 픽쳐 B14는, 표시 시간순으로는 참조 픽쳐용 메모리(117)에 축적되어 있는 픽쳐 P15보다도 이전에 있고, 참조 픽쳐용 메모리(117)에 축적되어 있는 픽쳐 B13보다도 새로운 것이기 때문에, 픽쳐 B14는 논리 메모리 번호(1)가 설정되어 있는 메모리 영역에 저장된다. 또한, 픽쳐 B13은 이후의 픽쳐의 부호화 처리에서는 참조 픽쳐로서 이용되지 않으므로 삭제된다. 이때, 픽쳐 B13을 참조 픽쳐용 메모리로부터 삭제한 것을 나타내는 정보가 제어 신호 Cd1로서 부호열 생성부(104)에 출력된다. 부호열 생성부(104)는 이 정보를 헤더 정보로서 부호열 중에 기술하여 출력한다.
다음 부호화 대상 픽쳐는 P 픽쳐인 픽쳐 P18이다. 따라서, B 픽쳐 이외의 픽쳐에 대하여 참조 픽쳐 번호가 할당된다. 이것에 의해, 논리 메모리 번호(0)∼(5)의 메모리 영역에는 각각 픽쳐 P15, B14, P12, P9, P6이 저장되고, 픽쳐 P15, P12, P9, P6에 대하여 각각 참조 픽쳐 번호 [0], [1], [2], [3]이 부여되게 된다.
이와 같이 본 실시예 5에서는, 부호화 대상 픽쳐에 대한 전방 참조의 복수의 후보 픽쳐에는 그 표시 시간이 늦은 것일수록 작은 값의 참조 픽쳐 번호(즉 대상 블럭의 전방 움직임 벡터가 어느 후보 픽쳐를 참조하여 얻어진 것인지를 식별하기 위한 정보)를 할당하기 때문에, 후보 픽쳐 중 가장 참조 픽쳐로서 선택되기 쉬운 픽쳐일수록, 보다 값이 작은 참조 픽쳐 번호를 할당되게 된다. 이것에 의해, 참조 픽쳐 번호에 대한 부호량을 최소로 할 수 있어, 부호화 효율의 향상을 도모할 수 있다.
이하, 본 실시예 5의 효과에 대하여, B 픽쳐에 대한 부호화가 다른 B 픽쳐를 참조 후보 픽쳐로서 이용하여 행하여지는 경우를 예로 들어, 종래의 문제점과 함께 구체적으로 설명한다.
예컨대, 동화상의 픽쳐가 도 29(a)에 도시하는 바와 같이 표시순으로 배열되어 있고, 대상 픽쳐의 부호화 시에 전방 참조의 후보 픽쳐로서 4매의 P 픽쳐와 1매의 B 픽쳐를 이용하는 경우에 대하여 설명한다.
도 30은 이 경우의 참조 픽쳐용 메모리에서의 픽쳐의 관리예를 나타내고 있다. 또, 해당 메모리에는 후보 픽쳐가 부호화순으로 저장된다.
픽쳐 P15의 부호화 시에는, 참조 픽쳐용 메모리에는 논리 메모리 번호가 작은 메모리 영역으로부터 순서대로 후보 픽쳐로서 픽쳐 B11, P12, P9, P6, P3이 축적되어 있다. 또한 이들 후보 픽쳐에는 각각 참조 픽쳐 번호 [0], [1], [2], [3], [4]가 할당되어 있다. 따라서, P 픽쳐의 부호화 시에 참조 픽쳐로서 이용하는 일이 없는 B 픽쳐(여기서는 픽쳐 B11)에 대하여 참조 픽쳐 번호가 할당되어 있다. 그 때문에, 사용되는 일이 없는 참조 픽쳐 번호가 발생하여, 부호화 효율의 열화가 일어난다.
또한, 픽쳐 B13의 부호화 시에는, 참조 픽쳐용 메모리에는 논리 번호순으로 픽쳐 P15, B11, P12, P9, P6, P3이 축적되어 있다. 그리고, 픽쳐 P15에는 후방 참조 픽쳐로서 이용하는 것을 나타내는 부호 [b]가 할당되고, 나머지의 픽쳐의 각각에 대하여 참조 픽쳐 번호 [0], [1], [2], [3], [4]가 할당된다. 따라서, 부호화 대상인 픽쳐 B13으로부터 시간적으로 먼 픽쳐 B11에, 해당 픽쳐 B13에 시간적으로 가까운 픽쳐 P12보다도 값이 작은 참조 픽쳐 번호가 할당되게 된다. 일반적으로 움직임 검출을 한 경우, 확률적으로는 대상 픽쳐에 의해 시간적으로 가까운 후보 픽쳐가 참조 픽쳐로서 이용되는 경우가 많기 때문에, 시간적으로 먼 픽쳐 B11의 참조 픽쳐 번호의 값이 시간적으로 가까운 픽쳐 P12의 참조 픽쳐 번호보다도 작은 값으로 되면, 부호화 효율의 열화가 일어난다.
또한, 픽쳐 B14의 부호화 시에는, 참조 픽쳐용 메모리에는 논리 메모리 번호순으로 픽쳐 B13, P15, B11, P12, P9, P6이 축적되어 있다. 그리고, 픽쳐 B13에는 후방 참조 픽쳐로서 이용하는 것을 나타내는 부호 [b]가 부여되고, 나머지의 후보 픽쳐의 각각에 대하여 참조 픽쳐 번호 [0], [1], [2], [3], [4]가 할당된다. 따라서, 본래, 픽쳐 B14에 대해서는 후방 참조 픽쳐로서 이용되어야 되는 픽쳐 P15가 전방 참조의 후보 픽쳐로서 이용되게 된다. 또한, 본래, 픽쳐 B14에 대해서는, 전방 참조 픽쳐의 후보로서 이용되어야 되는 픽쳐 B13이 후방 참조 픽쳐로서 이용되게 된다. 이 결과, 정확하게 부호화를 하기 어려워진다. 또한, 픽쳐 B14의 부호화 시에는, 참조 픽쳐로서 이용되지 않는 픽쳐인 픽쳐 B11이 참조 픽쳐용 메모리 내에 존재하게 된다.
이에 반하여, 본 발명의 실시예 5에서는, 도 28에 도시하는 바와 같이, 참조 픽쳐용 메모리에는 표시순으로 대상 픽쳐에 대한 참조 후보 픽쳐를 저장하고, 전방 참조의 후보 픽쳐에는 그 표시 시간이 늦은 것일수록 작은 값의 참조 픽쳐 번호를 할당하기 때문에, 후보 픽쳐 중 가장 참조 픽쳐로서 선택되기 쉬운 픽쳐일수록, 보다 작은 참조 픽쳐 번호를 할당되게 된다. 이것에 의해, 참조 픽쳐 번호에 대한 부호량을 최소로 할 수 있어, 부호화 효율의 향상을 도모할 수 있다.
또한, P 픽쳐의 부호화 시에는, B 픽쳐에 대해서는 참조 픽쳐 번호의 부여를 하지 않기 때문에, 사용되는 일이 없는 참조 픽쳐 번호의 발생을 회피하여, 부호화 효율을 보다 향상할 수 있다.
또한, B 픽쳐의 부호화 시에는, 가장 값이 작은 논리 메모리 번호에 대응하는 메모리 영역에 저장되어 있는 픽쳐에는 참조용 픽쳐 번호를 할당하지 않고, 이 픽쳐를 후방 참조 픽쳐로서 이용하기 때문에, B 픽쳐의 예측 부호화 시에, 후방 참조되어야 할 P 픽쳐가 전방 참조 픽쳐로서 이용되는 경우를 회피할 수 있다.
또한, 참조 픽쳐로서 이용되지 않았던 픽쳐를 참조 픽쳐용 메모리로부터 삭제할 때에는, 삭제한 것을 나타내는 정보를 부호열 중에 기술하기 때문에, 복호화측에서는 참조 픽쳐용 메모리로부터, 복호화 대상 픽쳐 이후의 픽쳐의 복호화 처리에서는 참조 픽쳐로서 이용되지 않는 픽쳐가 삭제된 것을 검지할 수 있다.
또, 상기 실시예 5에서는, 움직임 보상은 수평 16 ×수직 16 화소로 이루어지는 화상 공간(매크로 블럭)을 단위로서, 예측 오차 화상의 부호화는 수평 8 ×수직 8 화소로 이루어지는 화상 공간(서브 블럭)을 단위로서 처리하는 경우에 대해 설명했지만, 움직임 보상 및 예측 오차 화상의 부호화의 단위로서의 매크로 블럭 혹은 서브 블럭의 화소수는 상기와는 다른 것이더라도 무방하다.
또한, 상기 실시예 5에서는 연속하는 B 픽쳐의 매수가 2매인 경우를 예로서 설명했지만, 상기 연속하는 B 픽쳐의 매수는 다른 매수이더라도 무방하다.
또한, 상기 실시예 5에서는 P 픽쳐의 부호화 시에 전방 참조되는 후보 픽쳐의 수가 4인 경우에 대하여 설명했지만, 이것은 다른 값이더라도 무방하다.
또한, 상기 실시예 5에서는 B 픽쳐의 부호화 시에 전방 참조되는 후보 픽쳐가 4개의 P 픽쳐와 하나의 B 픽쳐인 경우에 대하여 설명했지만, B 픽쳐에 대한 전방 참조의 후보 픽쳐는 이들 픽쳐에 한정되는 것이 아니다.
또한, 상기 실시예 5에서는, 부호화의 대상으로 되는, 동화상을 구성하는 각 픽쳐가 해당 각 픽쳐 이후의 다른 픽쳐의 부호화 시에 참조 픽쳐로서 이용되는 경우에 대하여 설명했지만, 부호화의 대상으로 되는, 동화상의 복수의 픽쳐는 참조 픽쳐로서 이용되지 않는 픽쳐를 포함하는 것이더라도 무방하다. 이 경우에는, 참 조 픽쳐로서 이용되지 않는 픽쳐는 참조 픽쳐용 메모리에는 축적되지 않도록 하는 것에 의해, 상기 실시예 5와 마찬가지의 효과가 얻어진다.
또한, 상기 실시예 5에서는 B 픽쳐에 대한 부호화가 다른 B 픽쳐를 참조 후보 픽쳐로서 이용하여 행하여지는 경우에 대하여 설명했지만, B 픽쳐에 대한 부호화는 다른 B 픽쳐를 참조하지 않고서 실행하는 것이더라도 무방하다. 이 경우, B 픽쳐는 입력 픽쳐용 메모리에는 축적되지 않고, 또한 이러한 경우에서도 참조 픽쳐 번호를 픽쳐의 표시 시간 순서에 따라서 할당함으로써, 상기 실시예 5와 마찬가지의 효과를 얻을 수 있다.
또한, 상기 실시예 5에서는 1 계통의 참조 픽쳐 번호를 할당하는 경우에 대하여 설명했지만, 이것은 전(前)방향, 후(後)방향 각각에 대하여 별도의 계통의 참조 픽쳐 번호를 할당하더라도 된다.
또한, 전방 참조의 후보 픽쳐에는 그 표시 시간이 늦은 것일수록 작은 값의 참조 픽쳐 번호를 할당했지만, 후보 픽쳐 중 가장 참조 픽쳐로서 선택되기 쉬운 픽쳐일수록 보다 작은 참조 픽쳐 번호를 할당하는 방법이면, 상기 실시예에서 설명한 경우에 한정되지 않는다.
또, 도 31은 참조 픽쳐 번호를 할당한 픽쳐에 대응하는 부호열의 구성(화상 부호화 신호의 포맷)을 나타내는 개념도이다. 1 픽쳐분의 부호화 신호 Pt는 픽쳐 선두에 포함되는 헤더 정보 Hp와, 이것에 연속하는 데이터부 Dp를 포함하고 있다. 헤더 정보 Hp에는 제어 신호(RPSL)가 포함되어 있다. 또한 데이터부 Dp에는 각 블럭에 대응하는 부호화 데이터(부호열)가 포함되어 있다.
예컨대, 부호열 BLx는 픽쳐내 부호화 모드로 부호화된 블럭의 부호열, 부호열 BLy는 픽쳐내 부호화 모드 이외의 픽쳐간 예측 부호화 모드로 부호화된 블럭의 부호열이다.
블럭의 부호열 BLx에는 헤더 정보 Hbx, 부호화 모드에 관한 정보 Prx, 부호화된 화상 정보 Dbx가 포함되어 있다. 블럭의 부호열 BLy에는 헤더 정보 Hby, 부호화 모드에 관한 정보 Pry, 제 1 참조 픽쳐 번호 Rld1, 제 2 참조 픽쳐 번호 Rld2, 제 1 움직임 벡터 MV1, 제 2 움직임 벡터 MV2, 부호화된 화상 정보 Dby가 포함되어 있다. 여기서, 제 1, 제 2 참조 픽쳐 번호 Rld1, Rld2 중 어느 것을 사용할지는 부호화 모드에 관한 정보 Pry에 의해 판단할 수 있다.
여기서는, 참조 픽쳐 번호 Rld1은 먼저 전방 참조 후보 픽쳐를 후방 후보 픽쳐에 대하여 우선적으로 부여된 것이다. 참조 픽쳐 번호 Rld2는 후방 참조 후보 픽쳐를 전방 참조 후보 픽쳐에 대하여 우선하여 부여된 것이다.
(실시예 6)
도 32는 본 발명의 실시예 6에 따른 동화상 복호화 장치를 설명하기 위한 블럭도이다.
본 실시예 6의 동화상 복호화 장치(60)는 상기 실시예 5의 동화상 부호화 장치(50)로부터 출력된 부호열 Bs를 복호화하는 것이다.
본 실시예 6의 동화상 복호화 장치(60)는 P 픽쳐 및 B 픽쳐의 복호화 시에 전방 참조하는 후보 픽쳐, 및 B 픽쳐에 대한 부호화 모드가 상기 실시예 2의 동화 상 복호화 장치(20)와는 상이하다.
즉, 본 실시예 6의 동화상 복호화 장치(60)는, 실시예 2의 메모리 제어부(204) 및 모드 선택부(223) 대신에, 이들과는 다른 동작을 하는 메모리 제어부(264) 및 모드 선택부(263)를 갖는 것이다.
구체적으로는, 실시예 6의 동화상 복호화 장치(60)의 메모리 제어부(264)는, P 픽쳐의 복호화 시에는 해당 P 픽쳐의 전방에 위치하는 4개의 픽쳐(I 또는 P 픽쳐)가 전방 참조의 후보 픽쳐로서 이용되고, B 픽쳐의 복호화 시에는 해당 B 픽쳐의 전방에 위치하는 4개의 픽쳐(I 또는 P 픽쳐), 해당 B 픽쳐의 최근방에 위치하는 하나의 전방 B 픽쳐 및 후방의 하나의 I 또는 P 픽쳐가 후보 픽쳐로서 이용되도록, 참조 픽쳐용 메모리(207)를 제어하는 것이다.
또한, 실시예 6의 동화상 복호화 장치(60)의 모드 복호부(263)는, P 픽쳐의 블럭의 복호화 시에는 대상 블럭의 부호화 모드로서, 픽쳐내 복호화, 움직임 벡터를 이용한 픽쳐간 예측 복호화, 움직임 벡터를 이용하지 않는(움직임을 0으로서 취급하는) 픽쳐간 예측 복호화 중에서 하나를 선택하고, B 픽쳐의 블럭의 복호화 시에는 대상 블럭의 부호화 모드로서, 픽쳐내 복호화, 전방 움직임 벡터를 이용하는 픽쳐간 예측 복호화, 후방 움직임 벡터를 이용하는 픽쳐간 예측 복호화, 및 전방 움직임 벡터 및 후방 움직임 벡터를 이용하는 픽쳐간 예측 복호화 중에서 하나를 선택하는 것이다.
즉, 본 실시예 6의 동화상 복호화 장치(60)의 모드 복호부(263)는 실시예 2의 동화상 복호화 장치(20)의 모드 복호부(223)와는 다이렉트 모드에 대응하는 복 호화 처리를 이용하지 않는 점에서만 상이하며, 따라서, 이 동화상 복호화 장치(60)는 동화상 복호화 장치(20)의 움직임 벡터 기억부(226)를 갖고 있지 않다.
또한, 실시예 6의 동화상 부호화 장치(60)의 메모리 제어부(264) 및 모드 복호부(263) 이외의 부분은, 실시예 2의 동화상 부호화 장치(20)에서의 것과 동일하다.
다음에 동작에 대하여 설명한다.
도 32에 나타내는 동화상 복호화 장치(60)에는 실시예 5의 동화상 부호화 장치(50)로부터 출력된 부호열 Bs가 입력된다고 한다. 여기서는, P 픽쳐는 시간적으로 그 전방에 있는 근방의 4개의 I 또는 P 픽쳐를 참조 후보 픽쳐로서 이용하여 픽쳐간 예측 부호화되어 있다. 또한, 여기서는 B 픽쳐는 시간적으로 그 최근방에 있는 전방의 4개의 P 픽쳐, 하나의 전방 B 픽쳐, 및 시간적으로 그 후방의 최근방에 있는 I 또는 P 픽쳐를 참조 후보 픽쳐로서 이용하여 부호화하도록 되어 있다.
이 경우, 부호열 중의 픽쳐의 순서는 도 29(b)와 같다고 한다. 이하에서는, 픽쳐 P15, B13, B14의 복호화 처리에 대하여 순서대로 설명한다.
<픽쳐 P15의 복호화 처리>
픽쳐 P15의 부호열은 부호열 해석부(201)에 입력된다. 부호열 해석부(201)에서는 입력된 부호열 Bs로부터 각종 데이터를 추출한다. 여기서 각종 데이터란, 부호화 모드나 움직임 벡터 등의 정보이다. 추출된 모드 선택의 정보(부호화 모드) Ms는 모드 복호부(263)에 출력된다. 또한, 추출된 움직임 벡터 MV는 움직임 보상 복호부(205)에 출력된다. 또한, 예측 오차 부호화 데이터 Ed는 예측 오차 복호화부(202)에 대하여 출력된다.
모드 복호부(263)에서는, 부호열로부터 추출된 부호화 모드 Ms를 참조하여 스위치(209, 210)를 제어한다. 부호화 모드가 픽쳐내 부호화인 경우에는, 스위치(209)는 그 입력 단자 Te가 출력 단자 Tf1에, 스위치(210)는 그 출력 단자 Th가 입력 단자 Tg1에 접속되도록 제어된다. 또한, 부호화 모드가 픽쳐간 예측 부호화인 경우에는, 스위치(209)는 그 입력 단자 Te가 출력 단자 Tf2에, 스위치(210)는 그 출력 단자 Th가 입력 단자 Tg2에 접속되도록 제어된다.
또한 모드 복호부(263)는 부호화 모드 Ms를 움직임 보상 복호부(205)에도 출력한다.
이하에서는 부호화 모드가 픽쳐간 예측 부호화인 경우에 대하여 설명한다.
예측 오차 복호화부(202)는 입력된 예측 오차 부호화 데이터 Ed의 복호화를 하여, 예측 오차 데이터 PDd를 생성한다. 생성된 예측 오차 데이터 PDd는 스위치(209)에 출력된다. 여기서는, 스위치(209)의 입력 단자 Te가 출력 단자 Tf1에 접속되어 있기 때문에, 예측 오차 데이터 PDd는 가산 연산부(208)에 출력된다.
움직임 보상 복호부(205)는 입력된 움직임 벡터의 정보 등으로부터 움직임 보상 화상을 생성한다. 움직임 보상 복호부(205)에 입력되는 정보는 움직임 벡터 MV 및 참조 픽쳐 번호 Rp이다. 움직임 보상 복호부(205)는 이들 정보에 근거하여 참조 픽쳐용 메모리(207)로부터 움직임 보상 화상(예측 화상)을 취득한다. 픽쳐 P15는 픽쳐 P12, P9, P6, P3을 참조 픽쳐의 후보로 하여 부호화되어 있고, 이들 픽 쳐는 이미 복호화되어 참조 픽쳐용 메모리(207)에 유지되어 있다.
도 28은 참조 픽쳐용 메모리(207)에 축적되어 있는 픽쳐를 나타내고 있다. 도 28에 도시하는 바와 같이, 픽쳐 P15의 복호화 시에는, 참조 픽쳐용 메모리(207)에는 픽쳐 P12, B11, P9, P6, P3이 축적되어 있다.
메모리 제어부(264)는 참조 픽쳐용 메모리(207)에 축적되어 있는 참조 후보 픽쳐에 대하여 참조 픽쳐 번호를 부여한다. 이 참조 픽쳐 번호의 부여는 픽쳐의 표시 시간 순서에 근거하여 가장 새로운 픽쳐일수록, 값이 작은 참조 픽쳐 번호가 부여되도록 한다. 그리고, P 픽쳐의 복호화 시에는, B 픽쳐에 대해서는 참조 픽쳐 번호의 부여를 하지 않는다. 따라서, 픽쳐 P12, P9, P6, P3에 대한 참조 픽쳐 번호는 각각 [0], [1], [2], [3]으로 되고, 픽쳐 B11에는 참조 픽쳐 번호가 할당되지 않는다.
움직임 보상 복호부(205)는 참조 픽쳐 번호로부터, 대상 블럭의 부호화 시에 픽쳐 P12, P9, P6, P3 중 어느 픽쳐를 참조하고 있는지를 결정한다. 그리고, 움직임 보상 복호부(205)는 결정된 참조 픽쳐 및 움직임 벡터에 근거하여, 예측 화상(예측 데이터 Pd)을 참조 픽쳐용 메모리(207)로부터 취득해서 움직임 보상 화상(예측 화상)을 생성한다. 이렇게 하여 생성된 움직임 보상 화상은 가산 연산부(208)에 출력된다.
가산 연산부(208)에서는 입력된 예측 오차 화상과 움직임 보상 화상을 가산하여 복호화 화상(데이터 Ad)을 생성한다. 생성된 복호화 화상은 스위치(210)를 거쳐서 참조 픽쳐용 메모리(207)에 출력된다.
이상과 같이 하여, 픽쳐 P15의 매크로 블럭이 모두 복호화되면, 메모리 제어부(264)는 참조 픽쳐용 메모리(207)에 축적되어 있는 픽쳐에 대한 논리 메모리 번호 및 참조 픽쳐 번호를 갱신한다.
이 때, 픽쳐 P15는 입력 픽쳐용 메모리(207)에 축적되어 있는 어느 픽쳐보다도 시간순으로 새로운 것이기 때문에, 픽쳐 P15는 논리 메모리 번호(0)가 설정되어 있는 메모리 영역에 저장된다. 그리고, 다른 후보 픽쳐를 저장하고 있는 메모리 영역에 대응하는 논리 메모리 번호를 1만큼 증가시킨다.
또한, 다음 복호화 대상 픽쳐는 픽쳐 B13이기 때문에, 픽쳐 B11에 대하여 참조 픽쳐 번호의 부여가 행하여진다. 이것에 의해, 논리 메모리 번호(0)∼(5)가 설정된 메모리 영역에는 각각 픽쳐 P15, P12, B11, P9, P6, P3이 저장되고, 픽쳐 P12, B11, P9, P6, P3의 각각에 대하여 참조 픽쳐 번호 [0], [1], [2], [3], [4]가 부여되게 된다.
<픽쳐 B13의 복호화 처리>
부호열 해석부(201), 모드 복호화부(203) 및 예측 오차 복호화부(202)의 동작은 픽쳐 P15의 복호화 처리 시와 마찬가지이기 때문에, 그들의 동작 설명은 생략한다.
움직임 보상 복호부(205)는 입력된 움직임 벡터의 정보 등으로부터 움직임 보상 화상을 생성한다. 움직임 보상 복호부(205)에 입력되는 정보는 움직임 벡터 및 참조 픽쳐 번호이다. 픽쳐 B13은, 전방 참조의 후보 픽쳐로서 픽쳐 P12, B11, P9, P6, P3을 이용하고, 후방 참조의 후보 픽쳐로서 픽쳐 P15를 이용하여 부호화된 것이며, 픽쳐 B13의 복호화 시점에서는, 이들 후보 픽쳐가 이미 복호화되어 입력 픽쳐용 메모리(207)에 유지되어 있다.
부호화 모드가 전방 예측 또는 쌍방향 예측의 픽쳐 예측 복호화인 경우에는, 움직임 보상 복호부(205)는 참조 픽쳐 번호로부터 픽쳐 B13의 부호화 시에, 픽쳐 P12, B11, P9, P6, P3 중 어느 후보 픽쳐를 전방 참조하고 있는지를 결정한다. 그리고, 움직임 보상 복호부(205)는 결정한 참조 픽쳐 및 전방 움직임 벡터에 근거하여 전방 움직임 보상 화상을 참조 픽쳐용 메모리(207)로부터 취득한다. 또한, 부호화 모드가 쌍방향 예측의 픽쳐 예측 부호화 또는 후방 예측인 경우에는, 움직임 보상 복호부(205)는 결정된 참조 픽쳐 및 후방 움직임 벡터에 근거하여 후방 움직임 보상 화상을 참조 픽쳐용 메모리(207)로부터 취득한다. 그리고, 움직임 보상 복호부(205)는 전방 움직임 보상 화상과 후방 움직임 보상 화상을 이용하여 움직임 보상 화상(예측 픽쳐)을 생성한다.
이렇게 하여 생성된 움직임 보상 화상은 가산 연산부(208)에 출력된다. 가산 연산부(208)는 입력된 예측 오차 화상과 움직임 보상 화상을 가산하여 복호화 화상을 생성한다. 생성된 복호화 화상은 스위치(210)를 거쳐서 참조 픽쳐용 메모리(207)에 출력된다.
이상과 같이 하여, 픽쳐 B13의 블럭이 모두 복호화되면, 메모리 제어부(264)는 참조 픽쳐용 메모리(207)에 축적되어 있는 픽쳐에 대한 논리 메모리 번호 및 참조 픽쳐 번호를 갱신한다. 픽쳐 B13은, 표시 시간순으로는 입력 픽쳐용 메모 리(207)에 축적되어 있는 픽쳐 P15보다도 이전에 있고, 입력 픽쳐용 메모리(207)에 축적되어 있는 픽쳐 P12보다도 새로운 것이기 때문에, 픽쳐 B13은 논리 메모리 번호(1)가 설정되어 있는 메모리 영역에 저장된다.
또한, 부호열 중에는 픽쳐 B11을 참조 픽쳐용 메모리로부터 삭제한 것을 나타내는 정보가 기술되어 있기 때문에, 메모리 제어부(264)는 픽쳐 B11이 참조 픽쳐용 메모리(207)로부터 삭제되도록 참조 픽쳐용 메모리를 제어한다. 또한, 다른 참조 후보 픽쳐 P12가 저장되어 있는 메모리 영역의 논리 메모리 번호는 1 증가된다. 이것에 의해, 논리 메모리 번호(0)∼(5)가 설정되어 있는 메모리 영역에는 각각 픽쳐 P15, B13, P12, P9, P6, P3이 저장되고, 픽쳐 B13, P12, P9, P6, P3의 각각에 대하여 참조 픽쳐 번호 [0], [1], [2], [3], [4]가 부여되게 된다.
<픽쳐 B14의 복호화 처리>
부호열 해석부(201), 모드 복호화부(203) 및 예측 오차 복호화부(202)의 동작은 픽쳐 P15의 복호화 처리 시와 마찬가지이기 때문에, 그들의 동작 설명은 생략한다.
움직임 보상 복호부(205)는 입력된 움직임 벡터의 정보 등으로부터 움직임 보상 화상을 생성한다. 움직임 보상 복호부(205)에 입력되는 정보는 움직임 벡터 및 참조 픽쳐 번호이다. 픽쳐 B14는, 전방 참조의 후보 픽쳐로서 픽쳐 B13, P12, P9, P6, P3을 이용하고, 후방 참조의 후보 픽쳐로서 픽쳐 P15를 이용하여 부호화된 것이며, 이 픽쳐 B14가 복호화되는 시점에서는, 이들 후보 픽쳐가 이미 복호화되어 참조 픽쳐용 메모리(207)에 유지되어 있다.
모드 선택이 전방향 예측 또는 쌍방향 예측의 픽쳐 예측 부호화인 경우에는, 움직임 보상 복호부(205)는 참조 픽쳐 번호에 근거하여 픽쳐 B14의 부호화 시에 픽쳐 B13, P12, P9, P6, P3 중 어느 픽쳐가 전방 참조되어 있는지를 결정한다. 그리고, 움직임 보상 복호부(205)는 결정된 참조 픽쳐 및 전방 움직임 벡터에 근거하여 전방 움직임 보상 화상을 참조 픽쳐용 메모리(207)로부터 취득한다. 또한, 부호화 모드가 쌍방향 예측 또는 후방 예측의 픽쳐 예측 부호화인 경우에, 움직임 보상 복호부(205)는 결정된 참조 픽쳐 및 후방 움직임 벡터에 근거하여 후방 움직임 보상 화상을 참조 픽쳐용 메모리(207)로부터 취득한다. 그리고, 움직임 보상 복호부(205)는 전방 움직임 보상 화상과 후방 움직임 보상 화상을 이용하여 움직임 보상 화상을 생성한다.
이렇게 하여 생성된 움직임 보상 화상은 가산 연산부(208)에 출력된다. 가산 연산부(208)에서는 입력된 예측 오차 화상과 움직임 보상 화상을 가산하여 복호화 화상을 생성한다. 생성된 복호화 화상은 스위치(210)를 거쳐서 참조 픽쳐용 메모리(207)에 출력된다.
이상과 같이 하여, 픽쳐 B14에서의 모든 블럭의 처리가 종료되면, 메모리 제어부(264)에서는 참조 픽쳐용 메모리(207)에 축적되어 있는 후보 픽쳐에 대한 논리 메모리 번호 및 참조 픽쳐 번호를 갱신한다. 픽쳐 B14는, 표시 시간순으로는 참조 픽쳐용 메모리(207)에 축적되어 있는 픽쳐 P15보다도 이전에 있고, 참조 픽쳐용 메모리(207)에 축적되어 있는 픽쳐 B13보다도 새로운 것이기 때문에, 픽쳐 B14는 논 리 메모리 번호(1)가 설정되어 있는 메모리 영역에 저장된다. 또한, 픽쳐 B13을 참조 픽쳐용 메모리로부터 삭제하는 것을 나타내는 정보가 부호열에 기술되어 있기 때문에, 메모리 제어부(264)는 픽쳐 B13이 참조 픽쳐용 메모리(207)로부터 삭제되도록 해당 메모리를 제어한다.
또한, 다음 복호화 대상 픽쳐는 P 픽쳐인 픽쳐 P18이다. 따라서, B 픽쳐 이외의 픽쳐에 대하여 참조 픽쳐 번호가 할당된다. 이것에 의해, 논리 메모리 번호(0)∼(5)가 설정되어 있는 메모리 영역에는 각각 픽쳐 P15, B14, P12, P9, P6이 저장되고, 픽쳐 P15, P12, P9, P6에 대하여 각각 참조 픽쳐 번호 [0], [1], [2], [3]이 부여되게 된다.
또한, 참조 픽쳐용 메모리(207)로부터는 복호화된 픽쳐가 표시 시간순으로 출력 화상으로서 출력된다.
이하, 각 픽쳐는 픽쳐 타입에 따른 마찬가지의 처리에 의해서 복호화된다.
이와 같이 본 실시예 2에서는, 복호화 대상 픽쳐에 대한 전방 참조의 복수의 후보 픽쳐에는 그 표시 시간이 늦은 것일수록 작은 값의 참조 픽쳐 번호(즉 대상 블럭의 전방 움직임 벡터가 어느 후보 픽쳐를 참조하여 얻어진 것인지를 식별하기 위한 정보)를 할당하고, 대상 픽쳐의 부호열에 포함되는 참조 픽쳐 번호에 근거하여 상기 복수의 후보 픽쳐 중에서 참조 픽쳐를 결정하기 때문에, 후보 픽쳐 중 가장 참조 픽쳐로서 선택되기 쉬운 픽쳐일수록 보다 작은 참조 픽쳐 번호를 할당하게 된다. 이것에 의해, 참조 픽쳐 번호에 대한 부호량을 최소로 할 수 있는, 부호화 효율이 높은 부호화 방법에 의해 얻어진 부호열을 정확하게 복호화할 수 있다.
또한, P 픽쳐의 복호화 시에는, B 픽쳐에 대해서는 참조 픽쳐 번호의 부여를 하지 않기 때문에, 사용되는 것이 없는 참조 픽쳐 번호의 발생을 회피할 수 있는, 부호화 효율이 높은 부호화 방법에 의해 얻어진 부호열을 정확하게 복호화할 수 있다.
또한, B 픽쳐의 복호화 시에는, 가장 값이 작은 논리 메모리 번호가 설정되어 있는 메모리 영역에 저장되어 있는 픽쳐를 후방 참조 픽쳐로서 취급하고, 해당 픽쳐에는 참조 픽쳐 번호의 할당을 하지 않기 때문에, B 픽쳐의 예측 부호화 시에, P 픽쳐가 전방 참조 픽쳐로서 이용되는 것을 회피할 수 있는, 부호화 효율이 높은 부호화 방법에 의해 얻어진 부호열을 정확하게 복호화할 수 있다.
또한, 참조 픽쳐로서 이용되지 않았던 픽쳐를 참조 픽쳐용 메모리로부터 삭제한 정보가 부호열에 기술되어 있는 경우에는, 그 정보에 근거하여 참조 픽쳐용 메모리로부터 참조 픽쳐를 삭제하기 때문에, 참조 픽쳐용 메모리를 효과적으로 이용할 수 있다.
또, 상기 실시예 6에서는, 동화상을 구성하는 복수의 픽쳐의 배열로서, 인접하는 P 픽쳐 사이에 2매의 B 픽쳐가 위치하는 픽쳐의 배열을 나타내었지만, 인접하는 P 픽쳐 사이에 위치하는 B 픽쳐의 매수는 별도의 값, 예컨대 3매나 4매이더라도 무방하다.
또한, 상기 실시예 6에서는 P 픽쳐에 대한 전방 참조의 후보 픽쳐의 수가 4인 경우에 대하여 설명했지만, 이것은 다른 값이더라도 무방하다.
또한, 상기 실시예 6에서는, B 픽쳐에 대한 전방 참조의 후보 픽쳐는 4개의 P 픽쳐와 1개의 B 픽쳐인 경우에 대하여 설명했지만, B 픽쳐에 대한 전방 참조의 후보 픽쳐로서, 4개의 전방 P 픽쳐와 1개의 전방 B 픽쳐 이외의 픽쳐이더라도 무방하다.
또한, 상기 실시예 6에서는 복호화의 대상으로 되는, 동화상을 구성하는 각 픽쳐가 해당 각 픽쳐 이후의 다른 픽쳐의 복호화 시에 참조 픽쳐로서 이용되는 경우에 대하여 설명했지만, 복호화의 대상으로 되는, 동화상의 복수의 픽쳐는 참조 픽쳐로서 이용되지 않는 픽쳐를 포함하는 것이더라도 무방하다. 이 경우에는, 참조 픽쳐로서 이용되지 않는 픽쳐가 참조 픽쳐용 메모리에는 축적하지 않도록 하는 것에 의해 상기 실시예 6과 마찬가지의 효과가 얻어진다.
또한, 상기 실시예 6에서는 B 픽쳐의 복호화가 다른 B 픽쳐를 참조 후보 픽쳐로서 이용하여 행하여지는 경우에 대하여 설명했지만, B 픽쳐에 대한 복호화는 다른 B 픽쳐를 참조하지 않고서 실행하는 것이더라도 무방하다. 이 경우, B 픽쳐는 참조 픽쳐용 메모리에는 축적되지 않고, 또한 이러한 경우에서도 참조 픽쳐 번호를 픽쳐의 표시 시간 순서에 따라서 할당함으로써, 상기 실시예 6과 마찬가지의 효과를 얻을 수 있다.
또한, 상기 실시예 6에서는, 설명의 간이화를 위해서, 참조 후보 픽쳐를 관리하기 위한 메모리와, 복호화된 픽쳐를 표시순으로 재배열하여 출력하기 위한 메모리를 구별하지 않고서 하나의 참조 픽쳐용 메모리로서 설명했지만, 동화상 복호화 장치(60)는 참조 후보 픽쳐를 관리하기 위한 관리 메모리와, 복호화된 픽쳐를 표시순으로 재배열하여 출력하기 위한 재배열 메모리를 각각 갖는 것이더라도 된 다.
이 경우, 관리 메모리는 메모리 제어부(264)에 의해 제어되어, 참조 후보 픽쳐를 움직임 보상 복호부(205)에 출력한다. 또한, 재배열 메모리는 복호화순으로 배열되어 있는 복호화된 픽쳐 화상을 표시순으로 재배열하여 순차적으로 출력한다.
또한, 상기 실시예 6에서는, 후보 픽쳐에 대한 참조 픽쳐 번호의 할당을 하나의 규칙에 따라서 부여하는 경우, 즉 참조 픽쳐 번호가 1 계통인 경우에 대하여 나타내었지만, 참조 픽쳐 번호로서, 실시예 5에서 설명한 바와 같이, 2 계통의 참조 픽쳐 번호를 이용하더라도 된다.
(실시예 7)
도 33은 본 발명의 실시예 7에 따른 동화상 부호화 장치를 설명하기 위한 블럭도이다.
본 실시예 7의 동화상 부호화 장치(70)는, P 픽쳐 및 B 픽쳐의 부호화 시에 전방 참조하는 후보 픽쳐, 및 B 픽쳐에 대한 부호화 모드가 상기 실시예 1의 동화상 부호화 장치(10)와는 상이하다.
즉, 본 실시예 7의 동화상 부호화 장치(70)는, 실시예 1의 부호화 제어부(110) 및 모드 선택부(109) 대신에, 이들과는 다른 동작을 하는 부호화 제어부(170) 및 모드 선택부(179)를 갖는 것이다.
구체적으로는, 실시예 7의 동화상 부호화 장치(70)의 부호화 제어부(170)는, P 픽쳐의 부호화 시에는 해당 P 픽쳐의 전방에 위치하는 3개의 픽쳐(I 또는 P 픽 쳐)가 전방 참조의 후보 픽쳐로서 이용되고, B 픽쳐의 부호화 시에는 해당 B 픽쳐의 전방에 위치하는 2개의 픽쳐(I 아직은 P 픽쳐), 해당 B 픽쳐의 최근방에 위치하는 하나의 전방 B 픽쳐 및 후방의 하나의 I 또는 P 픽쳐가 후보 픽쳐로서 이용되도록, 참조 픽쳐용 메모리(117)를 제어하는 것이다. 단, 부호화 대상 픽쳐에 대하여 그 가장 근방에 위치하는 전방의 I 또는 P 픽쳐의 더 전방에 위치하는 B 픽쳐는 참조하지 않는 것으로 하고 있다.
상기 부호화 제어부(170)는, 대상 픽쳐가, 해당 대상 픽쳐 이후의 픽쳐에 대한 부호화 처리 시에 참조되는지 여부를 나타내는 플래그가 대상 픽쳐에 대응하는 부호열에 삽입되도록, 부호열 생성부(104)를 제어 신호 Cd에 의해 제어하는 것이다. 구체적으로는, 부호열 생성부(104)는 제어 신호 Cd에 의해, 복호화 시에 대상 픽쳐의 데이터를 참조 픽쳐용 메모리(117)에 축적해야 할 것을 나타내는 정보, 및 그 축적해야 할 기간을 나타내는 정보가 부호열에 부가되도록 제어된다.
또한, 실시예 7의 동화상 부호화 장치(70)의 모드 선택부(179)는, P 픽쳐의 블럭의 부호화 시에는, 대상 블럭의 부호화 모드로서, 픽쳐내 부호화, 움직임 벡터를 이용한 픽쳐간 예측 부호화, 움직임 벡터를 이용하지 않는(움직임을 0으로서 취급하는) 픽쳐간 예측 부호화 중에서 하나를 선택하고, B 픽쳐의 블럭의 부호화 시에는, 대상 블럭의 부호화 모드로서, 픽쳐내 부호화, 전방 움직임 벡터를 이용하는 픽쳐간 예측 부호화, 후방 움직임 벡터를 이용한 픽쳐간 예측 부호화, 및 전방 움직임 벡터 및 후방 움직임 벡터를 이용하는 픽쳐간 예측 부호화 중에서 하나를 선택하는 것이다. 즉, 본 실시예 7의 동화상 부호화 장치(70)의 모드 선택부(109)는 실시예 1의 동화상 부호화 장치(10)의 모드 선택부(179)와는 다이렉트 모드를 이용하지 않는 점에서만 상이하며, 따라서, 이 동화상 부호화 장치(70)는 동화상 부호화 장치(10)의 움직임 벡터 기억부(116)는 갖고 있지 않다. 그리고, 실시예 7의 동화상 부호화 장치(70)의 그 외의 구성은 실시예 1의 동화상 부호화 장치(10)에서의 것과 동일하다.
또, 본 실시예 7의 동화상 복호화 장치(70)는 실시예 5의 동화상 복호화 장치(50)와는, 부호화 제어부(170)가, 대상 픽쳐가 해당 대상 픽쳐 이후의 픽쳐에 대한 부호화 처리 시에 참조되는지 여부를 나타내는 플래그가 대상 픽쳐에 대응하는 부호열에 삽입되도록, 부호열 생성부(104)를 제어하는 점이 상이하다. 또한, 실시예 7의 동화상 복호화 장치(70)에서는, P 픽쳐 및 B 픽쳐의 부호화 시에 참조되는 후보 픽쳐도 상기 실시예 5의 동화상 부호화 장치(50)와는 상이하다. 그리고, 본 실시예 7의 동화상 부호화 장치(70)에서의 그 외의 점은 실시예 5의 동화상 부호화 장치(50)와 동일하다.
다음에 동작에 대하여 설명한다.
입력 화상 데이터 Id는 시간순으로 픽쳐 단위로 참조 픽쳐용 메모리(101)에 입력된다.
도 34(a)는 입력 픽쳐용 메모리(101)에 입력되는 픽쳐의 순서를 나타내고 있다.
입력 픽쳐용 메모리(101)에는, 도 34(a)에 도시하는 바와 같이, 각 픽쳐가 픽쳐 P1로부터 순서대로 입력된다. 여기서, 픽쳐 P1, P4, P7, P10, P13, P16, P19, P22는 P 픽쳐이며, 픽쳐 B2, B3, B5, B6, B8, B9, B11, B12, B14, B15, B17, B18, B20, B21은 B 픽쳐이다.
여기서는, P 픽쳐의 부호화 시에는, 해당 P 픽쳐에 대하여 시간적으로 전방에 있는 근방의 3개의 픽쳐(I 또는 P 픽쳐)를 참조 픽쳐의 후보로서 이용한다. 또한, B 픽쳐의 부호화 시에는, 해당 B 픽쳐에 대하여 시간적으로 근방에 있는 전방의 2개의 픽쳐(I 또는 P 픽쳐), 및 전방에 있는 가장 근방의 하나의 B 픽쳐, 및 후방의 하나의 I 또는 P 픽쳐를 참조 픽쳐의 후보로서 이용한다. 단, B 픽쳐의 부호화 시, 시간적으로 최근방에 있는 전방의 I 또는 P 픽쳐의 더 전방에 위치하는 B 픽쳐는 참조하지 않은 것으로 한다. 또, I 픽쳐의 부호화 시에는 다른 픽쳐를 참조하지 않는다.
입력 픽쳐용 메모리(101)에 입력된 각 픽쳐의 데이터 Id는 부호화순으로 재배열된다. 이하 픽쳐의 데이터는 간단히 픽쳐라고 약기된다.
즉, 픽쳐의 순서를 입력순으로부터 부호화순으로 재배열하는 재배열 처리는 픽쳐간 예측 부호화 처리에서의 참조 관계에 근거하여 행하여진다. 해당 재배열 처리에서는, 제 1 픽쳐의 부호화 시에 참조 픽쳐의 후보로서 이용되는 제 2 픽쳐가 제 1 픽쳐보다도 먼저 부호화되도록, 각 픽쳐가 재배열된다.
구체적으로는, 픽쳐 P10∼P13까지의 각 픽쳐와 참조 후보 픽쳐의 대응 관계는 도 34(a)에 나타내는 화살표와 같아진다. 즉, P 픽쳐 P10의 부호화 시에는 픽쳐 P1, P4, P7이 참조되고, P 픽쳐 P13의 부호화 시에는 픽쳐 P4, P7, P10이 참조된다. 또한, B 픽쳐 B11의 부호화 시에는 픽쳐 P7, P10, P13이 참조되고, B 픽쳐 B12의 부호화 시에는 픽쳐 P7, P10, B11, P13이 참조된다.
또한, 도 34(b)는 도 34(a)에 나타내는 픽쳐 B2로부터 P22까지의 픽쳐를 재배열한 후의 픽쳐의 순서를 나타내고 있다. 재배열 후에는, 각 픽쳐는 픽쳐 P4, B2, B3, P7, B5, B6, P10, B8, B9, P13, B11, B12, P16, B14, B15, P19, B17, B18, P22의 순으로 배열된다.
입력 픽쳐용 메모리(101)에 의해 재배열이 행하여진 각 픽쳐는 일정의 데이터 처리 단위인, 움직임 보상을 실행하는 데이터 단위마다 판독된다. 여기서는, 움직임 보상을 실행하는 데이터 단위는 수평 방향 및 수직 방향 모두 16개의 화소가 배열된 직사각형 화상 공간(매크로 블럭)에 대응하는 데이터 단위로 한다. 이하 매크로 블럭은 간단히 블럭이라고도 한다.
이하, 픽쳐 P13, B11, B12의 부호화 처리에 대하여 순서대로 설명한다.
<픽쳐 P13의 부호화 처리>
픽쳐 P13은 P 픽쳐이기 때문에, 픽쳐 P13의 부호화 처리로서 전방 참조를 이용한 픽쳐간 예측 부호화가 행하여진다. 이 경우의 참조 후보 픽쳐는 부호화 대상 픽쳐에 대하여 전방에 위치하는 3개의 I 또는 P 픽쳐이며, 구체적으로는 픽쳐 P4, P7, P10으로 된다. 이들 참조 후보 픽쳐는 이미 부호화 처리가 종료되어 있어, 대응하는 복호화 화상 데이터 Dd가 참조 픽쳐용 메모리(117)에 축적되어 있다.
P 픽쳐의 부호화 처리에서는, 부호화 제어부(170)는 스위치(113, 114, 115)가 온으로 되도록 각 스위치를 제어한다.
입력 픽쳐용 메모리(101)로부터 판독된 픽쳐 P13의 블럭에 대응하는 데이터 Md는 먼저 움직임 벡터 검출부(108), 모드 선택부(179), 차분 연산부(102)에 입력된다.
움직임 벡터 검출부(108)에서는 참조 픽쳐용 메모리(177)에 축적된 픽쳐 P4, P7, P10의 복호화 화상 데이터 Rd를 참조 후보 픽쳐의 데이터로서 이용하여 픽쳐 P13의 블럭의 움직임 벡터 MV를 검출한다. 이 경우, 움직임 벡터의 검출은 픽쳐 P4, P7, P10 중에서 가장 상응한 참조 픽쳐를 선택하는 것에 의해 실행된다. 검출된 움직임 벡터 MV는 모드 선택부(179), 부호열 생성부(104)에 출력된다. 또한, 움직임 벡터 MV가 픽쳐 P4, P7, P10 중 어느 것을 참조하여 검출된 움직임 벡터인지라는 정보(참조 픽쳐 정보)도 모드 선택부(179)에 출력된다.
모드 선택부(179)에서는 움직임 벡터 검출부(108)에 의해 검출한 움직임 벡터를 이용하여 픽쳐 P13의 블럭의 부호화 모드를 결정한다.
구체적으로는, P 픽쳐의 경우에는 픽쳐내 부호화, 움직임 벡터를 이용한 픽쳐간 예측 부호화, 움직임 벡터를 이용하지 않는(움직임을 0으로서 취급하는) 픽쳐간 예측 부호화 중에서 어느 방법으로 부호화할지가 결정된다. 부호화 모드의 결정에서는, 일반적으로는 블럭에 대하여 소정의 비트량이 부호량으로서 인가된 경우에 부호화 오차가 최소로 되는 방법이 선택된다.
모드 선택부(179)에 의해 결정된 부호화 모드 Ms는 부호열 생성부(104)에 출력된다. 또한, 결정한 부호화 모드 Ms가, 전방 참조가 행하여지는 부호화 모드인 경우에는, 전방 움직임 벡터가 픽쳐 P4, P7, P10 중 어느 하나를 참조하여 검출된 움직임 벡터인지라는 정보(참조 픽쳐 정보)도 부호열 생성부(104)에 대하여 출력된다.
또한, 모드 선택부(179)에 의해 결정된 부호화 모드 Ms에 따른 참조 픽쳐로부터 얻어진 예측 화상 데이터 Pd가 차분 연산부(102)와 가산 연산부(106)에 출력된다. 단, 픽쳐내 부호화가 선택된 경우에는, 상기 예측 화상 데이터 Pd는 출력되지 않는다. 또한, 픽쳐내 부호화가 선택된 경우의 스위치(111, 112)의 제어는 실시예 5와 마찬가지로 행하여진다.
이하, 모드 선택부(179)에 의해 부호화 모드 Ms로서 픽쳐간 예측 부호화 모드가 선택된 경우에 대하여 설명한다.
이 경우, 차분 연산부(102), 예측 오차 부호화부(103), 부호열 생성부(104), 예측 오차 복호화부(105) 및 부호화 제어부(170)의 동작은 실시예 5와 마찬가지로 행하여진다.
단, 이 실시예 7에서는, 픽쳐 P13의 헤더 정보로서, 픽쳐 P13이 전방의 3개의 I 또는 P 픽쳐를 참조 후보 픽쳐로 하여 부호화되어 있는 것을 나타내는 정보가 부가된다. 또한, 픽쳐 P13이 다른 픽쳐의 부호화 시에 참조되기 때문에, 복호화 시에 픽쳐 P13에 대응하는 복호화 데이터 Dd를 참조 픽쳐용 메모리(117)에 축적해야 할 것을 나타내는 정보(플래그)도 픽쳐 P13의 헤더 정보로서 부가된다. 또한, 픽쳐 P13을 참조 픽쳐용 메모리에 축적해야 할 기간은 픽쳐 P22의 복호화 시까지인 것을 나타내는 정보를 픽쳐 P13의 헤더 정보로서 부가한다.
또, 상기 축적해야 할 기간을 나타내는 방법으로서는, 픽쳐 P22의 시간 정 보(예컨대, 픽쳐 번호 등의 시간적인 위치 정보, 디코드 시간 정보, 표시 시간 정보 등)에 의해 나타내는 방법, 픽쳐 P13으로부터 픽쳐 P22까지의 기간 정보(예컨대 픽쳐 수 등)에 의해 나타내는 방법 등이 있다. 이들 헤더 정보는 픽쳐 단위의 헤더 정보, 즉 부호화 대상 픽쳐의 헤더 정보로서 기술하는 이외에, 시퀀스 전체의 헤더 정보나 수 프레임 단위(예컨대 MPEG 방식에서의 Group of pictures 등)의 헤더 정보로서 기술하더라도 된다.
또한, 픽쳐 P13의 각 블럭에 대한 부호화 모드가, 전방 참조가 행하여지는 부호화 모드인 경우에는, 전방 움직임 벡터가 픽쳐 P4, P7, P10 중 어느 참조 후보 픽쳐를 참조하여 검출된 움직임 벡터인지라는 정보(참조 픽쳐 정보)도 부호열에 부가된다. 예컨대, 움직임 벡터가 픽쳐 P10을 참조하여 얻어진 경우에는, 부호화 대상 픽쳐의 1매 전의 P 픽쳐가 참조 픽쳐인 것을 나타내는 정보(참조 픽쳐 번호)가 부호열에 부가된다. 움직임 벡터가 픽쳐 P7을 참조하여 얻어진 경우에는, 부호화 대상 픽쳐의 2매 전의 P 픽쳐가 참조 픽쳐인 것을 나타내는 정보(참조 픽쳐 번호)가 부호열에 부가된다. 움직임 벡터가 픽쳐 P4를 참조하여 얻어진 경우에는, 부호화 대상 픽쳐의 3매 전의 P 픽쳐가 참조 픽쳐인 것을 나타내는 정보(참조 픽쳐 번호)가 부호열에 부가된다. 예컨대, 대상 픽쳐의 1매 전의 픽쳐가 참조 픽쳐인 것을 참조 픽쳐 번호 [0]에 의해 나타내고, 대상 픽쳐의 2매 전의 픽쳐가 참조 픽쳐인 것을 참조 픽쳐 번호 [1]에 의해 나타내며, 대상 픽쳐의 3매 전의 픽쳐가 참조 픽쳐인 것을 참조 픽쳐 번호 [2]에 의해 나타낼 수 있다.
또한, 헤더 정보로서, P 픽쳐가 3개의 참조 후보 픽쳐를 이용하여 픽쳐간 예 측 부호화되어 있는 것을 나타내는 정보가 기술된다.
마찬가지의 처리에 의해, 픽쳐 P13의 나머지 매크로 블럭에 대한 부호화 처리가 행하여진다. 그리고, 픽쳐 P13의 모든 매크로 블럭에 대한 부호화 처리가 종료되면, 다음에 픽쳐 B11의 부호화 처리가 행하여진다.
<픽쳐 B11의 부호화 처리>
픽쳐 B11은 B 픽쳐이기 때문에, 픽쳐 B11의 부호화 처리로서는 쌍방향 참조를 이용한 픽쳐간 예측 부호화가 행하여진다. 이 경우의 참조 화상은, 전방 참조의 후보 픽쳐로서는 부호화 대상 픽쳐에 시간적으로 근접한 2개의 픽쳐(I 또는 P 픽쳐)와, 시간적으로 가장 근접한 하나의 B 픽쳐를 이용하고, 후방 참조의 후보 픽쳐로서는 부호화 대상 픽쳐에 시간적으로 가장 근접한 I 또는 P 픽쳐를 이용한다. 단, 부호화 대상 픽쳐에 대하여 그 가장 근방의 I 또는 P 픽쳐를 지나서 위치하는 B 픽쳐를 참조하는 것은 실행하지 않는다.
따라서, 픽쳐 B11에 대한 전방 참조 픽쳐로서 픽쳐 P7, P10이, 후방 참조 픽쳐로서 픽쳐 P13이 이용된다. 연속하는 B 픽쳐의 1매째의 B 픽쳐의 처리에서는, 이 1매째의 B 픽쳐가 다른 B 픽쳐의 부호화 시에 참조 픽쳐로서 이용되기 때문에, 부호화 제어부(170)는 스위치(113, 114, 115)가 온으로 되도록 각 스위치를 제어한다. 따라서, 입력 픽쳐용 메모리(101)로부터 판독된 픽쳐 B11의 블럭에 대응하는 화상 데이터 Md는 움직임 벡터 검출부(108), 모드 선택부(179), 차분 연산부(102)에 입력된다.
움직임 벡터 검출부(108)는, 참조 픽쳐용 메모리(117)에 축적된 픽쳐 P7, P10을 전방 참조의 후보 픽쳐로서, 참조 픽쳐용 메모리(117)에 축적된 픽쳐 P13을 후방 참조 픽쳐로서 이용하여, 픽쳐 B11의 블럭에 대응하는 전방 움직임 벡터와 후방 움직임 벡터를 검출한다. 이 경우, 전방 움직임 벡터의 검출은 픽쳐 P7, P10 중에서 가장 상응한 참조 픽쳐를 선택하는 것에 의해 행하여진다. 검출된 움직임 벡터는 모드 선택부(179), 부호열 생성부(104)에 대하여 출력된다. 또한, 전방 움직임 벡터가 픽쳐 P7, P10 중 어느 것을 참조하여 검출된 움직임 벡터인지라는 정보(참조 픽쳐 정보)도 모드 선택부(179)에 대하여 출력된다.
모드 선택부(179)는 움직임 벡터 검출부(108)에 의해 검출한 움직임 벡터를 이용하여 픽쳐 B11의 블럭에 대응하는 부호화 모드를 결정한다. 여기서, B 픽쳐의 부호화 모드는, 예컨대, 픽쳐내 부호화 모드, 전방 움직임 벡터를 이용한 픽쳐간 예측 부호화 모드, 후방 움직임 벡터를 이용한 픽쳐간 예측 부호화 모드, 쌍방향 움직임 벡터를 이용한 픽쳐간 예측 부호화 모드 중에서 선택된다. 이 부호화 모드의 선택에서도, 상술한 바와 같이, 블럭에 대하여 소정의 비트량이 부호량으로서 인가된 경우에, 부호화 오차가 최소로 되는 일반적인 방법이 이용된다.
모드 선택부(179)에 의해 결정된 부호화 모드는 부호열 생성부(104)에 출력된다. 또한, 모드 선택부(179)에 의해 결정된 부호화 모드에 따른 참조 픽쳐로부터 얻어지는 예측 화상 데이터 Pd가 차분 연산부(102)와 가산 연산부(106)에 출력된다. 단, 픽쳐내 부호화가 선택된 경우에는, 예측 화상 데이터 Pd가 출력되지 않는다. 또한, 모드 선택부(179)에 의해 픽쳐내 부호화 모드가 선택된 경우에는, 스 위치(111, 112)가 상기 픽쳐 P13의 부호화 시와 마찬가지로 제어된다.
이하, 모드 선택부(179)에 의해 픽쳐간 예측 부호화가 선택된 경우에 대하여 설명한다.
이 경우, 차분 연산부(102), 예측 오차 부호화부(103), 부호열 생성부(104), 예측 오차 복호화부(105) 및 부호화 제어부(170)의 동작은 실시예 5와 마찬가지로 행하여진다.
이 때, 부호화 모드가, 전방 참조가 행하여지는 부호화 모드인 경우에는, 전방 움직임 벡터가 픽쳐 P7, P10 중 어느 것을 참조하여 검출된 움직임 벡터인지라는 정보(참조 픽쳐 정보)도 부호열에 부가된다. 예컨대, 픽쳐 P10을 참조하는 경우에는, 부호화 대상 픽쳐의 1매 전의 후보 픽쳐가 참조 픽쳐인 것을 나타내는 참조 픽쳐 정보, 픽쳐 P7을 참조하는 경우에는, 부호화 대상 픽쳐의 2매 전의 후보 픽쳐가 참조 픽쳐인 것을 나타내는 참조 픽쳐 정보이다. 예컨대, 대상 픽쳐의 1매 전의 후보 픽쳐가 참조 픽쳐인 것을 참조 픽쳐 번호 [0]에 의해 나타내고, 대상 픽쳐의 2매 전의 후보 픽쳐가 참조 픽쳐인 것을 참조 픽쳐 번호 [1]에 의해 나타낼 수 있다.
또한, 이 경우, 부호화 대상의 B 픽쳐가 전방의 B 픽쳐도 참조 픽쳐로서 이용하여 픽쳐간 예측 부호화 처리를 실시되어 있는 것을 나타내는 정보는 헤더 정보로서 부가되지 않는다. 또한, 부호화 대상의 B 픽쳐의 전방의 참조 후보 픽쳐가 2개의 I 또는 P 픽쳐와 하나의 B 픽쳐인 것을 나타내는 정보가 헤더 정보로서 부가된다. 또한, 부호화 대상 B 픽쳐에 대하여 가장 근방의 전방의 I 또는 P 픽쳐보다 더 전방에 위치하는 B 픽쳐를 참조하지 않는 것을 나타내는 정보가 헤더 정보로서 부가된다.
이것에 의해, 본 실시예의 동화상 부호화 장치(70)에 의해 생성된 부호열 Bs를 복호화할 때에, 어느 정도의 기억 용량을 갖는 참조 픽쳐용 메모리가 필요하게 되는지를 알 수 있다. 이들 헤더 정보는 픽쳐 단위의 헤더 정보, 즉 부호화 대상 픽쳐의 헤더 정보로서 기술하는 이외에, 시퀀스 전체의 헤더 정보나 수 픽쳐 단위(예컨대 MPEG 방식에서의 Group of pictures 등)의 헤더 정보로서 기술하더라도 된다.
또한, 픽쳐 B11이 그 후방의 픽쳐의 부호화 시에 참조 픽쳐로서 이용되기 때문에, 복호화 시에 해당 픽쳐 B11에 대응하는 복호 화상 데이터 Dd를 참조 픽쳐용 메모리(117)에 축적해야 하는지라는 정보, 및 참조 픽쳐용 메모리(117)에 이 데이터 Dd를 축적해야 할 기간은 픽쳐 B12의 복호화 종료 시까지인 것을 나타내는 정보가 각각 헤더 정보로서 부가된다. 이것에 의해, 복호화 처리 시의 참조 픽쳐용 메모리 관리가 간단하게 된다.
마찬가지의 처리에 의해, 픽쳐 B11의 나머지 블럭에 대한 부호화 처리가 종료되면, 다음에 픽쳐 B12의 부호화 처리가 행하여진다.
<픽쳐 B12의 부호화 처리>
픽쳐 B12는 B 픽쳐이기 때문에, 픽쳐 B12의 부호화 처리에서는 쌍방향 참조를 이용한 픽쳐간 예측 부호화가 행하여진다. 이 경우의 전방 참조의 후보 픽쳐로 서는, 부호화 대상 픽쳐 B12에 시간적으로 근방의 2개의 I 또는 P 픽쳐와, 해당 부호화 대상 픽쳐 B12에 시간적으로 가장 근방의 B 픽쳐가 이용된다. 또한, 후방 참조의 후보 픽쳐로서는, 해당 부호화 대상 픽쳐 B12에 시간적으로 가장 근방에 있는 I 또는 P 픽쳐가 이용된다. 즉, 이 경우, 구체적으로는, 픽쳐 B12에 대한 전방 참조의 후보 픽쳐는 픽쳐 P7, P10, B11, 픽쳐 B12에 대한 후방 참조 픽쳐는 픽쳐 P13이다.
픽쳐 B12는 다른 픽쳐에 대한 부호화 시에 참조 픽쳐로서 이용되지 않기 때문에, 부호화 제어부(170)는, 스위치(113)가 온으로 되고, 또한 스위치(114, 115)가 오프로 되도록 각 스위치를 제어 신호 Cs1에 의해 제어한다. 따라서, 입력 픽쳐용 메모리(101)로부터 판독된 픽쳐 B12의 블럭에 대응하는 화상 데이터 Md는 움직임 벡터 검출부(108), 모드 선택부(179) 및 차분 연산부(102)에 입력된다.
움직임 벡터 검출부(108)는, 참조 픽쳐용 메모리(117)에 축적된 픽쳐 P7, P10, B11을 전방 참조 픽쳐로서, 참조 픽쳐용 메모리(117)에 축적된 픽쳐 P13을 후방 참조 픽쳐로서 이용하여, 픽쳐 B12의 매크로에 대응하는 전방 움직임 벡터와 후방 움직임 벡터를 검출한다.
이 경우, 전방 움직임 벡터의 검출은 픽쳐 P7, P10, B11 중에서 가장 상응한 참조 픽쳐를 선택하여 행하여진다. 검출된 움직임 벡터 MV는 모드 선택부(179) 및 부호열 생성부(104)에 출력된다. 또한, 전방 움직임 벡터가 픽쳐 P7, P10, B11 중 어느 것을 참조하여 검출된 움직임 벡터인지라는 정보(참조 픽쳐 정보)도 모드 선택부(179)에 대하여 출력된다.
모드 선택부(179)는 움직임 벡터 검출부(108)에 의해 검출한 움직임 벡터를 이용하여 픽쳐 B12의 블럭에 대응하는 부호화 모드를 결정한다. 여기서, B 픽쳐의 부호화 모드는, 예컨대, 픽쳐내 부호화 모드, 전방 움직임 벡터를 이용한 픽쳐간 예측 부호화 모드, 후방 움직임 벡터를 이용한 픽쳐간 예측 부호화 모드, 및 쌍방향 움직임 벡터를 이용한 픽쳐간 예측 부호화 모드 중에서 선택된다.
모드 선택부(179)에 의해 결정된 부호화 모드 Ms는 부호열 생성부(104)에 대하여 출력된다. 또한, 모드 선택부(179)에 의해 결정된 부호화 모드에 따른 참조 픽쳐로부터 얻어진 예측 화상 데이터 Pd가 차분 연산부(102)와 가산 연산부(106)에 출력된다. 단, 픽쳐내 부호화가 선택된 경우에는, 예측 화상 데이터 Pd가 출력되지 않는다.
또한, 모드 선택부(179)에 의해 픽쳐내 부호화 모드가 선택된 경우에는, 스위치(111, 112)는 상기 픽쳐 P13의 부호화 시와 마찬가지로 제어된다.
이하, 모드 선택부(179)에 의해 픽쳐간 예측 부호화 모드가 선택된 경우에 대하여 설명한다.
이 경우, 차분 연산부(102), 예측 오차 부호화부(103), 부호열 생성부(104), 예측 오차 복호화부(105) 및 부호화 제어부(170)의 동작은 실시예 5와 마찬가지로 행하여진다.
이 때, 부호화 모드가 전방 참조가 행하여지는 부호화 모드인 경우에는, 전방 움직임 벡터가 픽쳐 P7, P10, B11 중 어느 것을 참조하여 검출된 움직임 벡터인지라는 정보(참조 픽쳐 정보)도 부호열에 부가된다.
또한, 헤더 정보로서, 부호화 대상 B 픽쳐 B12가 그 전방의 B 픽쳐 B11도 참조 픽쳐의 후보로서 이용하여 픽쳐간 예측 부호화 처리가 실시되어 있는 것을 나타내는 정보, 및 전방 참조의 후보 픽쳐가 2개의 I 또는 P 픽쳐와 하나의 B 픽쳐인 것을 나타내는 정보가 기술된다.
또한, 헤더 정보로서, 픽쳐 B12는 그 후방의 픽쳐의 부호화 처리 시에는 참조 픽쳐로서 이용되지 않는 것을 나타내는 정보가 부가된다.
이것에 의해, 픽쳐 B12에 대응하는 복호화 화상 데이터 Dd는 복호화 시에 참조 픽쳐용 메모리에 축적할 필요가 없는 것을 용이하게 판단할 수 있어, 참조 픽쳐용 메모리의 관리가 간단하게 된다.
이들 헤더 정보는 픽쳐 단위의 헤더 정보, 즉 부호화 대상 픽쳐의 헤더 정보로서 기술하는 이외에, 시퀀스 전체의 헤더 정보나 수 프레임 단위(예컨대 MPEG 방식에서의 Group Of pictures 등)의 헤더 정보로서 기술하더라도 된다.
마찬가지의 처리에 의해, 픽쳐 B12의 나머지 블럭의 부호화 처리가 행하여진다.
그리고, 상기 픽쳐 B12 이후의 각 픽쳐에 대응하는 화상 데이터는 픽쳐 타입에 따른, 상기와 마찬가지의 처리에 의해서 부호화된다. 예컨대, P 픽쳐는 픽쳐 P13과 마찬가지로 처리되고, 연속하는 B 픽쳐의 1매째의 B 픽쳐(픽쳐 B14, B17 등)는 픽쳐 B11과 마찬가지로 처리된다. 또한 연속하는 B 픽쳐의 2매째의 B 픽쳐(픽쳐 B15, B18 등)는 픽쳐 B12와 마찬가지로 처리된다.
이와 같이, 본 실시예 7의 동화상 부호화 장치(70)에서는, 부호화 대상 픽쳐 로서 B 픽쳐를 부호화할 때에, 전방 참조의 후보 픽쳐로서, P 픽쳐 이외에 B 픽쳐도 이용하기 때문에, 전방 참조 픽쳐로서, 부호화 대상 픽쳐의 가장 근방에 위치하는 전방 참조 픽쳐를 이용 가능해진다. 이것에 의해, B 픽쳐에 대한 움직임 보상의 예측 정밀도를 높일 수 있어, 부호 효율의 향상을 도모할 수 있다.
또한, 부호화 대상 픽쳐로서 B 픽쳐를 부호화할 때에, 헤더 정보로서, 그 부호화 대상 픽쳐가 다른 픽쳐의 부호화 시(복호화 시)에, 참조 픽쳐로서 이용되는지 여부를 나타내는 정보를 부가하고, 또한, 헤더 정보로서, 그 부호화 대상 픽쳐가 다른 픽쳐의 부호화 시(복호화 시)에 참조 픽쳐로서 이용되는 경우에는, 해당 부호화 대상 픽쳐를 참조 픽쳐용 메모리에 축적해야 할 기간을 나타내는 정보를 부가하기 때문에, 본 실시예 7의 동화상 부호화 장치로부터 출력된 부호열 Bs를 복호화할 때에, 복호화 시에 픽쳐용 메모리에 어떤 픽쳐를 축적하여야 할지, 또한 그 축적 기간은 언제까지인지를 간단히 알 수 있어, 복호화 시의 참조 픽쳐용 메모리 관리를 간편화할 수 있다.
또, 상기 실시예 7에서는, 부호화 대상의 B 픽쳐가 다른 B 픽쳐를 참조 픽쳐로서 이용하여 부호화 처리가 실시된 것인 경우에는, 이것을 부호화 대상의 B 픽쳐의 헤더 정보로서 기술하도록 하고 있지만, 해당 헤더 정보는, 픽쳐 단위의 헤더 정보로서 기술하는 이외에, 시퀀스 전체의 헤더 정보나 수 픽쳐 단위(예컨대 MPEG 방식에서의 Group of pictures 등)의 헤더 정보로서 기술하더라도 된다.
또한, 본 실시예 7에서는, 움직임 보상은 16 화소(수평 방향) ×16 화소(수직 방향)로 이루어지는 매크로 블럭을 단위로서 실행하고, 예측 오차 화상 데이터 의 부호화 처리는 4 화소(수평 방향) ×4 화소(수직 방향)로 이루어지는 블럭을 단위로서, 혹은 8 화소(수평 방향) ×8 화소(수직 방향)로 이루어지는 블럭을 단위로서 처리하는 경우에 대하여 설명했지만, 움직임 보상 및 예측 오차 화상 데이터의 부호화 처리는 이들 단위와는 다른 개수의 화소로 이루어지는 화상 공간을 단위로서 실행하도록 하더라도 된다.
또한, 본 실시예 7에서는, P 픽쳐의 부호화 모드는 픽쳐내 부호화 모드, 움직임 벡터를 이용한 픽쳐간 예측 부호화 모드, 움직임 벡터를 이용하지 않는 픽쳐간 예측 부호화 모드 중에서 하나의 부호화 모드를 선택하고, B 픽쳐의 부호화 모드는 픽쳐내 부호화 모드, 전방 움직임 벡터를 이용한 픽쳐간 예측 부호화 모드, 후방 움직임 벡터를 이용한 픽쳐간 예측 부호화 모드, 쌍방향 움직임 벡터를 이용한 픽쳐간 예측 부호화 모드 중에서 하나의 부호화 모드를 선택하는 경우를 예로서 설명했지만, P 픽쳐 및 B 픽쳐의 부호화 모드를 선택하는 방법은 실시예 7의 것에 한정되지 않는다.
또한, 본 실시예 7에서는, I 픽쳐와 P 픽쳐 사이, 및 인접하는 P 픽쳐 사이에 2매의 B 픽쳐가 삽입되어 있는 화상 시퀀스를 나타내었지만, 화상 시퀀스는, I 픽쳐와 P 픽쳐의 사이, 및 인접하는 P 픽쳐 사이에는 2매 이외의 매수, 예컨대 3매나 4매의 B 픽쳐가 삽입되어 있는 것이더라도 무방하다.
또한, 본 실시예 7에서는, P 픽쳐의 부호화 시에 전방 참조의 후보 픽쳐로서 이용되는 픽쳐수가 3인 경우에 대하여 설명했지만, 이것은 다른 값이더라도 무방하다.
또한, 본 실시예 7에서는 B 픽쳐의 부호화 시에는 전방 참조의 후보 픽쳐로서, 2개의 P 픽쳐와 하나의 B 픽쳐를 이용하는 경우에 대하여 설명했지만, B 픽쳐의 부호화 시에서의 전방 참조의 후보 픽쳐로서는 상기 실시예 7과는 다른 매수의 P 픽쳐 및 B 픽쳐를 이용하더라도 된다. 예컨대, B 픽쳐에 대한 전방 참조의 후보 픽쳐로서는, 하나의 P 픽쳐와 2개의 B 픽쳐, 2개의 P 픽쳐와 2개의 B 픽쳐, 혹은 픽쳐 타입에 관계없이 시간적으로 부호화 대상 픽쳐에 가장 근접하여 위치하는 3개의 픽쳐를 이용하더라도 된다.
여기서, B 픽쳐의 부호화 시에, 해당 B 픽쳐에 가장 근접하여 위치하는 하나의 픽쳐만을 참조 픽쳐로서 이용하는 경우에는, 블럭이 어떤 픽쳐를 참조하여 부호화되어 있는지라는 정보(참조 픽쳐 정보)는 부호열 중에 기술할 필요는 없다.
또한, 본 실시예 7에서는, B 픽쳐의 부호화 시에, 해당 B 픽쳐에 가장 근접하여 위치하는 전방 I 또는 P 픽쳐보다 더 전방에 위치하는 B 픽쳐가 참조 픽쳐로서 이용하지 않는 경우에 대하여 설명했지만, B 픽쳐의 부호화 시에, 해당 B 픽쳐의 가장 근방에 위치하는 전방 P 픽쳐의 더 전방에 위치하는 B 픽쳐를 참조 픽쳐로서 이용하도록 하더라도 된다.
(실시예 8)
다음에 본 발명의 실시예 8에 대하여 설명한다.
도 35는 본 발명의 실시예 8에 따른 동화상 복호화 장치를 설명하기 위한 블럭도이다.
본 실시예 8의 동화상 복호화 장치(80)는 상기 실시예 7의 동화상 부호화 장치(70)로부터 출력된 부호열 Bs를 복호화하는 것이다.
본 실시예 8의 동화상 복호화 장치(80)는 P 픽쳐 및 B 픽쳐의 부호화 시에 전방 참조하는 후보 픽쳐, 및 B 픽쳐에 대한 부호화 모드가 상기 실시예 2의 동화상 부호화 장치(20)와는 상이하다.
즉, 본 실시예 8의 동화상 부호화 장치(80)는, 실시예 2의 메모리 제어부(204) 및 모드 복호부(223) 대신에, 이들과는 다른 동작을 하는 메모리 제어부(284) 및 모드 복호부(283)를 갖는 것이다.
구체적으로는, 실시예 8의 동화상 복호화 장치(80)의 메모리 제어부(284)는, P 픽쳐의 복호화 시에는 해당 P 픽쳐의 전방에 위치하는 3개의 픽쳐(I 또는 P 픽쳐)가 전방 참조의 후보 픽쳐로서 이용되고, B 픽쳐의 복호화 시에는 해당 B 픽쳐의 전방에 위치하는 2개의 픽쳐(I 또는 P 픽쳐), 해당 B 픽쳐의 최근방에 위치하는 하나의 전방 B 픽쳐, 및 후방의 하나의 I 또는 P 픽쳐가 후보 픽쳐로서 이용되도록 참조 픽쳐용 메모리(287)를 제어하는 것이다. 단, 복호화 대상 픽쳐에 대하여 그 가장 근방에 위치하는 전방의 I 또는 P 픽쳐의 더 전방에 위치하는 B 픽쳐는 참조하지 않는 것으로 하고 있다.
상기 메모리 제어부(284)는 대상 픽쳐에 대응하는 부호열에 삽입되어 있는, 대상 픽쳐가 해당 대상 픽쳐 이후의 픽쳐에 대한 부호화 처리 시에 참조되는지 여부를 나타내는 플래그에 근거하여 참조 픽쳐용 메모리(287)를 제어 신호 Cm에 의해 제어하는 것이다.
구체적으로는, 대상 픽쳐에 대응하는 부호열에는 복호화 시에 대상 픽쳐의 데이터를 참조 픽쳐용 메모리(287)에 축적해야 할 것을 나타내는 정보(플래그), 및 그 축적해야 할 기간을 나타내는 정보가 포함되어 있다.
또한, 실시예 8의 동화상 복호화 장치(80)의 모드 복호화부(283)는, P 픽쳐의 블럭의 복호화 시에는 대상 블럭의 부호화 모드로서, 픽쳐내 복호화, 움직임 벡터를 이용한 픽쳐간 예측 복호화, 움직임 벡터를 이용하지 않는(움직임을 0으로서 취급하는) 픽쳐간 예측 복호화 중에서 하나를 선택하고, B 픽쳐의 블럭의 복호화 시에는 대상 블럭의 부호화 모드로서, 픽쳐내 복호화, 전방 움직임 벡터를 이용하는 픽쳐간 예측 복호화, 후방 움직임 벡터를 이용하는 픽쳐간 예측 복호화, 및 전방 움직임 벡터 및 후방 움직임 벡터를 이용하는 픽쳐간 예측 복호화 중에서 하나를 선택하는 것이다. 즉, 본 실시예 8의 동화상 복호화 장치(80)의 모드 복호부(283)는 실시예 2의 동화상 부호화 장치(20)의 모드 복호부(223)와는 다이렉트 모드를 이용하지 않는 점에서만 상이하다. 따라서, 이 동화상 복호화 장치(80)는 동화상 복호화 장치(20)의 움직임 벡터 기억부(116)를 갖고 있지 않다. 그리고, 실시예 8의 동화상 복호화 장치(80)의 그 외의 구성은 실시예 2의 동화상 복호화 장치(20)에서의 것과 동일하다.
또, 본 실시예 8의 동화상 복호화 장치(80)는 실시예 6의 동화상 복호화 장치(60)와는 메모리 제어부(284)가 대상 픽쳐 이후의 픽쳐에 대한 부호화 처리 시에 해당 대상 픽쳐가 참조되는지 여부를 나타내는 플래그가, 해당 대상 픽쳐에 대응하는 부호열에 삽입되도록 부호열 생성부(104)를 제어하는 점이 상이하다. 또한, 실 시예 8의 동화상 복호화 장치(80)에서는, P 픽쳐 및 B 픽쳐의 복호화 시에 참조되는 후보 픽쳐도 상기 실시예 6의 동화상 복호화 장치(60)와는 상이하다. 그리고, 본 실시예 8의 동화상 복호화 장치(80)에서의 그 외의 구성은 실시예 6의 동화상 복호화 장치(60)와 동일하다.
다음에 동작에 대하여 설명한다.
본 실시예 8의 동화상 복호화 장치(80)에는 상기 실시예 7의 동화상 부호화 장치(70)에 의해 생성된 부호열 Bs가 입력된다.
여기서는, P 픽쳐의 복호화 시에는, 해당 P 픽쳐에 대하여 시간적으로 전방에 있는 근방의 3개의 픽쳐(I 또는 P 픽쳐)를 참조 픽쳐의 후보로서 이용한다. 또한, B 픽쳐의 복호화 시에는, 해당 B 픽쳐에 대하여 시간적으로 근방에 있는 전방의 2개의 픽쳐(I 또는 P 픽쳐), 전방에 있는 가장 근방의 하나의 B 픽쳐, 및 후방의 하나의 I 또는 P 픽쳐를 참조 픽쳐의 후보로서 이용한다. 단, B 픽쳐의 복호화 시, 시간적으로 최근방에 있는 전방의 I 또는 P 픽쳐의 더 전방에 위치하는 B 픽쳐는 참조하지 않는 것으로 한다. 또, I 픽쳐의 복호화 시에는 다른 픽쳐를 참조하지 않는다.
또한, P 픽쳐와 B 픽쳐의 복호화 처리 시에, 후보 픽쳐 중 어느 픽쳐가 참조 픽쳐로서 이용되고 있는지는 부호열 Bs의 헤더 정보 Ih로서 기술되어 있고, 해당 헤더 정보 Ih는 부호열 해석부(201)에 의해 추출된다.
그리고 해당 헤더 정보 Ih는 메모리 제어부(284)에 출력된다. 또, 해당 헤더 정보는 시퀀스 전체의 헤더 정보나, 수 픽쳐 단위(예컨대 MPEG 방식에서의 Group of pictures 등)의 헤더 정보나, 픽쳐 단위의 헤더 정보로서 기술되어 있는 것으로 한다.
본 실시예 8의 동화상 복호화 장치(80)에 입력되는 부호열 Bs에서의 픽쳐의 순서는, 도 36(a)에 나타내는 바와 같이, 픽쳐의 복호순이다. 이하, 구체적으로 픽쳐 P13, B11, B12의 복호화 처리에 대하여 순서대로 설명한다.
<픽쳐 P13의 복호화 처리>
픽쳐 P13에 대응하는 부호열이 부호열 해석부(201)에 입력되면, 부호열 해석부(201)는 입력된 부호열로부터 각종 데이터를 추출한다. 여기서 각종 데이터란, 모드 선택에 관한 정보(부호화 모드) Ms나 움직임 벡터 MV의 정보, 상기 헤더 정보 Ih 등이다. 추출된 부호화 모드 Ms는 모드 복호부(203)에 출력된다. 또한, 추출된 움직임 벡터 MV는 움직임 보상 복호부(205)에 출력된다. 또한, 부호열 해석부(201)에 의해 추출된 부호화 데이터 Ed는 예측 오차 복호화부(202)에 출력된다.
모드 복호부(203)는 부호열로부터 추출된 모드 선택의 정보(부호화 모드) Ms에 근거하여 스위치(209, 210)를 제어한다. 부호화 모드 Ms가 픽쳐내 부호화 모드인 경우, 및 부호화 모드 Ms가 픽쳐간 예측 부호화 모드인 경우의 스위치(209, 210)의 제어는 상기 실시예 6과 마찬가지로 행하여진다.
또한, 모드 복호부(203)는 부호화 모드 Ms를 움직임 보상부(205)에도 출력한다. 이하, 선택 모드가 픽쳐간 예측 부호화 모드인 경우에 대하여 설명한다.
이 경우, 예측 오차 복호화부(202), 움직임 보상 복호화부(205), 가산 연산 부(208)의 동작은 실시예 6과 마찬가지이기 때문에, 그 설명은 생략한다.
도 37은 참조 픽쳐용 메모리(207)에 의해 데이터가 유지되어 있는 픽쳐의 시간적 변화의 모양을 나타내고 있다.
픽쳐 P13의 복호화가 개시될 때에는, 참조 픽쳐용 메모리(207)의 영역 R1, R2, R3에는 픽쳐 B8, P7, P10이 유지되어 있다. 그리고 픽쳐 P13에는 픽쳐 P7, P10을 참조 픽쳐의 후보로서 이용하여 복호화 처리가 실시되고, 픽쳐 B8이 유지되어 있던 메모리 영역 R1에 픽쳐 P13이 유지된다. 이러한 참조 픽쳐용 메모리에서의 각 픽쳐의 화상 데이터의 리라이팅은 부호열에 부가되어 있는 각 픽쳐의 헤더 정보에 근거하여 행하여진다. 이 헤더 정보는, 픽쳐 P7이 픽쳐 P13의 복호화 처리 완료 시까지, 픽쳐 P10은 픽쳐 P16의 복호화 처리가 완료될 때까지, 픽쳐 B8은 픽쳐 B9의 복호화 처리가 완료될 때까지, 참조 픽쳐용 메모리(207)에 유지하여야 하는 것을 나타내는 정보이다.
바꿔 말하면, 픽쳐 B8은 픽쳐 P13 이후의 픽쳐의 복호화에는 불필요하다고 판단할 수 있기 때문에, 픽쳐 B8이 유지되어 있는 참조 픽쳐용 메모리 영역 R1은 픽쳐 P13에 의해 리라이팅되게 된다.
또한, 픽쳐 P13의 헤더 정보로서, 픽쳐 P13은 픽쳐 P19의 복호화 완료 시까지 참조 픽쳐용 메모리에 유지하여야 하는 것을 나타내는 정보가 기술되어 있기 때문에, 적어도 그 때까지 참조 픽쳐용 메모리에 유지된다.
이상과 같이 하여, 픽쳐 P13의 블럭이 순서대로 복호화된다. 픽쳐 P13의 블럭에 대응하는 부호화 데이터가 모두 복호화되면, 픽쳐 B11에 대한 복호화 처리가 개시된다.
<픽쳐 B11의 복호화 처리>
부호열 해석부(201), 모드 복호화부(203) 및 예측 오차 복호화부(202)의 동작은 픽쳐 P13의 복호화 처리 시와 마찬가지이기 때문에, 그들의 동작의 설명은 생략한다.
움직임 보상 복호부(205)는 입력된 움직임 벡터의 정보 등으로부터 움직임 보상 화상 데이터 Pd를 생성한다. 즉, 움직임 보상 복호부(205)에 입력되는 정보는 상기 픽쳐 B11에 대응하는 움직임 벡터 MV 및 참조 픽쳐 번호에 관한 정보이다. 픽쳐 B11은, 전방 참조 픽쳐로서 픽쳐 P10을 참조하고, 후방 참조 픽쳐로서 픽쳐 P13을 참조하여 부호화 처리가 실시된 것이다. 따라서, 픽쳐 B11의 복호화 시에는, 이들 후보 픽쳐 P10, P13은 이미 복호화 처리가 실시되어, 대응하는 복호화 화상 데이터 DId가 참조 픽쳐용 메모리(207)에 유지되어 있다.
부호화 모드가 쌍방향 예측의 픽쳐 예측 부호화 모드인 경우에는, 움직임 보상 복호부(205)는, 전방 움직임 벡터의 정보에 근거하여 전방 참조 화상을 참조 픽쳐용 메모리(207)로부터 취득하고, 후방 움직임 벡터의 정보에 근거하여 후방 참조 화상을 참조 픽쳐용 메모리(207)로부터 취득한다. 그리고, 움직임 보상 복호부(205)는 전방 참조 화상과 후방 참조 화상을 가산 평균하는 것에 의해 움직임 보상 화상을 생성한다. 이렇게 하여 생성된 움직임 보상 화상의 데이터 Pd는 가산 연산부(208)에 출력된다.
가산 연산부(208)는 입력된 예측 오차 화상 데이터 PDd와 움직임 보상 화상 데이터 Pd를 가산하여 가산 화상 데이터 Ad를 출력한다. 생성된 가산 화상 데이터 Ad는 복호화 화상 데이터 DId로서 스위치(210)를 거쳐서 참조 픽쳐용 메모리(207)에 출력된다.
참조 픽쳐용 메모리 제어부(204)에서는 부호열의 헤더 정보인, P 픽쳐 및 B 픽쳐가 어떠한 후보 픽쳐를 참조하여 부호화 처리가 실시되어 있는지를 나타내는 정보에 근거해서 참조 픽쳐용 메모리(207)를 제어한다.
도 37은 참조 픽쳐용 메모리(207)에서의 픽쳐의 축적 상태가 시간적으로 변화되는 모양을 나타내고 있다.
픽쳐 B11의 복호화가 개시될 때에는, 참조 픽쳐용 메모리(207)에는 픽쳐 P13, P7, P10이 유지되어 있다. 그리고, 픽쳐 B11에는 픽쳐 P10, P13을 참조 픽쳐로서 이용하여 복호화 처리가 실시되고, 픽쳐 P7이 유지되어 있던 메모리 영역 R2에 픽쳐 B11이 유지된다. 이러한 참조 픽쳐용 메모리에서의 각 픽쳐의 리라아팅은 부호열에 부가되어 있는 각 픽쳐의 헤더 정보에 근거하여 행하여진다. 이 헤더 정보는, 픽쳐 P7은 픽쳐 P13의 복호화 처리가 완료될 때까지, 픽쳐 P10은 픽쳐 P16의 복호화 처리가 완료될 때까지, 픽쳐 P13은 픽쳐 P19의 복호화 처리가 완료될 때까지, 참조 픽쳐용 메모리(207)에 유지하여야 하는 것을 나타내는 정보이다.
바꿔 말하면, 픽쳐 P7은 픽쳐 P13 이후의 픽쳐의 복호화 시에는 불필요하다고 판단할 수 있기 때문에, 픽쳐 P7이 유지되어 있는 참조 픽쳐용 메모리 영역 R2에 픽쳐 B11이 유지되게 된다.
또한, 픽쳐 B11의 헤더 정보로서, 픽쳐 B11은 픽쳐 B12의 복호화 처리가 완료될 때까지 참조 픽쳐용 메모리(207)에 유지하여야 하는 것을 나타내는 정보가 기술되어 있기 때문에, 적어도 그 때까지 픽쳐 B11은 참조 픽쳐용 메모리(207)에 유지된다.
이상과 같이 하여, 픽쳐 B11의 블럭에 대응하는 부호화 데이터가 순서대로 복호화된다. 픽쳐 B11의 블럭에 대응하는 부호화 데이터가 모두 복호화되면, 픽쳐 B12의 복호화가 행하여진다.
<픽쳐 B12의 복호화 처리>
상기 부호열 해석부(201), 모드 복호화부(203) 및 예측 오차 복호화부(202)의 동작은 픽쳐 P13의 복호화 처리 시와 마찬가지이기 때문에, 이들 동작의 설명은 생략한다.
움직임 보상 복호부(205)는 입력된 움직임 벡터의 정보 등으로부터 움직임 보상 화상 데이터 Pd를 생성한다. 즉, 움직임 보상 복호부(205)에 입력되는 정보는 픽쳐 B12에 대응하는 움직임 벡터 및 참조 픽쳐 번호이다. 픽쳐 B12는, 전방 참조 픽쳐의 후보로서 픽쳐 P10 및 B11을 이용하고, 후방 참조 픽쳐로서 픽쳐 P13을 참조하여 부호화 처리가 실시된 것이다. 이들 참조 후보 픽쳐 P10, B11, P13은 이미 복호화 처리가 실시되어, 대응하는 복호화 화상 데이터가 참조 픽쳐용 메모리(207)에 유지되어 있다.
부호화 모드가 쌍방향 예측 부호화 모드인 경우에는, 움직임 보상 복호 부(205)는 참조 픽쳐 번호로부터, 픽쳐 B12가 픽쳐 P10, B11 중 어느 픽쳐를 전방 참조 픽쳐로서 이용하여 부호화 처리가 실시되어 있는지를 결정하며, 그리고, 전방 움직임 벡터의 정보에 근거하여 전방 참조 화상을 참조 픽쳐용 메모리(207)로부터 취득한다. 또한, 움직임 보상 복호부(205)는 후방 움직임 벡터의 정보에 근거하여 후방 참조 화상을 참조 픽쳐용 메모리(207)로부터 취득한다. 그리고, 전방 참조 화상과 후방 참조 화상을 가산 평균하는 것에 의해 움직임 보상 화상을 생성한다. 이렇게 하여 생성된 움직임 보상 화상의 데이터 Pd는 가산 연산부(208)에 대하여 출력된다.
가산 연산부(208)에서는 입력된 예측 오차 화상 데이터 PDd와 움직임 보상 화상 데이터 Pd를 가산하여 가산 화상 데이터 Ad를 출력한다. 생성된 가산 화상 데이터 Ad는 복호화 화상 데이터 DId로서 스위치(210)를 거쳐서 참조 픽쳐용 메모리(207)에 출력된다.
메모리 제어부(284)는 부호열의 헤더 정보로부터 추출된, P 픽쳐 및 B 픽쳐가 어떠한 참조 픽쳐를 이용하여 부호화 처리가 실시되어 있는지라는 정보에 근거해서 참조 픽쳐용 메모리(207)의 제어를 한다.
도 37은 참조 픽쳐용 메모리(207)에서의 픽쳐의 유지 상태가 시간적으로 변화되는 모양을 나타내고 있다. 픽쳐 B12의 복호화 처리가 개시될 때에는, 참조 픽쳐용 메모리(207)에는 픽쳐 P13, B11, P10이 유지되어 있다. 그리고 픽쳐 B12에는 픽쳐 P13, B11, P10을 참조 후보 픽쳐로서 이용하여 복호화 처리가 실시된다. 여기서, 픽쳐 B12는 다른 픽쳐의 복호화 시에 참조 픽쳐로서 이용되지 않는다고 하는 정보가 헤더 정보로서 기술되어 있으므로, 픽쳐 B12의 복호화 데이터는 참조 픽쳐용 메모리(207)에 유지되지 않고서 그대로 출력 화상 데이터 Od로서 출력된다.
이상과 같이 하여, 픽쳐 B12의 블럭에 대응하는 부호화 데이터가 순서대로 복호화된다. 참조 픽쳐용 메모리(207)에 유지된 각 픽쳐의 복호화 화상 데이터, 및 참조 픽쳐용 메모리에 축적되지 않는 복호화 화상 데이터는, 도 36(b)에 도시하는 바와 같이, 표시 시간순으로 재배열하는 처리가 실시되어, 출력 화상 데이터 Od로서 출력된다.
이하, 각 픽쳐는 픽쳐 타입에 따라서, 상기 각 픽쳐 타입의 픽쳐와 마찬가지의 처리에 의해서 부호화 데이터의 복호화 처리가 실시된다.
즉, P 픽쳐는 픽쳐 P13과 마찬가지로 부호화 데이터를 복호화하는 처리가 실시되고, 연속하는 B 픽쳐의 1매째의 B 픽쳐(픽쳐 B14, B17 등)는 픽쳐 B11과 마찬가지의 복호화 처리가 실시된다. 또한, 연속하는 B 픽쳐의 2매째의 B 픽쳐(픽쳐 B15, B18 등)는 픽쳐 B12와 마찬가지의 복호화 처리가 실시된다.
이와 같이 본 실시예 8의 동화상 복호화 장치(80)에서는, B 픽쳐를 복호화할 때에 B 픽쳐를 참조 후보 픽쳐로서 이용하기 때문에, B 픽쳐를 부호화할 때에 전방 참조의 후보 픽쳐로서, P 픽쳐의 외에 B 픽쳐도 이용하는 부호화 처리에 의해 얻어진 부호열을 정확히 복호화할 수 있다. 또한, 이 때에, 부호열로부터 얻어지는 P 픽쳐 및 B 픽쳐가 어떠한 참조 픽쳐를 이용하여 부호화 처리를 실시된 것인지라는 정보를 이용해서 참조 픽쳐용 메모리의 제어를 하기 때문에, 참조 픽쳐용 메모리의 유효 이용이 가능하다. 즉, 이후의 복호화 처리 시에 참조 픽쳐로서 이용되는 픽 쳐의 화상 데이터는 참조 픽쳐용 메모리에 유지한 채로 해 두고, 이후의 복호화 시에 참조 픽쳐로서 이용되지 않는 픽쳐의 화상 데이터를 순서대로 삭제해 가는 것에 의해 참조 픽쳐용 메모리를 유효하게 이용할 수 있다.
또, 본 실시예 8에서는 인접하는 P 픽쳐 사이에 2매의 B 픽쳐가 배치되어 있는 화상 시퀀스에 대응하는 부호열을 나타내었지만, 인접하는 P 픽쳐 사이에 위치하는 B 픽쳐의 매수는 2매에 한정되지 않고, 예컨대 3매나 4매이더라도 무방하다.
또한, 본 실시예 8에서는, P 픽쳐의 복호화 처리 시, 전방 참조의 후보 픽쳐로서 2매의 픽쳐를 이용하는 경우를 나타내었지만, P 픽쳐의 복호화 처리 시에 참조하는 전방 후보 픽쳐의 수는 2 이외의 수이더라도 무방하다.
또한, 본 실시예 8에서는, B 픽쳐의 복호화 처리 시, 전방 참조의 후보 픽쳐로서, 하나의 P 픽쳐와 하나의 B 픽쳐를 이용하고, 또한 복호 대상 B 픽쳐에 대하여 시간적으로 가장 근방에 위치하는 I 또는 P 픽쳐보다 더 전방에 위치하는 B 픽쳐를 참조 픽쳐로서 이용하지 않는 경우에 대하여 설명했지만, B 픽쳐의 복호화 처리 시에 참조 후보 픽쳐로서 이용하는 픽쳐는 상기 실시예 8에서 나타내는 것과는 상이한 것이더라도 된다. 또한, B 픽쳐의 복호화 처리 시, 복호 대상 B 픽쳐에 대하여 시간적으로 가장 근방에 위치하는 I 또는 P 픽쳐보다 더 전방의 B 픽쳐를 참조 픽쳐로서 이용하더라도 된다.
또한, 본 실시예 8에서는, 다른 픽쳐의 복호화 시에 참조 픽쳐로서 이용되지 않는 픽쳐의 복호 화상 데이터가 참조 픽쳐용 메모리에 축적하지 않은 경우에 대하여 설명했지만, 이것은 축적하도록 하더라도 무방하다.
예컨대, 각 픽쳐의 복호 화상 데이터의 출력 처리를 각 픽쳐의 복호화 처리보다도 약간 지연시켜 실행하는 경우에는, 각 픽쳐의 복호 화상 데이터를 참조 픽쳐용 메모리에 축적할 필요가 발생한다. 이 경우에는, 참조 픽쳐용 메모리 상에, 참조 후보 픽쳐의 복호 화상 데이터로서 축적하는 메모리 영역과는 별도의 영역을 마련하고, 그 영역에 참조 픽쳐로서 이용되지 않는 픽쳐의 복호 화상 데이터를 축적하면 된다. 이 경우, 참조 픽쳐용 메모리의 기억 용량은 증가하지만, 참조 픽쳐용 메모리의 관리 방법은 상기 실시예 8과 마찬가지로 되어, 간단한 방법에 의한 참조 픽쳐용 메모리 관리를 실현할 수 있다.
또, 상기 실시예 2, 4, 6, 8에서는 모든 픽쳐가 참조 후보 픽쳐로서 이용되는 경우에 대하여 설명했지만, 반드시 모든 픽쳐가 참조 후보 픽쳐로서 이용되는 것은 아니다.
간단히 설명하면, 통상은, 동화상 복호화 장치에서는, 복호화가 실시된 픽쳐가 참조 후보 픽쳐로서 이용될지 이용되지 않는지에 관계없이, 일단 복호화 버퍼(복호 프레임 메모리)에 기억되고, 그 후, 해당 복호된 픽쳐는 해당 복호화 버퍼로부터 순차적으로 판독되어 표시된다.
본 실시예 2, 4, 6, 8에서는, 모든 픽쳐가 참조 후보 픽쳐로서 이용되는 경우에 대하여 설명하고 있으며, 따라서, 이들 실시예에서는, 복호화된 픽쳐가 모두 참조 후보 픽쳐로서 이용되는 픽쳐를 기억하는 참조 픽쳐용 메모리에 기억되며, 그 후, 복호화된 픽쳐는 참조 픽쳐용 메모리로부터 순차적으로 판독되어 표시되는 경우를 나타내고 있다.
단, 상술한 바와 같이, 복호화된 픽쳐는 모두 참조 후보 픽쳐로서 이용되는 것은 아니다. 따라서, 복호화된 픽쳐는 참조 후보 픽쳐로서 이용되지 않는 픽쳐뿐만 아니라, 참조 후보 픽쳐로서 이용되는 픽쳐도 기억하는 복호화 버퍼(복호화 프레임 메모리)에 일단 기억되고, 그 후, 해당 복호화된 픽쳐는 해당 복호화 버퍼로부터 순차적으로 판독되어 표시되도록 하더라도 무방하다.
또한, 상기 각 실시예에서는 동화상 부호화 장치 혹은 동화상 복호화 장치를 하드웨어에 의해 실현한 것을 나타내었지만, 이들 장치는 소프트웨어에 의해 실현하더라도 된다. 이 경우, 상기 각 실시예에서 나타낸 부호화 처리 혹은 복호화 처리를 하기 위한 프로그램을 가요성 디스크(flexible disk) 등의 데이터 기억 매체에 기록해 두는 것에 의해, 상기 동화상 부호화 장치 혹은 동화상 복호화 장치를 독립된 컴퓨터 시스템에서 간단히 실현하는 것이 가능해진다.
도 38은 상기 실시예 1, 3, 5, 7의 동화상 부호화 처리 또는 실시예 2, 4, 6, 8의 동화상 복호화 처리를 하는 컴퓨터 시스템을 설명하기 위한 도면이다.
도 38(a)는 컴퓨터 시스템에서 이용하는 프로그램의 기억 매체인 가요성 디스크의, 정면에서 본 외관, 단면 구조, 및 가요성 디스크 본체를 나타내고, 도 38(b)는 가요성 디스크 본체의 물리 포맷의 예를 나타내고 있다.
가요성 디스크 FD는 상기 디스크 본체 D를 케이스 F 내에 내장한 것이며, 해당 디스크 본체 D의 표면에는 동심원 형상으로 외주로부터 내주로 향하여 복수의 트랙 Tr가 형성되고, 각 트랙은 각도 방향으로 16개의 섹터 Se로 분할되어 있다. 따라서, 상기 프로그램을 저장한 가요성 디스크 FD에서는 상기 디스크 본체 D 상에 할당된 기억 영역에 상기 동화상 부호화 처리 또는 동화상 복호화 처리를 하기 위한 프로그램이 기록되어 있다.
또한, 도 38(c)는 가요성 디스크 FD에 상기 프로그램의 기록 재생을 하기 위한 구성을 나타낸다. 상기 프로그램을 가요성 디스크 FD에 기록하는 경우는, 컴퓨터 시스템 Csys로부터 상기 프로그램을 가요성 디스크 드라이브를 거쳐서 가요성 디스크 FD에 기록한다. 또한, 가요성 디스크 FD 내에 기록되어 있는 프로그램에 의해 상기 동화상 부호화 장치 또는 동화상 복호화 장치를 컴퓨터 시스템 내에 구축하는 경우는, 가요성 디스크 드라이브 FDD에 의해 상기 프로그램을 가요성 디스크 FD로부터 판독하여 컴퓨터 시스템 Csys에 전송한다.
또, 상기 설명에서는, 기록 매체로서 가요성 디스크를 예로 들었지만, 광디스크를 이용하더라도, 상기 가요성 디스크를 이용하는 경우와 마찬가지로, 소프트웨어에 의한 동화상 부호화 처리 혹은 동화상 복호화 처리를 할 수 있다. 또한, 기록 매체는 이것에 한정되지 않고, CD-ROM, 메모리 카드, ROM 카세트 등, 프로그램을 기록할 수 있는 것이면 어떠한 것이라도 무방하며, 이들 데이터 기록 매체를 이용하는 경우에서도, 상기 가요성 디스크 등을 이용하는 경우와 마찬가지로, 컴퓨터 시스템에 의해 동화상 부호화 처리 혹은 동화상 복호화 처리를 할 수 있다.
또한 이하, 상기 실시예에서 나타낸 동화상 부호화 방법이나 동화상 복호화 방법의 응용예와 그것을 이용한 시스템에 대하여 설명한다.
도 39는 콘텐츠 분배 서비스를 실현하는 콘텐츠 공급 시스템(1100)의 전체 구성을 나타내는 블럭도이다.
통신 서비스의 제공 영역은 소망하는 크기의 영역(셀)으로 분할되고, 각 셀 내에 각각 고정 무선국인 기지국(1107∼1110)이 설치되어 있다.
이 콘텐츠 공급 시스템(1100)에서는, 예컨대, 인터넷(1101)에 인터넷 서비스 제공자(provider)(1102), 전화망(1104) 및 기지국(1107∼1110)을 거쳐서 컴퓨터(1111), PDA(personal digital assistant)(1112), 카메라(1113), 휴대 전화(1114), 카메라 부착 휴대 전화(1200) 등의 각 기기가 접속된다.
단, 콘텐츠 공급 시스템(1100)은, 도 39에 나타내는 복수의 기기를 모두 포함하는 것에 한정되지 않고, 도 39에 나타내는 복수의 기기의 일부의 것을 포함하는 것이더라도 무방하다. 또한, 각 기기는 고정 무선국인 기지국(1107∼1110)을 거치지 않고서 전화망(1104)에 직접 접속되더라도 무방하다.
여기서, 카메라(1113)는 디지털 비디오 카메라 등의 동화상 촬영이 가능한 기기이다. 또한, 휴대 전화는 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) 등이며, 어느 방식의 것이라도 무방하다.
또한, 스트리밍 서버(1103)는 카메라(1113)와는 기지국(1109), 전화망(1104)을 거쳐서 접속되어 있고, 이 시스템에서는 카메라(1113)를 이용하여 사용자가 송신하는 부호화 처리된 데이터에 근거한 라이브(live) 분배 등이 가능하게 되어 있다. 촬영한 데이터의 부호화 처리는 카메라(1113)에서 행하더라도, 데이터의 송신 처리를 하는 서버 등에서 행하더라도 무방하다. 또한, 카메라(1116)에 의해 동화상을 촬영하여 얻어진 동화상 데이터는 컴퓨터(1111)를 거쳐서 스트리밍 서버(1103)에 송신되더라도 된다. 카메라(1116)는 디지털 카메라 등의 정지 화상, 동화상이 촬영 가능한 기기이다. 이 경우, 동화상 데이터의 부호화는 카메라(1116)에서 행하더라도 컴퓨터(1111)에서 행하더라도 어느 쪽라도 무방하다. 또한, 부호화 처리는 컴퓨터(1111)나 카메라(1116)가 갖는 LSI(1117)에 의해 행하여지게 된다.
또, 화상 부호화·복호화용의 소프트웨어는 컴퓨터(1111) 등에서 판독 가능한 기록 매체인 축적 미디어(CD-ROM, 가요성 디스크, 하드디스크 등)에 저장하도록 하더라도 된다. 또한, 동화상 데이터는 카메라 부착 휴대 전화(1200)에 의해 송신하더라도 된다. 이 동화상 데이터는 휴대 전화(1200)가 갖는 LSI에 의해 부호화 처리된 데이터이다.
이 콘텐츠 공급 시스템(1100)에서는, 사용자가 카메라(1113), 카메라(1116) 등으로 촬영하고 있는 콘텐츠(예컨대, 음악 라이브를 촬영한 영상 등)는 카메라로부터 상기 실시예와 마찬가지로 부호화 처리하여 스트리밍 서버(1103)에 송신되고, 한쪽에서, 스트리밍 서버(1103)로부터는 요구가 있었던 클라이언트에 대하여 상기 콘텐츠 데이터가 스트림 분배된다.
클라이언트로서는, 상기 부호화 처리된 데이터를 복호화하는 것이 가능한, 컴퓨터(1111), PDA(1112), 카메라(1113), 휴대 전화(1114) 등이 있다.
이러한 콘텐츠 공급 시스템(1100)에서는 부호화된 데이터를 클라이언트측에 서 수신하여 재생할 수 있고, 또한 클라이언트측에서 실시간으로 수신하여 복호화하여 재생하는 것에 의해 개인 방송도 실현 가능하다.
이 시스템을 구성하는 각 기기의 부호화, 복호화에는 상기 각 실시예에서 나타낸 동화상 부호화 장치 혹은 동화상 복호화 장치를 이용하도록 하면 된다.
그 일례로서 휴대 전화에 대하여 설명한다.
도 40은 상기 실시예에서 설명한 동화상 부호화 방법과 동화상 복호화 방법을 이용한 휴대 전화(1200)를 도시하는 도면이다.
이 휴대 전화(1200)는 기지국(1110)과의 사이에서 전파를 송수신하기 위한 안테나(1201)와, CCD 카메라 등의 영상, 정지 화상을 촬영 가능한 카메라부(1203)와, 카메라부(1203)에서 촬영한 영상, 안테나(1201)에서 수신한 영상 등의 데이터를 표시하는 액정 모니터 등의 표시부(1202)를 갖고 있다.
또한, 휴대 전화(1200)는 복수의 조작 키가 마련되어 있는 본체부(1204)와, 음성 출력을 하기 위한 스피커 등의 음성 출력부(1208)와, 음성 입력을 하기 위한 마이크 등의 음성 입력부(1205)와, 촬영한 동화상 또는 정지 화상의 데이터, 수신한 메일의 데이터, 동화상의 데이터 또는 정지 화상의 데이터 등, 부호화된 데이터 또는 복호화된 데이터를 보존하기 위한 기록 미디어(1207)와, 휴대 전화(1200)에 기록 미디어(1207)를 장착 가능하게 하기 위한 슬롯부(1206)를 갖고 있다.
여기서, 기록 미디어(1207)는 SD 카드 등의 플라스틱 케이스 내에 전기적으로 리라이팅이나 소거가 가능한 비휘발성 메모리인 EEPROM(Electrically Erasable and Programmable Read Only Memory)의 일종인 플래쉬 메모리 소자를 저장한 것이 다.
또한, 휴대 전화(1200)에 대해 도 41을 이용하여 상세히 설명한다.
휴대 전화(1200)는 표시부(1202) 및 조작 키(1204)를 구비한 본체부의 각부를 통괄적으로 제어하는 주 제어부(1241)를 갖고 있다.
또한, 휴대 전화(1200)는 전원 회로부(1240), 조작 입력 제어부(1234), 화상 부호화부(1242), 카메라 인터페이스부(1233), LCD(Liquid Crystal Display) 제어부(1232), 화상 복호화부(1239), 다중 분리부(1238), 기록 재생부(1237), 변복조 회로부(1236) 및 음성 처리부(1235)를 갖고 있다. 휴대 전화(1200)의 각부는 동기 버스(1250)를 거쳐서 서로 접속되어 있다.
전원 회로부(1240)는, 사용자의 조작에 의해 종료/전원 키가 온 상태로 되면, 배터리 팩의 전력을 각부에 대하여 공급하는 것에 의해 카메라부 디지털 휴대 전화(1200)를 동작 가능한 상태로 기동한다.
휴대 전화(1200)에서는 CPU, ROM 및 RAM 등으로 이루어지는 주 제어부(1241)의 제어에 의해 각부의 동작이 행하여진다. 즉, 휴대 전화(1200)에서는, 음성 통화 모드 시에 음성 입력부(1205)로의 음성 입력에 의해 얻어진 음성 신호가 음성 처리부(1235)에 의해서 디지털 음성 데이터로 변환된다. 디지털 음성 데이터는 변복조 회로부(1236)에 의해 스펙트럼 확산 처리가 실시되고, 또한, 송수신 회로부(1231)에 의해 디지털-아날로그 변환 처리 및 주파수 변환 처리가 실시되어, 안테나(1201)를 거쳐서 송신된다.
또한 휴대 전화기(1200)에서는, 음성 통화 모드 시에 안테나(1201)에서 수신 된 수신 신호는 증폭되어 주파수 변환 처리 및 아날로그-디지털 변환 처리가 실시된다. 수신 신호는 또한, 변복조 회로부(1236)에 의해 스펙트럼 역확산 처리가 실시되고, 음성 처리부(1235)에 의해서 아날로그 음성 신호로 변환되며, 이 신호가 음성 출력부(1208)를 거쳐서 출력된다.
또한, 휴대 전화(1200)에서는, 데이터 통신 모드 시에 전자 메일을 송신하는 경우, 본체부의 조작 키(1204)의 조작에 의해서 입력된 전자 메일의 텍스트 데이터이 조작 입력 제어부(1234)를 거쳐서 주 제어부(1241)에 송출된다. 주 제어부(1241)는, 텍스트 데이터를 변복조 회로부(1236)에 의해 스펙트럼 확산 처리가 실시되고, 송수신 회로부(1231)에 의해 디지털-아날로그 변환 처리 및 주파수 변환 처리가 실시된 후에 안테나(1201)를 거쳐서 기지국(1110)으로 송신되도록 각부를 제어한다.
휴대 전화(1200)에서는, 데이터 통신 모드 시에 화상 데이터를 송신하는 경우, 카메라부(1203)에서 촬상된 화상 데이터가 카메라 인터페이스부(1233)를 거쳐서 화상 부호화부(1242)에 공급된다. 또한, 휴대 전화(1200)에서는, 화상 데이터를 송신하지 않는 경우에는, 카메라부(1203)에서의 촬상에 의해 얻어진 화상 데이터를 카메라 인터페이스부(1233) 및 LCD 제어부(1232)를 거쳐서 표시부(1202)에 직접 표시하는 것도 가능하다.
화상 부호화부(1242)는 상기 각 실시예에서 설명한 동화상 부호화 장치를 구비한 것이다. 이 화상 부호화부(1242)는 카메라부(1203)로부터 공급된 화상 데이터를 상기 실시예의 동화상 부호화 방법에 의해서 압축 부호화하는 것에 의해 부 호화 화상 데이터로 변환하여 다중 분리부(1238)로 송출한다. 또한, 이 때 동시에 휴대 전화기(1200)는 카메라부(1203)에서 촬상 중에 음성 입력부(1205)에 입력된 음성을 음성 처리부(1235)를 거쳐서 디지털의 음성 데이터로서 다중 분리부(1238)에 송출한다.
다중 분리부(1238)는 화상 부호화부(1242)로부터 공급된 부호화 화상 데이터와 음성 처리부(1235)로부터 공급된 음성 데이터를 소정의 방식으로 다중화한다. 그 결과, 얻어지는 다중화 데이터는 변복조 회로부(1236)에 의해 스펙트럼 확산 처리가 실시되고, 또한 송수신 회로부(1231)에 의해 디지털-아날로그 변환 처리 및 주파수 변환 처리가 실시되어 안테나(1201)를 거쳐서 송신된다.
또한, 휴대 전화(1200)에서는, 데이터 통신 모드 시에 홈페이지 등에 링크된 동화상 화일의 데이터를 수신하는 경우, 안테나(1201)를 거쳐서 기지국(1110)으로부터 수신한 수신 신호는, 변복조 회로부(1236)에 의해 스펙트럼 역확산 처리가 실시되고, 그 결과 얻어진 다중화 데이터가 다중 분리부(1238)에 송출된다.
또한, 안테나(1201)를 거쳐서 수신된 다중화 데이터를 복호화할 때, 다중 분리부(1238)는 다중화 데이터를 분리하는 것에 의해 화상 데이터의 부호화 비트 스트림과 음성 데이터의 부호화 비트 스트림으로 나누고, 동기 버스(1250)를 거쳐 해당 부호화 화상 데이터를 화상 복호화부(1239)에 공급함과 동시에 해당 음성 데이터를 음성 처리부(1235)에 공급한다.
다음에, 화상 복호화부(1239)는 본 발명의 실시예에 따른 동화상 복호화 장치를 구비한 것이다. 화상 복호화부(1239)는 화상 데이터의 부호화 비트 스트림을 상술한 본 발명의 실시예의 부호화 방법에 대응한 복호화 방법으로 복호하는 것에 의해 재생 동화상 데이터를 생성하고, 이것을 LCD 제어부(1232)를 거쳐서 표시부(1202)에 공급한다. 이것에 의해, 예컨대 홈페이지에 링크된 동화상 화일에 포함되는 동화상 데이터의 표시가 행하여진다. 이 때 동시에 음성 처리부(1235)는 음성 데이터를 아날로그 음성 신호로 변환한 후, 이것을 음성 출력부(1208)에 공급한다. 이것에 의해, 예컨대 홈페이지에 링크된 동화상 화일에 포함되는 음성 데이터의 재생이 행하여진다.
또, 상술한 본 발명의 각 실시예의 동화상 부호화 방법 및 동화상 복호화 방법을 적용 가능한 시스템은 상기 콘텐츠 공급 시스템의 예에 한정되는 것은 아니다.
예컨대, 최근에는 위성, 지상파에 의한 디지털 방송이 화제로 되고 있으며, 상기 실시예의 화상 부호화 장치 또는 화상 복호화 장치는 도 42에 도시하는 바와 같이, 디지털 방송용 시스템에도 적용 가능하다.
구체적으로는, 방송국(1409)으로부터는 영상 정보의 부호화 비트 스트림이 무선 통신에 의해 통신 위성 또는 방송 위성 등의 위성(1410)에 전송된다. 방송 위성(1410)에서는, 상기 영상 정보의 부호화 비트 스트림을 수신하면, 방송용 전파가 출력되고, 이 전파가 위성 방송 수신 설비를 갖는 가정의 안테나(1406)에서 수신된다. 예컨대, 텔레비전(수신기)(1401) 또는 셋톱 박스(STB)(1407) 등의 장치에서는 부호화 비트 스트림이 복호화되어, 영상 정보가 재생된다.
또한, 기록 매체인 CD나 DVD 등의 축적 미디어(1402)에 기록한 부호화 비트 스트림을 판독하여 복호화하는 재생 장치(1403)에도, 상기 실시예에서 나타낸 화상 복호화 장치를 실장하는 것이 가능하다.
이 경우, 재생된 영상 신호는 모니터(1404)에 표시된다. 또한, 케이블 텔레비전용 케이블(1405) 또는 위성/지상파 방송의 안테나(1406)에 접속된 셋톱 박스(1407) 내에 동화상 복호화 장치를 실장하여, 해당 동화상 복호화 장치의 출력을 텔레비전의 모니터(1408)에서 재생하는 구성도 고려된다. 이 경우, 동화상 복호화 장치는, 셋톱 박스가 아니라, 텔레비전 내에 내장하더라도 된다. 또한, 안테나(1411)를 갖는 차량(1412)에서는, 위성(1410) 또는 기지국(1107) 등으로부터 신호를 수신하여, 차량(1412)에 탑재되어 있는 카 네비게이션(1413) 등의 표시 장치에 동화상을 재생하는 것도 가능하다.
또한, 화상 신호를 상기 실시예에서 나타낸 동화상 부호화 장치에 의해 부호화하여, 기록 매체에 기록할 수도 있다.
구체예인 기록 장치로는, DVD 디스크(1421)에 화상 신호를 기록하는 DVD 레코더나, 하드디스크에 화상 신호를 기록하는 디스크 레코더 등의 레코더(1420)가 있다. 또한 화상 신호는 SD 카드(1422)에 기록할 수도 있다. 또한, 레코더(1420)가 상기 실시예에서 나타낸 동화상 복호화 장치를 구비하고 있으면, 레코더(1420)에 의해 DVD 디스크(1421)나 SD 카드(1422)에 기록한 화상 신호를 재생하여 모니터(1408)에서 표시할 수 있다.
또, 카 네비게이션(1413)의 구성으로서는, 예컨대 도 41에 나타내는 휴대 전화의 구성 중 카메라부(1203), 카메라 인터페이스부(1233), 화상 부호화부(1242) 이외의 부분을 갖는 것이 생각되고, 마찬가지인 것이 컴퓨터(1111)나 텔레비전(수신기)(1401) 등에 대해서라고 생각된다.
또한, 상기 휴대 전화(1114) 등의 단말에는, 부호화기·복호화기를 모두 갖는 송수신형 단말 외에, 부호화기만을 갖는 송신 단말, 복호화기만 갖는 수신 단말의 3가지의 실장 형식이 생각된다.
이와 같이, 상기 실시예에서 나타낸 동화상 부호화 방법 혹은 동화상 복호화 방법을 상술한 어느 기기·시스템에도 이용하는 것이 가능하고, 그렇게 함으로써, 상기 실시예에서 설명한 효과를 얻을 수 있다.
또한, 본 발명의 실시예 및 그 응용예는 본 명세서에서 나타낸 것에 한정되는 것이 아닌 것은 말할 필요도 없다.