KR20050087729A - 동화상 부호화 장치 및 동화상 처리장치 - Google Patents
동화상 부호화 장치 및 동화상 처리장치 Download PDFInfo
- Publication number
- KR20050087729A KR20050087729A KR1020050004281A KR20050004281A KR20050087729A KR 20050087729 A KR20050087729 A KR 20050087729A KR 1020050004281 A KR1020050004281 A KR 1020050004281A KR 20050004281 A KR20050004281 A KR 20050004281A KR 20050087729 A KR20050087729 A KR 20050087729A
- Authority
- KR
- South Korea
- Prior art keywords
- image
- macroblock
- motion detection
- data
- frame
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
- H04N19/43—Hardware specially adapted for motion estimation or compensation
- H04N19/433—Hardware specially adapted for motion estimation or compensation characterised by techniques for memory access
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
- H04N19/43—Hardware specially adapted for motion estimation or compensation
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
동화상의 부호화 처리에 있어서, 데이터 전송량을 삭감시키면서, 적절한 부호화 처리를 행하는 것으로서, 동화상 처리 장치(1)에 있어서는, 동화상의 부호화 혹은 복호화 처리 전반을 관리하는 프로세서(10)에 대해, 연산량이 많은 처리인 움직임 검출 처리를 행하는 보조 프로세서(coprocessor)인 움직임 검출/움직임 보상 처리부(80)를 부가하고, 인터리브(interleave)에 의해서 복수의 메모리 뱅크에 어드레싱된 구성의 버퍼를 구비하는 것으로 한다. 또한, 움직임 검출 처리 시에 화상 데이터를 읽어들이는 순서가 소정의 방식으로 되어 있는 동시에, 읽어들여진 화상 데이터를 솎아내는 경우에도, 적절히 대응가능한 수단을 구비하고 있다. 이러한 구성에 의해, 본 발명에 관한 동화상 처리 장치에 있어서는, 동화상의 부호화 처리에서, 데이터 전송량을 삭감시키면서, 적절한 부호화 처리를 행하는 것이 가능해진다.
Description
본 발명은, 동화상을 부호화 처리하는 동화상 부호화 장치 및 동화상을 부호화 혹은 복호화 처리하는 동화상 처리 장치에 관한 것이다.
최근, 네트워크를 통한 동화상의 전송이나 지상 디지털 방송 혹은 동화상을 디지털 데이터로서 축적하는 경우 등에 있어서, 동화상의 부호화/복호화 기술이 이용되고 있다.
이러한 동화상의 부호화 처리를 행하는 경우, 부하가 높은 처리를 많이 행할 필요가 있어, 특히, 움직임 검출에서의 블록 매칭 및 그에 수반되는 프레임 메모리로부터의 데이터 전송을 어떻게 행할지가 문제가 된다.
이에 대해, 종래, 다양한 기술이 제안되어 있고, 예를 들면, 일본국 특개평 6-113290호 공보(특허문헌 1)에는, 움직임 검출 처리에서, 연산량을 삭감시키기 위해서, 부호화 대상의 화상과 참조되는 화상의 차분 절대치합을 취득하는 연산을 모든 화소에 대해서 행하는 것이 아니라, 2분의 1 등으로 축소한 화상에 대해서 행하는 기술이 개시되어 있다.
본 호 공보에 기재된 기술에 의하면, 차분 절대치합을 취득하는 연산량이 화상의 축소율에 따라서 감소하기 때문에, 연산 처리량 및 연산 처리 시간을 삭감시키는 것이 가능해진다.
또한, 상술과 같은 동화상의 부호화/복호화 처리를 행할 경우, 소프트웨어에 의해서 처리를 행하는 것이 가능한데, 처리의 고속화 등을 도모하기 위해서, 처리의 일부는 하드웨어에 의해서 처리되고 있다. 동화상의 부호화/복호화 처리에 있어서는, 부하가 높은 연산이 많으므로, 처리의 일부를 하드웨어화함으로써 부호화/복호화 처리를 원활하게 하는 것이 가능하다.
동화상의 부호화 처리의 일부를 하드웨어에 의해서 행하는 기술로서, 일본국 특개 2001-236496호 공보(특허문헌 2)에 기재된 기술이 알려져 있다.
본 호 공보에 기재된 기술에서는, 프로세서 코어에 대해, 연산(특히 움직임 검출 처리)을 효율적으로 행하는 화상 처리 주변 장치를 부가한 구성으로 하고 있다. 이 화상 처리 주변 회로에 의해, 연산량이 많은 화상 처리를 효율적으로 실행하는 것이 가능해져, 처리 능력을 향상시킬 수 있다.
<특허문헌 1> 일본국 특개평 6-113290호 공보
<특허문헌 2> 일본국 특개 2001-236496호 공보
그러나, 일본국 특개평 6-113290호 공보에 기재된 기술에 있어서는, 차분 절대치합을 취득하는 화상을 축소하므로, 동화상이 복호화된 경우에 화질이 저하할 가능성이 있었다.
또한, 종래 알려져 있는 다른 기술에 있어서도, 동화상의 부호화 처리에서, 데이터 전송량을 삭감시키면서, 적절한 부호화 처리(즉, 화질의 저하를 막으면서 효율적으로 처리하는 것)를 행하는 것은 곤란했다.
또한, 상술과 같이 하드웨어에 의해서 처리의 일부를 행하는 경우, 소프트웨어와 하드웨어의 연계가 필요한 바, 하드웨어화가 용이한 처리만이 하드웨어에 의해서 행해진다.
한편, 2차원 액세스 메모리를 사용하는 경우 등을 비롯해, 소프트웨어에 있어서의 데이터의 인터페이스와 하드웨어에 있어서의 데이터의 인터페이스의 정합을 취하면서, 처리의 일부를 하드웨어화하는 것은 곤란했다.
또, 일본국 특개 2001-236496호 공보에 기재된 기술은, 움직임 검출 처리에 알맞은 구성으로 되어 있지만, 예측 화상이나 차분 화상의 생성, 그들 화상을 프로세서의 로컬 메모리에 전송하는 기능 등에 관해서 언급되어 있지 않고, 이 점에서, 동화상의 부호화/복호화 처리 성능을 충분히 개선할 수 있는 것이 아니었다.
이와 같이, 소프트웨어와 하드웨어의 고도의 연계를 도모하는 것이 행해지지 않았으므로, 저비용 및 저소비전력으로 효율적으로 동화상의 부호화/복호화 처리를 하는 것이 곤란했다.
본 발명의 제1 과제는, 동화상의 부호화 처리에 있어서, 데이터 전송량을 삭감시키면서, 적절한 부호화 처리를 행하는 것이다. 또한, 본 발명의 제2 과제는, 소프트웨어와 하드웨어의 고도의 연계를 도모하면서, 저비용 및 저소비전력으로 효율적으로 동화상의 부호화 혹은 복호화 처리를 행하는 것이다.
상기 제1 과제를 해결하기 위해서, 본 발명은,
동화상 데이터에 대해 움직임 검출 처리를 포함하는 부호화 처리를 행하는 동화상 부호화 장치에 있어서, 동화상을 구성하는 프레임의 부호화 대상이 되는 매크로 블록 1개를 기억하는 부호화 화상용 버퍼(예를 들면 도 3의 부호화 대상 오리지널 화상 버퍼(208))와, 상기 동화상 데이터의 참조 프레임에서 움직임 검출의 탐색 영역이 되는 소정 범위의 동화상 데이터를 기억하는 검색 화상용 버퍼(예를 들면 도 3의 검색 대상 오리지널 화상 버퍼(207))와, 부호화된 상기 참조 프레임을 복호화하여 얻어지는 재구성 화상 프레임(예를 들면 도 3의 프레임 메모리(110)에 기억되는 재구성 화상)의, 탐색 영역이 되는 소정 범위의 동화상 데이터를 기억하는 재구성 화상용 버퍼(예를 들면 도 3의 재구성 화상 버퍼(203))를 가지고, 상기 움직임 검출 처리를 행하는 움직임 검출 처리 수단(예를 들면 도 1의 움직임 검출/움직임 보상 처리부(80))을 구비하고, 상기 움직임 검출 처리 수단은, 상기 동화상을 구성하는 프레임, 상기 참조 프레임 및 상기 재구성 화상 프레임을 구성하는 데이터 중, 처리 대상으로 하는 소정 데이터를 상기 버퍼 각각에 순차로 읽어들여 움직임 검출 처리를 행하는 것을 특징으로 한다.
이에 따라, 움직임 검출 처리 전용의 버퍼로서, 부호화 화상용 버퍼, 검색 화상용 버퍼 및 재구성 화상용 버퍼를 구비할 수 있어, 필요한 데이터를 적절히 읽어들여 사용할 수 있으므로, 동화상의 부호화 처리에 있어서, 데이터 전송량을 삭감시키면서, 적절한 부호화 처리를 행하는 것이 가능해진다.
또한, 상기 부호화 화상용 버퍼, 검색 화상용 버퍼 및 재구성 화상용 버퍼중 적어도 어느 하나는, 그 기억 영역이, 복수의 메모리 뱅크(예를 들면, 도 5의 SRAM(301∼303))에 인터리브되어 있는 것을 특징으로 한다.
이에 따라, 움직임 검출 처리에서, 소정수의 화소를 병렬적으로 연산(차분 절대치합의 산출 등)하는 것이 가능해져, 처리의 고속화를 도모하는 것이 가능해진다.
또한, 상기 기억 영역(즉, 상기 부호화 화상용 버퍼, 검색 화상용 버퍼 및 재구성 화상용 버퍼의 기억 영역)은, 소정폭을 갖는 복수의 영역으로 분할되고, 당해 소정폭은 상기 움직임 검출 처리 수단이 데이터를 읽어 낼 때의 독출 데이터폭(예를 들면, 도 3의 차분 절대치합 처리부(211)가, 도 7에 도시하는 바와같이 솎아낸 화상을 이용하여 반화소 정밀도로 차분 절대치합을 산출하는 경우의 5화소의 데이터폭)과, 상기 메모리 뱅크에서 취급의 단위가 되는 액세스 데이터폭(예를 들면, 도 5의 SRAM(301∼303)이 취급하는 데이터폭)에 의거하여 설정되고, 당해 복수의 영역 각각이, 상기 복수의 메모리 뱅크에 인터리브되어 있는 것을 특징으로 한다.
즉, 동시에 액세스할 수 있는 복수의 메모리 뱅크의 액세스 데이터 폭의 합계가, 움직임 검출 수단의 독출 데이터폭 이상이 되도록 구성하는 것이 가능하다.
이에 따라, 각 버퍼로부터 움직임 검출 처리 수단이 데이터를 읽어 낼 때, 각 메모리 뱅크에 대한 병렬적인 한번의 액세스로, 처리 대상이 되는 화소를 모두 읽어 낼 수 있으므로, 처리를 고속화하는 것이 가능해진다.
또한, 상기 움직임 검출 처리 수단은, 상기 독출 데이터폭 이하의 데이터폭으로, 움직임 검출 처리에서의 차분 절대치합의 산출 처리를 병렬적으로 행하는 것을 특징으로 한다.
또한, 상기 기억 영역은, 4바이트폭을 갖는 2개의 영역으로 분할되고, 당해 2개의 영역 각각이, 2개의 상기 메모리 뱅크(예를 들면, 도 7의 SRAM(301, 302))에 인터리브되고, 상기 움직임 검출 수단은, 움직임 검출 처리에서의 차분 절대치합의 처리를 4화소씩 병렬적으로 행하는 것을 특징으로 한다.
이에 따라, 차분 절대치합의 산출 처리에서의 병렬 처리 데이터폭과, 독출 데이터폭의 관계를 적절하게 할 수 있어, 인터리브된 구성에 알맞는 처리를 행하는 것이 가능해진다.
또한, 상기 동화상 데이터의 참조 프레임에서 움직임 검출의 탐색 영역이 되는 소정 범위의 동화상 데이터를 솎아냄으로써 생성되는 솎아냄 화상을, 상기 검색 화상용 버퍼에 기억하는 것을 특징으로 한다.
이에 따라, 검색 대상 화상용 버퍼의 기억 용량을 저감시킬 수 있는 동시에, 고속으로 움직임 검출 처리를 행하는 것이 가능해진다.
또한, 상기 동화상 데이터의 참조 프레임에서 움직임 검출의 탐색 영역이 되는 소정 범위의 동화상 데이터를 2분의 1 사이즈로 솎아냄으로써 생성되는 제1 솎아냄 화상(예를 들면, 도 8에서의 솎아냄 후의 한쪽 매크로 블록)과, 당해 제1 솎아냄 화상을 생성할 때에 솎아진 동화상 데이터로 이루어지는 제2 솎아냄 화상(예를 들면, 도 8에 있어서의 솎아냄 후의 다른쪽 매크로 블록)을, 상기 검색 화상용 버퍼에 기억하는 것을 특징으로 한다.
이에 따라, 제1 및 제2 솎아냄 화상을 이용하여, 고속으로 움직임 검출 처리를 행하거나, 정확한 움직임 검출 처리를 행하는 것이 가능해진다.
또한, 상기 검색 화상용 버퍼 및 상기 재구성 화상용 버퍼의 기억 영역 각각이, 동일한 복수의 메모리 뱅크에 인터리브되어 있는 것을 특징으로 한다.
이에 따라, 움직임 검출 처리 수단에 구비하는 메모리 뱅크의 수를 저감시키는 것이 가능해져, 제조 비용의 저감이나, 집적 회로화할 때의 집적도를 향상시키는 것 등이 가능해진다.
또한, 상기 검색 화상용 버퍼는, 탐색의 중심에 위치하는 매크로 블록을 둘러싸는 소정수의 매크로 블록(예를 들면, 도 5의 검색 대상 오리지널 화상 버퍼(207)에 기억된 9개의 매크로 블록)을 기억 가능하고, 상기 움직임 검출 처리 수단은, 당해 검색 화상용 버퍼에 기억된 매크로 블록을 대상으로 하여 움직임 벡터의 검출을 행하는 동시에, 상기 탐색의 중심을 인접하는 매크로 블록으로 이행할 때에, 상기 탐색의 중심에 위치하는 매크로 블록을 둘러싸는 소정수의 매크로 블록 중, 상기 탐색의 중심이 이행함으로써 새롭게 탐색 영역에 속하는 매크로 블록을 읽어들이는 동시에, 다른 매크로 블록을 유지하는 것(예를 들면, 도 12와 같은 순서로 하는 것)을 특징으로 한다.
또한, 상기 검색 대상 화상용 버퍼는, 탐색의 중심에 위치하는 매크로 블록을 둘러싸는 3행 3열의 매크로 블록을 기억하고, 상기 움직임 검출 처리 수단은, 당해 3행 3열의 매크로 블록을 대상으로 하여 움직임 벡터의 검출을 행하는 동시에, 상기 탐색의 중심을 인접하는 매크로 블록으로 이행할 때에, 상기 3행 3열의 매크로 블록중, 탐색의 중심이 이행함으로써 새롭게 탐색 영역에 속하는 3행 혹은 3열분의 매크로 블록을 읽어들이는 동시에, 다른 매크로 블록을 유지하는 것을 특징으로 한다.
이에 따라, 검색 화상용 버퍼에 효율적으로 데이터를 전송하는 것이 가능해진다.
또한, 상기 움직임 검출 처리 수단은, 상기 탐색의 중심에 위치하는 매크로 블록을 둘러싸는 소정수의 매크로 블록의 범위가, 상기 동화상 데이터의 참조 프레임의 경계 외를 포함하는 경우에, 참조 프레임의 경계 외로 되는 범위에 대해서는, 당해 참조 프레임의 경계에 위치하는 매크로 블록을 확장하여 보간하는 것을 특징으로 한다.
이에 따라, 참조 프레임의 경계 외가 움직임 검출의 탐색 범위로 된 경우에도, 적절하게 움직임 검출을 행하는 것이 가능해진다.
또한, 상기 움직임 검출 처리 수단은, 상기 움직임 검출 처리에서, 상기 동화상 데이터의 참조 프레임에서 움직임 검출의 탐색 영역이 되는 소정 범위의 동화상 데이터를 솎아냄으로써 생성되는 솎아냄 화상을 대상으로 하여, 대략 그 움직임을 표시하는 광역 움직임 벡터를 검출한 후, 상기 광역 벡터에 의거해, 상기 솎아냄 화상에 대응하는 솎아냄이 행해지지 않은 화상을 대상으로 하여, 보다 정확한 움직임 벡터를 검출하는 것을 특징으로 한다.
이에 따라, 솎아냄으로써 축소된 화상(솎아냄 화상)과, 정확한 정보를 갖는 솎아지지 않은 화상(재구성 화상 등)을 이용하여, 유연하고 또한 적절한 부호화 처리를 행하는 것이 가능해진다.
이와 같이, 본 발명에 의하면, 동화상의 부호화 처리에서, 데이터 전송량을 삭감시키면서, 적절한 부호화 처리를 행하는 것이 가능해진다.
또한, 상기 제2 과제를 해결하기 위해서, 본 발명은,
동화상 데이터의 부호화 처리를 행하는 프로세서와, 당해 프로세서에 있어서의 처리를 보조하기 위한 보조 프로세서를 포함하는 동화상 처리 장치에 있어서, 상기 보조 프로세서(예를 들면, 도 1의 움직임 검출/움직임 보상 처리부(80))는, 부호화 처리 대상인 상기 동화상 데이터에 대해, 움직임 검출 처리와 예측 화상 및 차분 화상의 생성 처리를 매크로 블록 단위로 하고, 각 매크로 블록의 처리가 종료할 때마다, 당해 매크로 블록의 차분 화상을 출력하고, 상기 프로세서(예를 들면, 도 1의 프로세서 코어(10)는, 상기 보조 프로세서로부터 각 매크로 블록의 차분 화상이 출력될 때 마다, 당해 매크로 블록의 차분 화상에 대해 연속하는 부호화 처리(예를 들면, DCT 변환으로부터 가변 길이 부호화 및 역 DCT 변환, 움직임 보상 처리 등)를 행하는 것을 특징으로 한다.
이에 따라, 매크로 블록을 단위로 하여 프로세서와 보조 프로세서가 각각 할당된 처리를 행하므로, 양자를 보다 효율적으로 병렬 동작시킬 수 있어, 소프트웨어와 하드웨어의 고도의 연계를 도모하면서, 저비용 및 저소비전력으로 효율적으로 동화상의 부호화 처리를 행하는 것이 가능해진다.
또한, 상기 동화상 데이터를 복수 프레임분 기억 가능한 프레임 메모리(예를 들면, 도 1의 프레임 메모리(110))와, 당해 프레임 메모리보다 고속으로 액세스가 가능한 로컬 메모리(예를 들면, 도 1의 로컬 메모리(40))를 포함하고, 상기 보조 프로세서는, 상기 프레임 메모리에 기억된 프레임의 데이터를 읽어들여 상기 움직임 검출 처리와 예측 화상 및 차분 화상의 생성 처리를 행하고, 각 매크로 블록에 대해 당해 차분 화상을 생성할 때 마다, 생성한 차분 화상을 상기 로컬 메모리에 출력하고, 상기 프로세서는, 상기 로컬 메모리에 기억된 차분 화상에 대하여, 연속되는 부호화 처리를 행하는 것을 특징으로 한다.
이에 따라, 프레임 메모리 혹은 로컬 메모리를 통해, 프로세서와 보조 프로세서가 데이터(차분 화상의 매크로 블록)의 송수신을 행할 수 있으므로, 서로 데이터를 송수신하는 타이밍을 맞출 필요가 없어져, 보다 효율적으로 부호화 처리를 행하는 것이 가능해진다.
또한, 상기 보조 프로세서는, 각 매크로 블록에 대해서 상기 예측 화상을 생성할 때마다, 생성된 예측 화상을 상기 로컬 메모리에 출력하고, 상기 프로세서는, 상기 로컬 메모리에 기억된 예측 화상과, 상기 차분 화상을 부호화 처리한 다음에 복호화 처리하여 얻어지는 복호후의 차분 화상에 의거해 움직임 보상 처리를 행하고, 당해 움직임 보상 처리 결과인 재구성 화상을 상기 로컬 메모리에 기억시키는 것을 특징으로 한다.
이에 따라, 프레임 메모리 혹은 로컬 메모리를 통해, 프로세서와 보조 프로세서가 데이터(예측 화상의 매크로 블록)의 송수신을 행할 수 있으므로, 서로 데이터를 송수신하는 타이밍을 맞출 필요가 없어져, 보다 효율적으로 부호화 처리를 행하는 것이 가능해진다.
또한, 상기 보조 프로세서는, 상기 로컬 메모리에 기억된 상기 재구성 화상을 상기 프레임 메모리에 DMA 전송하는 재구성 화상 전송 수단(예를 들면, 도 3의 재구성 화상 전송부(214))을 더 포함하는 것을 특징으로 한다.
이에 따라, 로컬 메모리로부터 프레임 메모리에 재구성 화상을 고속으로 전송할 수 있는 동시에, 그에 따라 발생하는 프로세서의 부하를 경감시킬 수 있다.
또한, 상기 보조 프로세서는, 상기 프레임 메모리에서의 참조처의 선두 어드레스, 프레임의 사이즈가 지정됨으로써, 각 매크로 블록이 순차 처리되는 것에 대응하고, 상기 프레임 메모리에서의 참조처의 어드레스를 자동적으로 생성하는 것을 특징으로 한다.
이에 따라, 매크로 블록 단위로 프로세서 코어가 처리를 행하는 경우에도, 각 매크로 블록을 프레임 메모리에 기억시키거나, 프레임 메모리로부터 읽어낼 때의 어드레스의 산출을 한번의 명령에 의해서 행할 수 있어, 어드레스의 산출을 용이하게 하는 것이 가능해진다.
또한, 상기 로컬 메모리는, 2차원 액세스 메모리에 의해서 구성되는 것을 특징으로 한다.
이에 따라, 로컬 메모리에 매크로 블록을 기억시킬 때에, 유연한 어드레스의 할당을 행하는 것이 가능해진다.
또한, 상기 보조 프로세서는, 상기 예측 화상 혹은 차분 화상의 매크로 블록을 상기 로컬 메모리에 기억시킬 때에, 당해 로컬 메모리의 사이즈에 따라, 매크로 블록에 포함되는 블록을 세로 일렬 혹은 가로 일렬로 배열해 기억시키는 것을 특징으로 한다.
이에 따라, 로컬 메모리의 사이즈가 작은 경우에도, 기억 영역이 단편화되는 것을 막을 수 있어, 매크로 블록을 효율적으로 기억하는 것이 가능해진다.
또한, 상기 보조 프로세서는, 부호화 처리에서 움직임 보상 처리된 결과인 재구성 화상에 포함되는 데이터를 기억하는 재구성 화상 버퍼(예를 들면, 도 3의 재구성 화상 버퍼(203))를 포함하고, 상기 매크로 블록에 관해서 상기 움직임 검출 처리를 행할 때에, 상기 재구성 화상에 포함되는 소정 데이터(예를 들면, 재구성 화상의 참조 영역에 대해서, 화상의 휘도 성분인 Y성분 등)를 당해 재구성 화상 버퍼에 읽어들이고, 그 재구성 화상 버퍼에 읽어들여진 소정 데이터를 이용하여, 당해 매크로 블록에 대해서 상기 예측 화상을 생성하는 것을 특징으로 한다.
이에 따라, 프레임 메모리로부터 데이터를 읽어들이는 회수를 경감시킬 수 있어, 고속이고 또한 저소비 전력으로 처리를 하는 것이 가능해진다.
또한, 상기 보조 프로세서는, 부호화 대상인 동화상 데이터에 포함되는 데이터를 기억하는 부호화 대상 화상 버퍼(예를 들면, 도 3의 부호화 대상 오리지널 화상 버퍼(208))를 포함하고, 상기 매크로 블록에 대해 상기 움직임 검출 처리를 행할 때에, 상기 부호화 대상인 동화상 데이터에 포함되는 소정 데이터(예를 들면, 부호화 대상의 매크로 블록의 Y 성분 등)를 당해 부호화 대상 화상 버퍼에 읽어들이고, 그 부호화 대상 화상 버퍼에 읽어들여진 데이터를 이용하여, 당해 매크로 블록에 대한 상기 차분 화상을 생성하는 것을 특징으로 한다.
이에 따라, 프레임 메모리로부터 데이터를 읽어들이는 회수를 경감시킬 수 있어, 고속이고 또한 저소비 전력으로 처리를 하는 것이 가능해진다.
또한, 상기 보조 프로세서는, 부호화 처리 대상인 매크로 블록에 대해서, 상기 움직임 검출 처리의 결과(예를 들면, 움직임 검출에서 취득되는 차분 절대치합)와 당해 매크로 블록에 포함되는 화소 데이터에 의거해, 프레임간 부호화 처리 혹은 프레임내 부호화 처리중 어느 것에 의해 당해 매크로 블록이 효율적으로 부호화되는지 판정하고, 그 판정 결과에 따른 부호화 처리에 의거하는 상기 예측 화상 및 차분 화상의 생성을 행하는 것을 특징으로 한다.
이에 따라, 보조 프로세서에서 매크로 블록마다, 보다 효율적인 부호화 방식을 선택하는 것이 가능해진다.
상기 보조 프로세서는, 부호화 대상인 매크로 블록에 대해서, 프레임내 부호화 처리에 의한 쪽이 효율적으로 부호화되는 것으로 판정한 경우에, 당해 매크로 블록의 부호화 처리에서 이용하는 예측 화상(예를 들면, 로컬 메모리(40)에서의 예측 화상의 기억 영역)을 모두 제로(all zero)로 갱신하는 것을 특징으로 한다.
이에 따라, 특별한 구성을 부가하지 않고, 보다 적절한 부호화 방식을 선택하여 처리하는 것이 가능해진다.
또한, 상기 보조 프로세서는, 상기 움직임 검출 처리에서, 매크로 블록에 포함되는 각 블록 각각에 관한 움직임 벡터를 검출하고, 검출한 움직임 벡터의 근사 정도에 따라, 각 블록 각각에 개별 움직임 벡터를 설정할지, 혹은, 매크로 블록 전체에 1개의 움직임 벡터를 설정할지(즉, 4MV 모드의 설정 내용)를 판정하고, 그 판정 결과에 따라 상기 예측 화상 및 차분 화상의 생성을 행하는 것을 특징으로 한다.
이에 따라, 각 매크로 블록에 대해, 효율적이고 또한 적절한 움직임 벡터를 설정할 수 있다.
또한, 상기 보조 프로세서는, 상기 움직임 검출 처리에서, 검출된 움직임 벡터가 참조처의 프레임에서의 프레임 경계를 넘는 영역을 지정하고 있는 경우, 당해 프레임 경계를 넘는 영역의 화소 데이터를 보간하여, 상기 예측 화상 및 차분 화상의 생성을 행하는 것을 특징으로 한다.
이에 따라, 비제한 움직임 벡터(프레임 경계를 넘는 지정을 인정하는 움직임 벡터)를 부호화 처리에 이용하는 것이 가능해진다.
또한, 상기 보조 프로세서는, 매크로 블록에 대한 움직임 벡터가 주어진 경우에, 참조처의 프레임에서 당해 움직임 벡터에 의해서 지정되어 있는 매크로 블록을 취득하고, 상기 프로세서가 당해 취득된 매크로 블록을 이용하여 움직임 보상 처리를 행함으로써, 동화상의 복호화 처리를 실행 가능한 것을 특징으로 한다.
이에 따라, 동화상 처리 장치에 구비되어 있는 복호화 기능을 유효하게 활용할 수 있는 동시에, 그 때, 상술의 효과를 활용하여 처리를 행하는 것이 가능해진다.
또한, 상기 프로세서는, 부호화 처리 대상인 프레임과, 부호화 처리에서 움직임 보상 처리된 결과인 참조처 프레임의 재구성 화상과, 당해 재구성 화상에 대응한, 부호화 처리 대상인 동화상 데이터에 포함되는 참조처 프레임과, 부호화 처리 대상인 프레임에 대해서 생성되는 재구성 화상을 상기 프레임 메모리에 기억시키고, 매크로 블록을 단위로 하는 부호화 처리를 행하는 동시에, 부호화 처리 대상인 프레임에 대해 생성되는 재구성 화상의 매크로 블록을, 상기 부호화 처리 대상인 프레임, 상기 참조처 프레임의 재구성 화상 혹은 상기 참조처 프레임의 매크로 블록의 기억 영역 중, 보존이 불필요해진 기억 영역에 덮어쓰기하는 것을 특징으로 한다.
이에 따라, 프레임 메모리를 효율적으로 사용할 수 있고, 프레임 메모리에 요구되는 용량을 저감시키는 것이 가능해진다.
또한, 본 발명은, 동화상 데이터의 복호화 처리를 행하는 프로세서와, 상기 프로세서에 있어서의 처리를 보조하기 위한 보조 프로세서를 포함하는 동화상 처리 장치에 있어서, 상기 보조 프로세서는, 복호화 처리 대상인 동화상 데이터의 움직임 벡터가 주어진 경우에, 복호 처리에 의해서 얻어지는 참조처 프레임으로부터 당해 움직임 벡터가 지정하는 매크로 블록을 취득하여 예측 화상을 생성하는 처리를 매크로 블록 단위로 행하고, 각 매크로 블록의 처리가 종료할 때마다, 당해 매크로 블록의 예측 화상을 출력하고, 상기 프로세서는, 상기 보조 프로세서로부터 각 매크로 블록의 예측 화상이 출력될 때 마다, 당해 매크로 블록의 예측 화상에 대해 움직임 보상 처리를 행하는 것을 특징으로 한다.
이와 같이, 본 발명에 의하면, 소프트웨어와 하드웨어의 고도의 연계를 도모하여, 저비용 및 저소비전력으로 효율적으로 동화상의 부호화 혹은 복호화 처리를 행하는 것이 가능해진다.
(발명을 실시하기 위한 최선의 형태)
이하, 도면을 참조하여 본 발명에 관한 동화상 처리 장치의 실시의 형태를 설명한다.
본 발명에 관한 동화상 처리 장치에 있어서는, 동화상의 부호화 혹은 복호화 처리 전반을 관리하는 프로세서에 대해, 연산량이 많은 처리의 움직임 검출 처리를 행하는 보조 프로세서를 부가하고, 그 보조 프로세서에, 인터리브에 의해 복수의 메모리 뱅크에 어드레싱된 구성의 버퍼를 구비하는 것으로 한다. 또한, 움직임 검출 처리 시에 화상 데이터를 읽어들이는 순서가 소정의 방식으로 되어 있는 동시에, 읽어들여진 화상 데이터를 솎아내는 경우에도, 적절하게 대응가능한 수단을 구비하고 있다.
이러한 구성에 의해, 본 발명에 관한 동화상 처리 장치에서는, 동화상의 부호화 처리에서, 데이터 전송량을 삭감시키면서, 적절한 부호화 처리를 행하는 것을 가능하게 한다.
또한, 본 발명에 관한 동화상 처리 장치에 있어서는, 동화상의 부호화 혹은 복호화 처리 전반을 관리하는 프로세서에 대해, 연산량이 많은 처리인 움직임 검출 및 움직임 보상 처리를 하는 보조 프로세서를 부가한 구성으로 한다. 또한, 그와 같은 구성으로 함에 따라, 동화상의 부호화 혹은 복호화 처리를 프레임 단위가 아니라, 매크로 블록 단위로 행하는 것으로 한다. 또한, 동화상의 부호화 혹은 복호화 처리를 행할 때, 2차원 액세스 메모리(메모리에 대해, 2차원의 데이터 이미지가 상정되고, 그 데이터에 대해 가로 세로 방향의 액세스가 가능하게 되어 있는 메모리)를 이용하는 것으로 한다.
이러한 구성에 의해, 본 발명에 관한 동화상 처리 장치에 있어서는, 소프트 웨어와 하드웨어의 고도의 연계를 도모하면서, 저비용 및 저소비전력으로 효율적으로 동화상의 부호화 혹은 복호화 처리를 하는 것을 가능하게 한다.
또한, 동화상의 부호화 처리는 동화상의 복호화 처리를 포함하므로, 이하의 설명에서는, 동화상의 부호화 처리를 행하는 경우를 주로 설명한다.
우선, 구성을 설명한다.
도 1은 본 발명에 관한 동화상 처리 장치(1)의 기능 구성을 도시하는 블록도이다.
도 1에서, 동화상 처리 장치(1)는, 프로세서 코어(10)와, 명령 메모리(20)와, 명령 캐시(30)와, 로컬 메모리(40)와, 데이터 캐시(50)와, 내부 버스 조정부(60)와, DMA 제어부(70)와, 움직임 검출/움직임 보상 처리부(80)와, 보조 프로세서(90)와, 외부 메모리 인터페이스(이하, 「외부 메모리 I/F」라고 한다)(100)와, 프레임 메모리(110)를 포함하여 구성된다.
프로세서 코어(10)는, 동화상 처리 장치(1) 전체를 제어하는 것으로, 명령 메모리의 소정 어드레스에 기억된 명령 코드를, 명령 캐시(30)를 통해 취득하면서, 동화상의 부호화 처리 전반을 관리한다. 구체적으로는, 움직임 검출/움직임 보상 처리부(80)의 각 부나 DMA 제어부(70)에 지시 신호(기동 제어 신호 혹은 모드 설정 신호 등)를 출력하거나, DCT(Discrete Cosine Transform)나 양자화라는, 움직임 검출에 연속되는 부호화 처리 등을 행한다. 또한, 프로세서 코어(10)는, 동화상의 부호화 처리 전체를 관리할 때에, 부호화 함수 실행 처리 프로그램(도 11 참조)을 실행한다.
여기서, 기동 제어 신호란, 움직임 검출/움직임 보상 처리부(80)의 각 부를 소정 타이밍에 기동시키는 지시 신호이고, 모드 설정 신호란, 프레임마다, 움직임 벡터 검출처리에서의 탐색 범위(탐색의 중심이 되는 매크로 블록의 주위 8화소 혹은 16화소의 어디까지 탐색 범위로 할지), 4MV 모드(4개의 움직임 벡터에 의한 부호화를 행할지), 비제한 움직임 벡터(움직임 벡터의 참조처로서 프레임 경계를 넘은 범위를 허용할지), 라운딩(rounding, 어림수) 제어, 프레임의 압축 타입(P, B, I), 압축 모드(MPEG1, 2, 4) 등, 프로세서 코어(10)가 움직임 검출/움직임 보상 처리부(80)에 대한 다양한 지정을 행하는 지시 신호이다.
명령 메모리(20)는, 프로세서 코어(10)에 대해서 입력되는 다양한 명령 코드를 기억하고, 프로세서 코어(10)로부터의 독출에 따라, 지정된 어드레스의 명령 코드를 명령 캐시(30)에 출력한다.
명령 캐시(30)는, 명령 메모리(20)로부터 입력된 명령 코드를 일시적으로 기억하고, 소정 타이밍에서 프로세서 코어(10)에 출력한다.
로컬 메모리(40)는, 부호화 처리에서 생성되는 각종 데이터를 기억하는 2차원 액세스 메모리로, 예를 들면, 부호화 처리에서 생성되는 예측 화상이나 차분 화상을, 6블록으로 이루어지는 매크로 블록 단위로 기억한다.
2차원 액세스 메모리란, 일본국 특개 2002-222117호 공보에 기재된 방식의 메모리로, 예를 들면, 「1바이트(8비트)의 기억이 가능한 최소 단위의 가상의 기억 소자(2)가, 세로 방향과 가로 방향으로 각각 4개씩 합계 16개 배치된 가상 최소 2차원 메모리 공간(1)」(동 공보의 도 1 참조)가 상정되고, 이 가상 최소 2차원 메모리 공간(1)은, 「물리적으로는, 4개의 물리적인 메모리(4A∼4C)로 미리 분할되어 맵핑되어 있다. 즉, 1개의 가상 최소 2차원 메모리 공간(1)은, 4개의 물리적인 메모리(4A∼4C)의 동일한 어드레스로부터 시작되는 4바이트의 연속 영역에 대응한다」(동 공보의 도 3 참조). 그리고, 이러한 가상 최소 2차원 메모리 공간(1)에서, 동 공보의 도 5에 도시하는 액세스가 가능하게 되어 있다.
이와 같이, 로컬 메모리(40)를 2차원 액세스 메모리로 함으로써, 로컬 메모리(40)에서 세로 방향 및 가로 방향으로 액세스하는 것이 용이해지므로, 본 발명에서는, 로컬 메모리(40)에 이하와 같은 형태로 매크로 블록을 기억시킨다.
도 2는, 로컬 메모리(40)에서 매크로 블록이 기억되는 형태를 도시하는 도면이다.
도 2에서, 로컬 메모리(40)에는, 매크로 블록을 구성하는 6개의 블록(Y 성분이 4블록 및 Cb, Cr 성분이 1블록씩)이, 세로 방향 혹은 가로 방향으로 일렬로 나란히 기억된다. 또한, 각 블록에 대해서는, 블록을 구성하는 8화소가, 프레임에서의 8×8의 배열을 유지한 상태로 기억되어 있다.
이와 같이, 매크로 블록을 구성하는 6개의 블록을 세로 혹은 가로 방향으로 일렬로 배열해 기억함으로써, 데이터가 단편(斷片)화되는 것을 방지할 수 있으므로, 로컬 메모리(40)를 효율적으로 사용할 수 있다. 또한, 로컬 메모리(40)의 사이즈에 맞추어, 효율적으로 로컬 메모리(40)를 사용하는 것도 가능해진다. 예를 들면, 로컬 메모리(40)의 가로폭이 작은 경우에는, 세로 방향으로 일렬로 6개의 블록을 기억함으로써, 로컬 메모리(40)에 효율적으로 매크로 블록을 기억시킬 수 있다. 또한, 도 2의 설명에서는, Y, Cb, Cr의 데이터를 4:2:0으로 유지하는 것을 상정하여, 1매크로 블록이 6개의 블록으로 구성되어 있는 예를 설명하였다. Y, Cb, Cr의 데이터 구성을 4:2:2 또는 4:4:4로 해도 마찬가지로 취급할 수 있다.
도 1로 되돌아가, 데이터 캐시(50)는, 프로세서 코어(10)와 내부 버스 조정부(60)와의 사이에서 입출력되는 데이터를 일시적으로 보존하여, 소정 타이밍에서 출력한다.
내부 버스 조정부(60)는, 동화상 처리 장치(1) 내부 버스의 조정을 행하는 것으로, 각 부로부터 버스를 통해 데이터가 출력되는 경우에, 각 부간의 출력 타이밍을 조정한다.
DMA(Direct Memory Access) 제어부(70)는, 프로세서 코어(10)를 통하지 않고 각 부사이에서 데이터를 입출력할 때의 제어를 행하는 것으로, 예를 들면, 움직임 검출/움직임 보상 처리부(80)와 로컬 메모리(40)에서 데이터를 입출력하는 경우에, 프로세서 코어(10)에 대신해 통신을 제어하고, 데이터의 입출력이 종료한 경우에는, 종료를 프로세서 코어(10)에 통지한다.
움직임 검출/움직임 보상 처리부(80)는, 움직임 검출 처리 및 움직임 보상 처리를 하는 보조 프로세서로서 기능한다.
도 3은, 움직임 검출/움직임 보상 처리부(80)의 내부 구성을 도시하는 블록도이다.
도 3에서, 움직임 검출/움직임 보상 처리부(80)는, 외부 메모리 인터페이스(I/F)(201)와, 보간 처리부(202, 205)와, 재구성 화상 버퍼(203)와, 반화소 생성부(204)와, 솎아냄 처리부(206, 209)와, 검색 대상 오리지널 화상 버퍼(207)와, 부호화 대상 오리지널 화상 버퍼(208)와, 움직임 검출 제어부(210)와, 차분 절대치합 처리부(211)와, 예측 화상 생성부(212)와, 차분 화상 생성부(213)와, 재구성 화상 전송부(214)와, 주변 화소 생성부(215)와, 호스트 인터페이스(I/F)(216)와, 로컬 메모리 인터페이스(I/F)(217)와, 로컬 메모리 어드레스 생성부(218)와, 매크로 블록(MB) 관리부(219)와, 프레임 메모리 어드레스 생성부(220)를 포함하여 구성된다.
외부 메모리 I/F(201)는, 움직임 검출/움직임 보상 처리부(80)가 외부 메모리인 프레임 메모리(110)와 데이터를 송수신하기 위한 입출력 인터페이스이다.
보간 처리부(202)에는, 외부 메모리 I/F(201)를 통해, 프레임 메모리(110)로부터 재구성 화상(복호된 프레임)에서의 소정 매크로 블록의 Y, Cb, Cr 성분이 입력된다. 구체적으로는, 보간 처리부(202)에는, 움직임 검출이 행해지는 경우에, 재구성 화상의 Y성분이 입력되고, 이 경우, 보간 처리부(202)는, 입력된 Y성분을 재구성 화상 버퍼(203)에 그대로 출력한다. 한편, 움직임 검출에 연속되는 부호화 처리(예측 화상의 생성 등)가 행해지는 경우에, 보간 처리부(202)에는, 재구성 화상의 Y, Cb, Cr 성분이 입력되고, 이 경우, 보간 처리부(202)는, Cb, Cr 성분을 보간 처리하여, 재구성 화상 버퍼(203)에 출력한다.
재구성 화상 버퍼(203)는, 주변 화소 생성부(215)의 지시에 따라서, 보간 처리부(202)로부터 입력된 16×16화소의 재구성 화상(매크로 블록)에 대해, 가로 세로 8화소분(주위 4화소분)을 보간하여, 24×24화소의 데이터(이하, 「재구성 매크로 블록」이라고 한다)로 한 것을 기억한다. 또한, 재구성 화상 버퍼(203)에 관해서는 후술한다(도 5 참조).
반화소 생성부(204)는, 재구성 화상 버퍼(203)에 기억된 재구성 매크로 블록으로부터 반화소 정밀도의 데이터를 생성한다. 또한, 반화소 생성부(204)는, 움직임 벡터의 참조처가 반화소 정밀도로 표시되는 경우 등, 필요한 경우에만 처리를 하고, 그 이외의 경우에는, 재구성 매크로 블록의 데이터를 그대로 통과시킨다.
보간 처리부(205)는, 반화소 생성부(204)에 의해서 생성된 반화소 정밀도의 데이터를 이용하여, 재구성 매크로 블록을 보간하고, 반화소 정밀도의 재구성 매크로 블록을 생성한다. 또한, 보간 처리부(205)는, 반화소 생성부(204)와 마찬가지로, 필요한 경우에만 처리를 행하고, 그 이외의 경우에는, 재구성 매크로 블록의 데이터를 그대로 통과시킨다.
솎아냄 처리부(206)는, 외부 메모리 I/F(201)를 통해 입력된 검색 대상 오리지널 화상(참조 프레임)에서의 소정의 복수 매크로 블록(1회의 탐색영역)의 Y성분을 솎아내고, 48×48 화소의 소화상 블록을 생성한다.
도 4는 솎아냄 처리부(206)가, 프레임 메모리로부터 읽어들인 1개의 매크로 블록을 솎아낸 상태를 도시하는 도면이다.
도 4에서, 솎아냄 처리부(206)는, 매크로 블록에 포함되는 화소를 가로 세로 1화소 걸러 솎아낸다. 즉, 이러한 솎아냄 처리를 행함으로써, 매크로 블록의 사이즈가 2분의 1로 축소된다.
또한, 솎아냄 처리부(206)는, 가로 세로 1화소 걸러 솎아냄 처리를 행함으로써, 2개로 분리된 매크로 블록(소화상 블록)의 어느것이나, 솎아냄 후의 매크로 블록으로서 검색 대상 오리지널 화상 버퍼(207)에 출력한다.
이와 같이, 솎아냄 처리에 의해서 생성되는 2개의 소화상 블록을 유지함으로써, 움직임 검출 처리에서는, 1개의 소화상 블록을 이용해 효율적으로 처리를 행하면서, 고정밀도인 화소 위치의 검출이나 솎아져서 탈락된 부분이 필요한 처리를 행하는 경우에는, 2개의 소화상 블록을 이용해 적절한 처리를 행하는 것이 가능해진다. 또한, 솎아냄 처리부(206)에 의한 솎아냄 처리는, 다음에 설명하는 검색 대상 오리지널 화상 버퍼(207)의 사이즈를 축소할 목적이나, 움직임 검출 처리에서의 처리 부하의 경감 등을 목적으로 하는 것이므로, 이들 조건이 허용되는 경우에는 행하지 않아도 된다.
검색 대상 오리지널 화상 버퍼(207)는, 솎아냄 처리부(206)에 의해서 생성된 48×48 화소의 소화상 블록을 기억한다. 여기서, 솎아냄 처리부(206)에 의한 처리가 행해지지 않은 경우에는, 검색 대상 오리지널 화상 버퍼(207)에는, 검색 대상 오리지널 화상의 Y성분이 그대로 기억된다.
또한, 검색 대상 오리지널 화상 버퍼(207)의 구성에 관해서는 후술한다(도 5 참조).
부호화 대상 오리지널 화상 버퍼(208)에는, 외부 메모리 I/F(201)를 통해 프레임 메모리(110)로부터 입력된, 부호화 대상 오리지널 화상(부호화 대상 프레임)의 소정 매크로 블록의 Y, Cb, Cr 성분을 기억시킨다. 구체적으로는, 부호화 대상 오리지널 화상 버퍼(208)는, 움직임 검출이 행해지는 경우에, 부호화 대상 오리지널 화상의 Y성분이 입력된다. 한편, 움직임 검출에 연속되는 부호화 처리(차분 화상의 생성 등)가 행해지는 경우에는, 부호화 대상 오리지널 화상 버퍼(208)에는, 부호화 대상 오리지널 화상의 Y, Cb, Cr 성분이 입력된다.
여기서, 재구성 화상 버퍼(203), 검색 대상 오리지널 화상 버퍼(207) 및 부호화 대상 오리지널 화상 버퍼(208)의 구성에 대해서 구체적으로 설명한다.
도 5는, 재구성 화상 버퍼(203), 검색 대상 오리지널 화상 버퍼(207) 및 부호화 대상 오리지널 화상 버퍼(208)의 메모리 할당을 도시하는 도면이다.
도 5에서, 검색 대상 오리지널 화상 버퍼(207)에는, 탐색의 중심이 되는 매크로 블록의 주위를 포함해서 3×3의 합계 9매크로 블록이 기억된다. 또한, 검색 대상 오리지널 화상 버퍼(207)는, SRAM(Static Random Access Memory)(301∼303)의 3개의 메모리 뱅크에 의해서 구성되는 동시에, 32비트폭(4화소폭)의 장방 형상의 기억 영역을 각각의 메모리 뱅크에 할당하고, 또한, 각 메모리 뱅크에 의해서 구성되는 장방 형상의 기억 영역을 순서대로 배열한 구성으로 되어 있다.
또한, 재구성 화상 버퍼(203)에는, 도 6에 도시하는 바와같이, 24×24화소, 즉, 1개의 매크로 블록의 주위 4화소가 1주분(周分) 확장하여 기억된다. 또한, 재구성 화상 버퍼(203)는, 검색 대상 오리지널 화상 버퍼(207)와 마찬가지로, SRAM(301∼303)의 3개의 메모리 뱅크에 의해서 구성되는 동시에, 32비트폭(4화소폭)의 장방 형상의 기억 영역을 각각의 메모리 뱅크에 할당하고, 또한, 각 메모리 뱅크에 의해서 구성되는 장방 형상의 기억 영역을 순서대로 배열한 구성으로 되어 있다.
이러한 구성으로 함으로써, 차분 절대치합 처리부(211)가 8화소를 병렬적으로 처리 대상으로 하여 움직임 벡터의 검출을 행할 때에, 어느쪽 화소를 선두로 하여 8화소분을 읽어내는 경우라도, 각 메모리 뱅크(SRAM(301∼303))에 대한 병렬적인 한번의 액세스로, 처리 대상이 되는 8화소를 모두 읽어낼 수 있다.
따라서, 차분 절대치합 처리부(211)가 움직임 벡터의 검출을 행하는 처리를 효율적이고 또한 고속으로 하는 것이 가능해진다.
또한, 도 5에서, 부호화 대상 오리지널 화상 버퍼(208)에는, 처리 대상이 되는 1개의 매크로 블록이 기억된다. 또한, 부호화 대상 오리지널 화상 버퍼(208)는, SRAM(301∼303)중 어느 1개에 의해서 구성되어 있다.
이와 같이, 재구성 화상 버퍼(203), 검색 대상 오리지널 화상 버퍼(207) 및 부호화 대상 오리지널 화상 버퍼(208)를 공통의 메모리 뱅크에 의해서 구성함으로써, 움직임 검출/움직임 보상 처리부(80)에 필요로 되는 메모리의 개수를 삭감시킬 수 있다. 이 때문에, 동화상 처리 장치(1)의 제조 비용을 저감할 수 있다.
또, 검색 대상 오리지널 화상 버퍼(207)에는, 화상 데이터를 솎아내 기억시키는 것이 가능한데, 이 경우에는, 또한, 필요한 메모리 용량을 삭감시키는 것이 가능해진다.
도 7은 화상 데이터의 솎아냄을 행하고, 가로 방향으로 1/2로 축소한 화상 데이터를 검색 대상 오리지널 화상 버퍼(207)에 기억하는 경우의 메모리 할당을 도시하는 도면이다.
도 7에서, 검색 대상 오리지널 화상 버퍼(207)에는, 탐색의 중심이 되는 매크로 블록의 주위를 포함해서 3×3의 합계 9매크로 블록이, 가로 방향으로 2분의 1로 축소되어 기억된다. 또한, 검색 대상 오리지널 화상 버퍼(207)는, SRAM(301, 302)의 2개의 메모리 뱅크에 의해서 구성되는 바와 같이, 32비트폭(4화소폭)의 장방 형상의 기억 영역을 각각의 메모리 뱅크에 할당하고, 또한, 각 메모리 뱅크에 의해서 구성되는 장방 형상의 기억 영역을 순서대로 배열한 구성으로 되어 있다. 즉, 도 5에서는, 3개의 메모리 뱅크에 메모리 할당을 행하는 한편, 도 7의 경우에는, 2개의 메모리 뱅크에 메모리 할당을 행하면 충분하게 된다. 또한, 부호화 대상 오리지널 화상 버퍼(208)는, SRAM(303)에 의해서 구성되어 있다.
또한, 도 7의 경우에 있어서도, 도 5의 경우와 마찬가지로, 재구성 화상 버퍼(203) 및 부호화 대상 오리지널 화상 버퍼(208)를 공통의 메모리 뱅크에 의해서 구성하는 것이 가능하다.
도 8은, 화상 데이터의 솎아냄을 행한 경우에서의 재구성 화상 버퍼(203) 및 부호화 대상 오리지널 화상 버퍼(208)의 메모리 할당을 도시하는 도면이다.
또한, 도 8에서는, 솎아냄 처리부(206)에 의해서 출력되는 솎아냄 후의 2개의 매크로 블록이 모두 기억된 상태를 도시한다.
도 3으로 되돌아가, 솎아냄 처리부(209)는, 부호화 대상 오리지널 화상 버퍼(208)에 기억된 부호화 대상 오리지널 화상의 매크로 블록을, 필요한 경우에 솎아내는 처리를 행한다. 구체적으로는, 솎아냄 처리부(209)는, 움직임 검출이 행해지는 경우에는, 부호화 대상 오리지널 화상의 매크로 블록을 솎아낸 후, 차분 절대치합 처리부(211)에 출력하고, 움직임 검출에 연속되는 부호화 처리(차분 화상의 생성 등)가 행해지는 경우에는, 솎아냄을 하지 않고, 부호화 대상 오리지널 화상의 매크로 블록을 그대로 차분 화상 생성부(213)에 출력한다.
움직임 검출 제어부(210)는, 프로세서 코어(10)로부터의 지시에 따라, 각 매크로 블록의 처리에 대해, 움직임 검출/움직임 보상 처리부(80)의 각 부를 관리한다. 예를 들면, 움직임 검출 제어부(210)는, 1개의 매크로 블록을 처리할 때에, 차분 절대치합 처리부(211), 예측 화상 생성부(212) 및 차분 화상 생성부(213)에서의 처리의 개시 혹은 정지를 지시하거나, 1개의 매크로 블록에 대한 처리가 종료한 것을 MB 관리부(219)에 통지하거나, 차분 절대치합 처리부(211)에 의한 처리 결과를 호스트 인터페이스(216)에 출력한다.
또한, 움직임 검출 제어부(210)는, 차분 절대치합 처리부(211)에 의해서 검출된 움직임 벡터에 의거해, 각 매크로 블록에 대해, 블록마다 4개의 움직임 벡터를 설정하여 부호화하는 경우와 매크로 블록 전체에 1개의 움직임 벡터를 설정하여 부호화하는 경우중 어느 것이 적합한지를 판정한다.
도 9는, 매크로 블록에 대해 4개의 움직임 벡터가 설정된 상태 및 1개의 움직임 벡터가 설정된 상태를 도시하는 도면이다.
움직임 검출 제어부(210)는, 각 블록의 움직임 벡터가 근사해 있는 경우에는, 1개의 매크로 블록이 적합한 것으로 판정하고, 각 블록의 움직임 벡터가 근사하지 않는 경우에는, 블록마다 4개의 움직임 벡터가 적합한 것으로 판정한다.
차분 절대치합 처리부(211)는, 움직임 검출 제어부(210)로부터의 지시에 따라, 움직임 벡터의 검출을 한다. 구체적으로, 차분 절대치합 처리부(211)는, 검색 대상 오리지널 화상 버퍼(207)에 기억되어 있는 소화상 블록에 포함되는 화상(Y 성분)과, 솎아냄 처리부(209)로부터 입력된 부호화 대상인 매크로 블록의 차분 절대치합을 산출하고, 대략 그 움직임 벡터(이하, 「광역 움직임 벡터」라고 한다)를 취득한다. 그렇게 하면, 광역 움직임 벡터가 취득되는 것에 대응하여 재구성 화상 버퍼(203)에 기억되는 재구성 매크로 블록을 대상으로 하여, 차분 절대치합 처리부(211)는, 차분 절대치합이 보다 작은 매크로 블록을 탐색함으로써, 더욱 정확한 움직임 벡터를 검출하고, 정식 움직임 벡터로 한다.
이러한 처리를 행할 때에, 차분 절대치합 처리부(211)는, 매크로 블록을 구성하는 4블록 각각의 Y성분에 대한 차분 절대치합, 1블록씩의 Cb, Cr 성분 각각에 대한 차분 절대치합, 매크로 블록을 구성하는 4블록 각각에 대한 움직임 벡터를 산출하고, 이들 데이터를 출력 결과로 하여 움직임 검출 제어부(210)에 출력한다.
예측 화상 생성부(212)는, 움직임 검출 제어부(210)로부터의 지시에 따라, 보간 처리부(205)로부터 입력되는 재구성 매크로 블록과, 움직임 검출 제어부(210)로부터 입력되는 움직임 벡터에 의거해 예측 화상(움직임 벡터의 참조처를 이용해 구성되는 화상)을 생성하고, 로컬 메모리 인터페이스(217)를 통해 로컬 메모리(40)의 소정 영역(이하,「예측 화상 메모리 영역」이라고 한다)에 격납한다. 또한, 예측 화상 생성부(212)는, 부호화 처리 대상의 매크로 블록이 프레임간 부호화되는 경우에 상술의 처리를 행하고, 부호화 대상의 매크로 블록이 프레임내 부호화되는 경우에는, 예측 화상 메모리 영역을 "0" 클리어(리셋)한다.
차분 화상 생성부(213)는, 움직임 검출 제어부(210)로부터의 지시에 따라, 로컬 메모리(40)의 예측 화상 메모리 영역으로부터 읽어 낸 예측 화상과, 솎아냄 처리부(209)로부터 입력된 부호화 대상인 매크로 블록의 차분을 구함으로써 차분 화상을 생성하고, 로컬 메모리(40)의 소정 영역(이하, 「차분 화상 메모리 영역」이라고 한다)에 격납한다. 또한, 부호화 처리 대상인 매크로 블록이 프레임내 부호화되는 경우에는, 예측 화상은 "0" 클리어되게 되므로, 차분 화상 생성부(213)는, 부호화 대상인 매크로 블록을, 그대로 차분 화상으로 한다.
재구성 화상 전송부(214)는, 움직임 검출 제어부(210)로부터의 지시에 따라, 프로세서 코어(10)에 의한 복호화 처리 결과인 재구성 화상을 로컬 메모리(40)로부터 읽어내고, 외부 메모리 I/F(201)를 통해, 프레임 메모리(110)에 출력한다. 즉, 재구성 화상 전송부(214)는, 일종의 DMAC(Direct Memory Access Controller)로서 기능한다.
주변 화소 생성부(215)는, 재구성 화상 버퍼(203) 및 검색 대상 오리지널 화상 버퍼(207)에 대해, 각각에 입력된 화상의 주위를 소정 화소분, 경계의 화소로 보간하는 취지의 지시를 행한다.
호스트 I/F(216)는, 프로세서 코어(10)와 움직임 검출/움직임 보상 처리부(80)와의 입출력 인터페이스의 기능을 가지고, 프로세서 코어(10)로부터 입력된 기동 제어 신호나 모드 설정 신호를 움직임 검출 제어부(210) 및 MB 관리부(219)에 출력하거나, 움직임 검출 제어부(210)로부터 입력된 연산 결과(움직임 벡터 등)를 일시적으로 기억하고, 프로세서 코어(10)로부터의 독출 요구에 따라, 프로세서 코어(10)에 출력하기도 한다.
로컬 메모리 I/F(217)는, 움직임 검출/움직임 보상 처리부(80)가 로컬 메모리(40)와 데이터를 송수신하기 위한 입출력 인터페이스이다.
로컬 메모리 어드레스 생성부(218)는, 로컬 메모리(40)의 다양한 어드레스를 설정한다. 구체적으로는, 로컬 메모리 어드레스 생성부(218)는, 로컬 메모리(40)에서의, 차분 화상용 블록(차분 화상 생성부(213)에서 생성된 차분 화상의 기억 영역)의 선두 어드레스, 예측 화상용 블록(예측 화상 생성부(212)에서 생성된 예측 화상의 기억 영역)의 선두 어드레스 및 복호 재구성 화상(프로세서 코어(10)에 의해 복호 처리된 재구성 화상)의 기억 영역의 선두 어드레스를 설정한다. 또한, 로컬 메모리 어드레스 생성부(218)는, 로컬 메모리(40)(2차원 액세스 메모리)의 폭 및 높이를 설정한다. 그리고, 로컬 메모리 어드레스 생성부(218)는, MB 관리부(219)로부터 로컬 메모리(40)에 대한 액세스가 지시되면, 그 지시에 따라, 매크로 블록 등을 기억하거나 읽어내기 위한, 로컬 메모리(40)에서의 어드레스를 생성하여, 로컬 메모리 I/F(217)에 출력한다.
MB 관리부(219)는, 움직임 검출 제어부(210)가 행하는 제어에 대해, 보다 상위의 제어를 행하는 것으로, 매크로 블록을 단위로 하는 각종 제어를 행한다. 구체적으로는, MB 관리부(219)는, 호스트 I/F(216)를 통해 입력되는 프로세서 코어(10)로부터의 지시나, 움직임 검출 제어부(210)로부터 입력되는 움직임 검출 처리 결과에 따라서, 로컬 메모리 어드레스 생성부(218)에 대해, 로컬 메모리(40)에 액세스하기 위한 어드레스의 생성을 지시하거나, 프레임 메모리 어드레스 생성부(220)에 대해, 프레임 메모리(110)에 액세스하기 위한 어드레스의 생성을 지시하기도 한다.
프레임 메모리 어드레스 생성부(220)는, 프레임 메모리(110)에서의 다양한 어드레스를 설정한다. 구체적으로는, 프레임 메모리 어드레스 생성부(220)는, 프레임 메모리(110)에서의, 검색 대상 오리지널 화상에 관한 Y성분의 기억 영역의 선두 어드레스, 참조용의 재구성 화상에 관한 Y, Cb, Cr 성분 각각의 기억 영역의 선두 어드레스, 부호화 대상 오리지널 화상에 관한 Y, Cb, Cr 성분 각각의 기억 영역의 선두 어드레스, 출력용 재구성 화상(움직임 검출/움직임 보상 처리부(80)에 출력되는 재구성 화상)에 관한 Y, Cb, Cr 성분 각각의 기억 영역의 선두 어드레스를 설정한다. 또한, 프레임 메모리 어드레스 생성부(220)는, 프레임 메모리(110)에 기억되는 프레임의 폭 및 높이를 설정한다. 그리고, 프레임 메모리 어드레스 생성부(220)는, MB 관리부(219)로부터 프레임 메모리(110)에 대한 액세스가 지시되면, 그 지시에 따라, 프레임 메모리(110)에 기억된 프레임의 데이터를 기억하거나 읽어내기 위한, 프레임 메모리(110)에서의 어드레스를 생성하여, 외부 메모리 I/F(201)에 출력한다.
도 1로 되돌아가, 보조 프로세서(90)는, 움직임 검출 처리 및 움직임 보상 처리 이외의 처리를 하는 보조 프로세서로, 예를 들면, 부동 소수점 연산 등을 행한다.
외부 메모리 I/F(100)는, 동화상 처리 장치(1)가 외부 메모리인 프레임 메모리(110)와 데이터를 송수신하기 위한 입출력 인터페이스이다.
프레임 메모리(110)는, 동화상 처리 장치(1)가 각종 처리를 행할 때에 생성되는 화상 데이터 등을 기억하는 메모리로서, 검색 대상 오리지널 화상에 관한 Y성분의 기억 영역, 참조용의 재구성 화상에 관한 Y, Cb, Cr 성분 각각의 기억 영역, 부호화 대상 오리지널 화상에 관한 Y, Cb, Cr 성분 각각의 기억 영역, 출력용 재구성 화상에 관한 Y, Cb, Cr 성분 각각의 기억 영역을 갖고 있다. 이들 기억 영역의 어드레스와 그 폭 및 높이는 프레임 메모리 어드레스 생성부(220)에 의해서 설정된다.
도 10은 프레임 메모리(110)의 기억 내용을 도시하는 개략적인 모식도로서, 도 10(a)은 현재의 프레임의 움직임 검출 처리 시의 상태, 도 10(b)는 국부 복호 처리 시(재구성 화상 생성 시)의 상태, 도 10(c)은, 다음 프레임의 움직임 검출 처리 시의 상태를 도시한다.
도 10(a)∼(c)에서, 검색 대상 오리지널 화상 및 부호화 대상 오리지널 화상은 동 사이즈의 기억 영역이고, 검색 대상의 재구성 화상의 기억 영역은, 매크로 블록의 2열(16화소)분이 더 추가하여 확보되어 있다. 이는, 동화상 처리 장치(1)의 부호화 처리 방법에 의거하는 것이다. 즉, 동화상 처리 장치(1)가 매크로 블록 단위로 부호화 처리를 행하는 방식이므로, 그 매크로 블록이 부호화 처리를 끝낸 후도, 그 프레임(재구성 화상)을 즉시는 갱신할 수 없다. 한편, 탐색의 중심이 되는 매크로 블록의 주위 최대 16화소까지가 탐색 범위로 되므로, 매크로 블록의 2열분을 1프레임에 추가하여 확보한다. 또한, 탐색 범위를 16화소 이상, 예를 들면 24화소까지 대응하는 경우에는, 매크로 블록의 3열분을 1프레임에 추가하여 확보할 필요가 있다.
이에 따라, 프레임 메모리(110)의 필요한 기억 용량의 증대를 억제하면서, 매크로 블록 단위로 본 발명에 관한 부호화 처리를 행하는 것이 가능해진다.
또, 참조되는 재구성 화상의 기억 영역과, 다음에 참조되는 재구성 화상을 기억하는 영역을 개별로 확보하는 경우에는, 기억 용량이 약간 증대하지만, 상술과 같은 문제점은 발생하지 않으므로, 각각의 기억 영역은, 1프레임분으로 하면 된다.
다음에, 동작을 설명한다.
우선, 동화상 처리 장치(1) 전체에 관한 동작을 설명한다.
도 11은, 프로세서 코어(10)가 실행하는 부호화 함수 실행 처리(부호화 함수 실행 처리 프로그램에 의거하는 처리)를 도시하는 플로우 챠트이다. 도 11에 도시하는 처리는, 동화상 처리 장치(1)에서 동화상의 부호화가 행해질 때에 통상 실행되는 처리로, 1프레임에 대한 부호화를 행하는 처리이다. 동화상 처리 장치(1)가 동화상의 부호화를 행하는 경우, 도 11에 도시하는 부호화 함수 실행 처리가 적절히 반복된다. 또한, 도 11에서, 단계 S3, 6a, 8, 12는, 보조 프로세서(80)가 실행하는 처리이고, 기타는, 프로세서 코어(10)가 실행하는 처리이다.
도 11에서, 부호화 함수 실행 처리가 개시되면, 그 프레임에 관한 모드 설정을 행하고(단계 S1), 움직임 검출/움직임 보상 처리부(80)에 대해, 1프레임의 부호화 처리의 스타트 코맨드(최초의 매크로 블록의 스타트 코맨드를 포함한다)를 발행한다(단계 S2).
그러면, 움직임 검출/움직임 보상 처리부(80)가 초기화(각종 파라미터가 설정)되는 동시에, 1매크로 블록의 움직임 검출 처리, 예측 화상의 생성 및 차분 화상의 생성 처리를 실행하고(단계 S3), 프로세서 코어(10)는, 1매크로 블록의 움직임 검출 처리가 종료했는지 여부의 판정을 행한다(단계 S4).
단계 S4에서, 1매크로 블록의 움직임 검출 처리가 종료하지 않은 것으로 판정된 경우, 프로세서 코어(10)는, 단계 S4의 처리를 반복하고, 1매크로 블록의 움직임 검출 처리가 종료된 것으로 판정된 경우, 연속하는 1매크로 블록의 움직임 검출 처리의 스타트 코맨드를 발행한다(단계 S5).
이어서, 움직임 검출/움직임 보상 처리부(80)가 연속하는 1매크로 블록의 움직임 검출 처리, 예측 화상의 생성 및 차분 화상의 생성 처리를 실행하는 동시에(단계 S6a), 이와 병행하여, 프로세서 코어(10)는, DCT 변환으로부터 가변 길이 부호화 및 역 DCT 변환, 또한, 움직임 보상 처리까지의 부호화 처리를 실행한다(단계 S6b).
다음에, 프로세서 코어(10)는, 움직임 검출/움직임 보상 처리부(80)에 대해, 단계 S6b에서 생성된 재구성 화상을 로컬 메모리(40)로부터 프레임 메모리(110)에 전송시키는 코맨드(이하, 「재구성 화상 전송 코맨드」라고 한다)를 발행한다(단계 S7).
그러면, 움직임 검출/움직임 보상 처리부(80)의 재구성 화상 전송부(214)가, 단계 S6b에서 생성된 재구성 화상을 로컬 메모리(40)로부터 프레임 메모리(110)에 전송하고(단계 S8), 프로세서 코어(10)는, 1프레임의 부호화 처리가 종료했는지 여부의 판정을 행한다(단계 S9).
단계 S9에서, 1프레임의 부호화 처리가 종료하지 않은 것으로 판정된 경우, 프로세서 코어(10)는, 단계 S4의 처리로 이행하고, 한편, 1프레임의 부호화 처리가 종료한 것으로 판정된 경우, 프로세서 코어(10)는, 움직임 검출/움직임 보상 처리부(80)에서 마지막에 처리된 매크로 블록에 대해, DCT 변환으로부터 가변 길이 부호화 및 역 DCT변환, 또한 움직임 보상 처리까지의 부호화 처리를 실행한다(단계 S10).
그리고, 프로세서 코어(10)는, 움직임 검출/움직임 보상 처리부(80)에 대해, 단계 S10에서 생성된 재구성 화상에 대한 재구성 화상 전송 코맨드를 발행한다(단계 S11)
그러면, 움직임 검출/움직임 보상 처리부(80)의 재구성 화상 전송부(214)가, 단계 S10에서 생성된 재구성 화상을 로컬 메모리(40)로부터 프레임 메모리(110)로 전송하고(단계 S12), 프로세서 코어(10)는, 부호화 함수 실행 처리를 종료한다.
또한, 단계 S3, S6a에서 보조 프로세서(80)가 움직임 검출 처리, 예측 화상의 생성 및 차분 화상의 생성 처리를 행할 때는, 상술한 대로, SRAM(301∼303)에 한번에 병렬적으로 액세스함으로써 매크로 블록을 읽어 낼 수 있다.
이어서, 움직임 검출/움직임 보상 처리부(80)의 검색 대상 오리지널 화상 버퍼(207)에서의 상태 천이에 대해 설명한다.
동화상 처리 장치(1)에서 부호화 처리가 행해지는 경우, 탐색의 중심이 되는 매크로 블록을 중심으로 하여, 주위 8화소분(1매크로 블록분)의 영역이 검색 대상 오리지널 화상 버퍼(207)에 순차로 읽어들여진다.
도 12는, 검색 대상 오리지널 화상 버퍼(207)에 검색 대상이 되는 화상 데이터가 순차로 읽어지는 경우의 상태 천이를 도시하는 도면이다.
도 12에서, 1프레임의 처음 매크로 블록(좌측 위)이 탐색의 중심으로서 기억되는 경우, 검색 대상 오리지널 화상 버퍼(207)에는, 그 좌측 위의 매크로 블록의 주위, 즉, 우측 인접하는 곳, 우측 아래 및 아래에 위치하는 매크로 블록이 읽어진다(도 12(a) 참조). 또한, 프레임의 경계를 넘은 영역의 데이터에 대해서는, 후술하는 바와같이, 주변 화소 생성부(215)에 의해서 보간된다.
그리고, 탐색의 중심이 다음 매크로 블록으로 이행하면, 검색 대상 오리지널 화상 버퍼(207)에는, 도 12(a)에서 읽어진 매크로 블록의 우측 이웃하는 2개의 매크로 블록만이 새롭게 읽어지고, 도 12(a)에서의 탐색 영역과 중복하는 매크로 블록에 대해서는, 그대로 읽어진 것이 사용된다(도 12(b) 참조)
그 후, 탐색의 중심이 다음 매크로 블록으로 이행할 때 마다, 마찬가지로, 우측 인접하는 2개의 매크로 블록만이 새롭게 읽어지면서, 프레임의 최상행에서 가장 우단에 위치하는 매크로 블록에 탐색의 중심이 도달한다(도 12(c) 참조). 이 때, 우측 인접하는 곳에서 새롭게 읽어들이는 매크로 블록이 존재하지 않으므로, 매크로 블록의 읽어짐은 행해지지 않고, 그에 대신해, 상술과 같이 주변 화소의 보간이 행해진다.
이어서, 탐색의 중심은 프레임의 제2행으로 이행한다. 이 때, 검색 대상 오리지널 화상 버퍼(207)에는, 도 12(c)의 탐색 영역과 중복되는 매크로 블록이 존재하지 않으므로, 모든 매크로 블록이 새롭게 읽어진다(도 12(d) 참조).
그리고, 탐색의 중심이 다음 매크로 블록으로 이행하면, 검색 대상 오리지널 화상 버퍼(207)에는 도 12(d)에서 읽어진 매크로 블록의 우측 인접하는 3개의 매크로 블록만이 새롭게 읽어져, 도 12(d)에서의 탐색 영역과 중복하는 매크로 블록에 대해서는, 그대로 읽어진 것이 사용된다(도 12(e) 참조)
그 후, 탐색의 중심이 다음 매크로 블록으로 이행할 때마다, 마찬가지로, 우측 인접하는 3개의 매크로 블록만이 새롭게 읽어지면서, 프레임의 제2행에서 가장 우단에 위치하는 매크로 블록에 탐색의 중심이 도달한다(도 12(f) 참조). 이 때, 우측 인접하는 곳에서 새롭게 읽어들이는 매크로 블록이 존재하지 않으므로, 매크로 블록의 읽기는 행해지지 않고, 그에 대신해, 상술과 같이 주변 화소의 보간이 행해진다.
이 후, 프레임에서의 각 행에서 동일한 처리가 행해져, 프레임의 최하행에서도 동일한 처리가 행해진다. 또한, 프레임의 최하행의 경우에는, 탐색의 중심이 되는 매크로 블록의 아래쪽은, 프레임의 경계를 넘으므로, 상술과 같이 보간이 행해진다.
검색 대상 오리지널 화상 버퍼(207)에 읽어지는 매크로 블록이, 이와 같이 천이함으로써, 이미 읽어들여진 매크로 블록을 중복하여 읽어들이지 않고, 효율적으로 처리를 행하는 것이 가능해진다.
이어서, 주변 화소 생성부(215)가 프레임의 경계를 넘은 탐색 범위를 보간하는 처리에 관해서 설명한다.
상술과 같이, 프레임의 경계에 위치하는 매크로 블록이 탐색의 중심이 되는 경우, 탐색 영역의 일부는, 읽어들이는 매크로 블록이 존재하지 않는 상태로 된다.
도 13은 탐색 영역이 프레임의 경계를 넘는 양태를 도시하는 모식도이다.
도 13(a) ∼(i)에 도시하는 바와같이, 탐색 영역이 프레임 경계를 넘은 경우, 주변 화소 생성부(215)는, 프레임 경계에 위치하는 매크로 블록을 이용해, 프레임 경계를 넘은 영역의 화상 데이터(주변 화소)를 생성한다.
도 14는 도 13(a)의 양태에서 탐색 영역이 프레임 경계를 넘은 경우에 행해지는 주변 화소의 보간의 일례를 도시하는 도면이다. 또한, 도 14에서는, 화소의 솎아냄이 행해지지 않은 경우의 보간의 예를 도시하고, 동일 모양의 주변 화소는, 동일한 화소(프레임 경계에 위치하는 화소)로 보간되는 것을 도시한다.
도 14에서는, 프레임 경계에 위치하는 매크로 블록이 그대로 프레임 외로 확장되고, 프레임의 좌측 위에 위치하는 매크로 블록이, 프레임의 좌측 위쪽의 영역으로 확장되어 있다.
이와 같이 주변 화소의 보간을 행함으로써, 비제한 움직임 벡터(프레임 경계를 넘은 지정을 인정하는 움직임 벡터)를 부호화 처리에 이용하는 것이 가능해진다. 또한, 본 발명에 관한 동화상 처리 장치(1)와 같이, 매크로 블록 단위로 화상 데이터를 움직임 검출/움직임 보상 처리부(80)에 읽어들이고, 부호화 처리를 행하는 경우에도, 읽어진 매크로 블록만을 이용하여 주변 화소를 보간할 수 있으므로, 효율적으로 처리를 행하는 것이 가능해진다.
또한, 도 15 및 도 16은 화소의 솎아냄이 행해지는 경우의 보간의 예를 도시하는 도면으로, 도 15는, 솎아진 후에 남아 있는 화소 데이터만을 이용하여 주변 화소의 보간을 행하는 예를 도시하는 도면, 도 16은 솎아내진 후에 남아 있는 화소 데이터에 추가하여, 솎아내져 탈락된 부분을 솎아냄 전의 화소를 이용하여 보간하는 예를 도시하는 도면이다.
또한, 화소를 보간하는 형태로는, 도 15 혹은 도 16에 도시하는 예 이외, 다양한 형태로 하는 것이 가능하다.
이상과 같이, 본 실시 형태에 관한 동화상 처리 장치(1)는, 움직임 검출/움직임 보상 처리부(80)에 구비되는 재구성 화상 버퍼(203), 검색 대상 오리지널 화상 버퍼(207) 및 부호화 대상 오리지널 화상 버퍼(208)를 복수의 메모리 뱅크에 의해서 구성하는 동시에, 32비트폭(4화소폭)의 장방 형상의 기억 영역을 각각의 메모리 뱅크에 할당하고, 또한, 각 메모리 뱅크에 의해 구성되는 장방 형상의 기억 영역을 순서대로 배열한 구성으로 하고 있다.
따라서, 움직임 검출 처리에서, 각 메모리 뱅크에 대한 병렬적인 한번의 액세스로 처리 대상이 되는 화소를 모두 읽어 낼 수 있으므로, 처리의 고속화를 도모할 수 있다.
또한, 각 버퍼를 공통의 메모리 뱅크에 의해서 구성하고 있으므로, 움직임 검출/움직임 보상 처리부(80)에 구비하는 메모리의 개수를 삭감시킬 수 있다.
본 실시의 형태에 관한 동화상 처리 장치(1)는, 동화상의 부호화 처리에서의 부하의 비중이 높은 움직임 검출 처리를, 보조 프로세서로 된 움직임 검출/움직임 보상 처리부(80)에서 처리한다. 또한, 이 때, 움직임 검출/움직임 보상 처리부(80)는, 움직임 검출 처리를 매크로 블록 단위로 행한다.
이 때문에, 프로세서 코어(10)가 소프트웨어에 의해서 행하는 부호화 처리와, 움직임 검출/움직임 보상 처리부(80)가 하드웨어에 의해서 행하는 부호화 처리에 있어서, 데이터의 인터페이스를 정합성이 높은 것으로 할 수 있고, 또한, 각 매크로 블록의 움직임 검출이 종료할 때 마다 프로세서 코어(10)가 연속되는 부호화 처리를 순차 실행할 수 있다.
따라서, 프로세서 코어(10)와, 보조 프로세서인 움직임 검출/움직임 보상 처리부(80)를 보다 효과적으로 병렬 동작시키는 것이 가능해지고, 동화상의 부호화 처리를 효율적으로 행하는 것이 가능해진다.
또한, 움직임 검출/움직임 보상 처리부(80)가 매크로 블록 단위로 화상 데이터를 읽어들이고, 움직임 검출 처리를 행하므로, 움직임 검출/움직임 보상 처리부(80)에서 필요한 버퍼의 사이즈를 저감시킬 수 있어, 저비용 및 저소비전력으로 부호화 처리를 행하는 것이 가능해진다.
또한, 프로세서 코어(10)에 의해서 재구성된 로컬 메모리(40) 내의 재구성 화상을, 움직임 검출/움직임 보상 처리부(80)의 재구성 화상 전송부(214)가 DMA에 의해서 프레임 메모리(110)에 전송하고, 부호화 처리에 사용한다.
따라서, 프로세서 코어(10)의 처리 부하를 경감시킬 수 있으므로, 프로세서 코어(10)의 동작 주파수를 저하시키는 것이 가능해지므로, 나아가 저소비 전력화를 측정하는 것이 가능해진다. 또한, 동화상 처리 장치(1)를 휴대 전화 등의 모바일 기기에 집어넣은 경우에는, 처리 부하가 경감되는 것에 의해 창출된 프로세서 코어(10)의 처리 능력을 다른 어플리케이션의 처리에 배분되므로, 모바일 기기라도, 보다 고기능인 어플리케이션을 동작시키는 것이 가능해진다. 또한, 프로세서 코어(10)에 요구되는 처리 능력이 저감되므로, 프로세서 코어(10)로서, 염가인 프로세서를 사용하는 것이 가능해져, 비용의 삭감을 도모할 수 있다.
또한, 본 실시의 형태에서의 동화상 처리 장치(1)는, 동화상의 복호화 처리를 행하는 기능을 구비하고 있으므로, 상술의 부호화 처리에서의 이점을 활용하여, 동화상의 복호화 처리를 행하는 것이 가능하다.
즉, 동화상 처리 장치(1)에 대해, 복호화 대상이 되는 동화상 데이터를 부여함으로써, 프로세서 코어(10)가 가변 길이 복호 처리를 실시하여, 움직임 벡터가 취득된다. 이 움직임 벡터를, 소정의 레지스터(움직임 벡터용 레지스터)에 격납한다.
그러면, 움직임 검출/움직임 보상 처리부(80)의 예측 화상 생성부(212)가, 그 움직임 벡터에 의거해, 매크로 블록(Y, Cb, Cr 성분)을 로컬 메모리(40)에 전송한다.
그리고, 프로세서 코어(10)는, 복호화 대상이 되는 동화상에 대해, 가변 길이 복호 처리, 역 스캔 처리(역 지그재그 스캔 등), 역 AC/DC 예측 처리, 역양자화 처리, 역 DCT 처리를 실행하고, 그 결과를 재구성 화상으로서 로컬 메모리(40)에 기억시킨다.
그러면, 움직임 검출/움직임 보상 처리부(80)의 재구성 화상 전송부(214)가, 로컬 메모리(40)로부터 프레임 메모리(110)에 재구성 화상을 DMA 전송한다.
이러한 처리를 매크로 블록마다 반복함으로써, 동화상의 복호화 처리를 행할 수 있다.
도 1은 본 발명에 관한 동화상 처리 장치(1)의 기능 구성을 도시하는 블록도,
도 2는 로컬 메모리(40)에서 매크로 블록이 기억되는 형태를 도시하는 도면,
도 3은 움직임 검출/움직임 보상 처리부(80)의 내부 구성을 도시하는 블록도,
도 4는 솎아냄 처리부(206)가, 프레임 메모리로부터 읽어들인 1개의 매크로 블록을 솎아낸 상태를 도시하는 도면,
도 5는 재구성 화상 버퍼(203), 검색 대상 오리지널 화상 버퍼(207) 및 부호화 대상 오리지널 화상 버퍼(208)의 메모리 할당을 도시하는 도면,
도 6은 재구성 화상 버퍼(203)에 기억되는 데이터 내용을 도시하는 모식도,
도 7은 화상 데이터의 솎아냄을 행하고, 가로 방향으로 2분의 1로 축소한 화상 데이터를 검색 대상 오리지널 화상 버퍼(207)에 기억시키는 경우의 메모리 할당을 도시하는 도면,
도 8은 화상 데이터의 솎아냄을 행한 경우의 재구성 화상 버퍼(203) 및 부호화 대상 오리지널 화상 버퍼(208)의 메모리 할당을 도시하는 도면,
도 9는 매크로 블록에 대해 4개의 움직임 벡터가 설정된 상태 및 1개의 움직임 벡터가 설정된 상태를 도시하는 도면,
도 10은 프레임 메모리(110)의 기억 내용을 도시하는 개략적인 모식도,
도 11은 프로세서 코어(10)가 실행하는 부호화 함수 실행 처리를 도시하는 플로우 챠트,
도 12는 검색 대상 오리지널 화상 버퍼(207)에 검색 대상이 되는 화상 데이터가 순차로 읽어지는 경우의 상태 천이를 도시하는 도면,
도 13은 탐색 영역이 프레임의 경계를 넘은 양태를 도시하는 모식도,
도 14는 도 13(a)의 양태에서 탐색 영역이 프레임 경계를 넘은 경우에 행해지는 주변 화소의 보간의 일례를 도시하는 도면,
도 15는 화소의 솎아냄이 행해지는 경우의 보간의 일례를 도시하는 도면,
도 16은 화소의 솎아냄이 행해지는 경우의 보간의 다른 예를 도시하는 도면이다.
<도면의 주요 부분에 대한 부호의 설명>
1 : 동화상 처리 장치 10 : 프로세서 코어
20 : 명령 메모리 30 : 명령 캐시
40 : 로컬 메모리 50 : 데이터 캐시
60 : 내부 버스 조정부 70 : DMA 제어부
80 : 움직임 검출/움직임 보상 처리부
90 : 보조 프로세서 100, 201 : 외부 메모리 I/F
110 : 프레임 메모리 202, 205 : 보간 처리부
203 : 재구성 화상 버퍼 204 : 반화소 생성부
206, 209 : 솎아냄 처리부
207 : 검출 대상 오리지널 화상 버퍼
208 : 부호화 대상 오리지널 화상 버퍼
210 : 움직임 검출 제어부 211 : 차분 절대치합 처리부
212 : 예측 화상 생성부 213 : 차분 화상 생성부
214 : 재구성 화상 전송부 215 : 주변 화소 생성부
216 : 호스트 I/F 217 : 로컬 메모리 I/F
218 : 로컬 메모리 어드레스 생성부
219 : MB 관리부
220 : 프레임 메모리 어드레스 생성부
301∼303 : SRAM
Claims (28)
- 동화상 데이터에 대해 움직임 검출 처리를 포함하는 부호화 처리를 행하는 동화상 부호화 장치에 있어서,동화상을 구성하는 프레임의 부호화 대상이 되는 매크로 블록 1개를 기억하는 부호화 화상용 버퍼와, 상기 동화상 데이터의 참조 프레임에 있어서 움직임 검출의 탐색 영역이 되는 소정 범위의 동화상 데이터를 기억하는 검색 화상용 버퍼와, 부호화된 상기 참조 프레임을 복호화하여 얻어지는 재구성 화상 프레임의, 탐색 영역이 되는 소정 범위의 동화상 데이터를 기억하는 재구성 화상용 버퍼를 가지고, 상기 움직임 검출 처리를 행하는 움직임 검출 처리 수단을 구비하고,상기 움직임 검출 처리 수단은, 상기 동화상을 구성하는 프레임, 상기 참조 프레임 및 상기 재구성 화상 프레임을 구성하는 데이터 중, 처리 대상으로 하는 소정 데이터를 상기 버퍼 각각에 순차로 읽어들여 움직임 검출 처리를 행하는 것을 특징으로 하는 동화상 부호화 장치.
- 제 1항에 있어서, 상기 부호화 화상용 버퍼, 검색 화상용 버퍼 및 재구성 화상용 버퍼중 적어도 어느 하나는, 그 기억 영역이, 복수의 메모리 뱅크에 인터리브되어 있는 것을 특징으로 하는 동화상 부호화 장치.
- 제 2항에 있어서, 상기 기억 영역은, 소정폭을 갖는 복수의 영역으로 분할되고, 당해 소정폭은 상기 움직임 검출 처리 수단이 데이터를 읽어 낼 때의 독출 데이터폭과, 상기 메모리 뱅크에서 취급의 단위가 되는 액세스 데이터폭에 의거하여 설정되고, 당해 복수의 영역 각각이, 상기 복수의 메모리 뱅크에 인터리브되어 있는 것을 특징으로 하는 동화상 부호화 장치.
- 제 3항에 있어서, 상기 움직임 검출 처리 수단은, 상기 독출 데이터폭 이하의 데이터폭으로, 움직임 검출 처리에서의 차분 절대치합의 산출 처리를 병렬적으로 행하는 것을 특징으로 하는 동화상 부호화 장치.
- 제 3항에 있어서, 상기 기억 영역은, 4바이트폭을 갖는 2개의 영역으로 분할되고, 당해 2개의 영역 각각이, 2개의 상기 메모리 뱅크에 인터리브되고,상기 움직임 검출 수단은, 움직임 검출 처리에서의 차분 절대치합의 처리를 4화소씩 병렬적으로 행하는 것을 특징으로 하는 동화상 부호화 장치.
- 제 1항에 있어서, 상기 동화상 데이터의 참조 프레임에 있어서 움직임 검출의 탐색 영역이 되는 소정 범위의 동화상 데이터를 솎아냄으로써 생성되는 솎아냄 화상을, 상기 검색 화상용 버퍼에 기억하는 것을 특징으로 하는 동화상 부호화 장치.
- 제 1항에 있어서, 상기 동화상 데이터의 참조 프레임에 있어서 움직임 검출의 탐색 영역이 되는 소정 범위의 동화상 데이터를 2분의 1의 사이즈로 솎아냄으로써 생성되는 제1 솎아냄 화상과, 당해 제1 솎아냄 화상을 생성할 때에 솎아진 동화상 데이터로 이루어지는 제2 솎아냄 화상을, 상기 검색 화상용 버퍼에 기억하는 것을 특징으로 하는 동화상 부호화 장치.
- 제 1항에 있어서, 상기 검색 화상용 버퍼 및 상기 재구성 화상용 버퍼의 기억 영역 각각이, 동일한 복수의 메모리 뱅크에 인터리브되어 있는 것을 특징으로 하는 동화상 부호화 장치.
- 제 1항에 있어서, 상기 검색 화상용 버퍼는, 탐색의 중심에 위치하는 매크로 블록을 둘러싸는 소정수의 매크로 블록을 기억 가능하고,상기 움직임 검출 처리 수단은, 당해 검색 화상용 버퍼에 기억된 매크로 블록을 대상으로 하여 움직임 벡터의 검출을 행하는 동시에, 상기 탐색의 중심을 인접하는 매크로 블록으로 이행할 때에, 상기 탐색의 중심에 위치하는 매크로 블록을 둘러싸는 소정수의 매크로 블록 중, 상기 탐색의 중심이 이행함으로써 새롭게 탐색 영역에 속하는 매크로 블록을 읽어들이는 동시에, 다른 매크로 블록을 유지하는 것을 특징으로 하는 동화상 부호화 장치.
- 제 1항에 있어서, 상기 검색 대상 화상용 버퍼는, 탐색의 중심에 위치하는 매크로 블록을 둘러싸는 3행 3열의 매크로 블록을 기억하고,상기 움직임 검출 처리 수단은, 당해 3행 3열의 매크로 블록을 대상으로 하여 움직임 벡터의 검출을 행하는 동시에, 상기 탐색의 중심을 인접하는 매크로 블록으로 이행할 때에, 상기 3행 3열의 매크로 블록 중, 탐색의 중심이 이행함으로써 새롭게 탐색 영역에 속하는 3행 혹은 3열분의 매크로 블록을 읽어들이는 동시에, 다른 매크로 블록을 유지하는 것을 특징으로 하는 동화상 부호화 장치.
- 제 9항에 있어서, 상기 움직임 검출 처리 수단은, 상기 탐색의 중심에 위치하는 매크로 블록을 둘러싸는 소정수의 매크로 블록의 범위가, 상기 동화상 데이터의 참조 프레임의 경계 외를 포함하는 경우에, 참조 프레임의 경계 외로 되는 범위에 대해서는, 당해 참조 프레임의 경계에 위치하는 매크로 블록을 확장하여 보간하는 것을 특징으로 하는 동화상 부호화 장치.
- 제 1항에 있어서, 상기 움직임 검출 처리 수단은, 상기 움직임 검출 처리에 있어서, 상기 동화상 데이터의 참조 프레임에 있어서 움직임 검출의 탐색 영역이 되는 소정 범위의 동화상 데이터를 솎아냄으로써 생성되는 솎아냄 화상을 대상으로 하여, 대략의 움직임을 표시하는 광역 움직임 벡터를 검출한 후, 당해 광역 움직임 벡터에 의거해, 상기 솎아냄 화상에 대응하는 솎아냄이 행해지지 않은 화상을 대상으로 하여, 보다 정확한 움직임 벡터를 검출하는 것을 특징으로 하는 동화상 부호화 장치.
- 동화상 데이터의 부호화 처리를 행하는 프로세서와, 당해 프로세서에 있어서의 처리를 보조하기 위한 보조 프로세서를 포함하는 동화상 처리 장치에 있어서,상기 보조 프로세서는, 부호화 처리 대상인 상기 동화상 데이터에 대해, 움직임 검출 처리와 예측 화상 및 차분 화상의 생성 처리를 매크로 블록 단위로 하고, 각 매크로 블록의 처리가 종료할 때 마다, 당해 매크로 블록의 차분 화상을 출력하고,상기 프로세서는, 상기 보조 프로세서로부터 각 매크로 블록의 차분 화상이 출력될 때 마다, 당해 매크로 블록의 차분 화상에 대해 연속하는 부호화 처리를 행하는 것을 특징으로 하는 동화상 처리 장치.
- 제 13항에 있어서, 상기 동화상 데이터를 복수 프레임분 기억 가능한 프레임 메모리와, 당해 프레임 메모리보다 고속으로 액세스가 가능한 로컬 메모리를 포함하고,상기 보조 프로세서는, 상기 프레임 메모리에 기억된 프레임의 데이터를 읽어들여 상기 움직임 검출 처리와 예측 화상 및 차분 화상의 생성처리를 행하고, 각 매크로 블록에 대해 당해 차분 화상을 생성할 때 마다, 생성한 차분 화상을 상기 로컬 메모리에 출력하고,상기 프로세서는, 상기 로컬 메모리에 기억된 차분 화상에 대해, 연속되는 부호화 처리를 행하는 것을 특징으로 하는 동화상 처리 장치.
- 제 14항에 있어서, 상기 보조 프로세서는, 각 매크로 블록에 대해서 상기 예측 화상을 생성할 때 마다, 생성한 예측 화상을 상기 로컬 메모리에 출력하고,상기 프로세서는, 상기 로컬 메모리에 기억된 예측 화상과, 상기 차분화상을 부호화 처리한 다음에 복호화 처리하여 얻어지는 복호후의 차분 화상에 의거해 움직임 보상 처리를 행하고, 당해 움직임 보상 처리 결과인 재구성 화상을 상기 로컬 메모리에 기억시키는 것을 특징으로 하는 동화상 처리 장치.
- 제 14항에 있어서, 상기 보조 프로세서는, 상기 로컬 메모리에 기억된 상기 재구성 화상을 상기 프레임 메모리에 DMA 전송하는 재구성 화상 전송 수단을 더 포함하는 것을 특징으로 하는 동화상 처리 장치.
- 제 14항에 있어서, 상기 보조 프로세서는, 상기 프레임 메모리에 있어서의 참조처의 선두 어드레스, 프레임의 사이즈가 지정됨으로써, 각 매크로 블록이 순차 처리되는 것에 대응하고, 상기 프레임 메모리에 있어서의 참조처의 어드레스를 자동적으로 생성하는 것을 특징으로 하는 동화상 처리 장치.
- 제 14항에 있어서, 상기 로컬 메모리는, 2차원 액세스 메모리에 의해서 구성되는 것을 특징으로 하는 동화상 처리 장치.
- 제 18항에 있어서, 상기 보조 프로세서는, 상기 예측 화상 혹은 차분 화상의 매크로 블록을 상기 로컬 메모리에 기억시킬 때에, 당해 로컬 메모리의 사이즈에 따라, 매크로 블록에 포함되는 블록을 세로 일렬 혹은 가로 일렬로 배열해 기억시키는 것을 특징으로 하는 동화상 처리 장치.
- 제 13항에 있어서, 상기 보조 프로세서는, 부호화 처리에 있어서 움직임 보상 처리된 결과인 재구성 화상에 포함되는 데이터를 기억하는 재구성 화상 버퍼를 포함하고, 상기 매크로 블록에 관해서 상기 움직임 검출 처리를 행할 때에, 상기 재구성 화상에 포함되는 소정 데이터를 당해 재구성 화상 버퍼에 읽어들이고, 그 재구성 화상 버퍼에 읽어들여진 소정 데이터를 이용하여, 당해 매크로 블록에 대해서 상기 예측 화상을 생성하는 것을 특징으로 하는 동화상 처리 장치.
- 제 13항에 있어서, 상기 보조 프로세서는, 부호화 대상인 동화상 데이터에 포함되는 데이터를 기억하는 부호화 대상 화상 버퍼를 포함하고, 상기 매크로 블록에 관해서 상기 움직임 검출 처리를 할 때에, 상기 부호화 대상인 동화상 데이터에 포함되는 소정 데이터를 당해 부호화 대상 화상 버퍼에 읽어들이고, 그 부호화 대상 화상 버퍼에 읽어들여진 데이터를 이용하여, 당해 매크로 블록에 대한 상기 차분 화상을 생성하는 것을 특징으로 하는 동화상 처리 장치.
- 제 13항에 있어서, 상기 보조 프로세서는, 부호화 처리 대상인 매크로 블록에 대해서, 상기 움직임 검출 처리의 결과와 당해 매크로 블록에 포함되는 화소 데이터에 의거해, 프레임간 부호화 처리 혹은 프레임내 부호화 처리중 어느 것에 의해 당해 매크로 블록이 효율적으로 부호화되는지 판정하고, 그 판정 결과에 따른 부호화 처리에 의거하는 상기 예측 화상 및 차분 화상의 생성을 행하는 것을 특징으로 하는 동화상 처리 장치.
- 제 22항에 있어서, 상기 보조 프로세서는, 부호화 대상인 매크로 블록에 대해서, 프레임 내 부호화 처리에 의한 쪽이 효율적으로 부호화되는 것으로 판정한 경우에, 당해 매크로 블록의 부호화 처리에서 이용하는 예측 화상을 모두 제로로 갱신하는 것을 특징으로 하는 동화상 처리 장치.
- 제 13항에 있어서, 상기 보조 프로세서는, 상기 움직임 검출 처리에 있어서, 매크로 블록에 포함되는 각 블록 각각에 관한 움직임 벡터를 검출하고, 검출한 움직임 벡터의 근사 정도에 따라, 각 블록 각각에 개별의 움직임 벡터를 설정할지, 혹은, 매크로 블록 전체에 1개의 움직임 벡터를 설정할지를 판정하고, 그 판정 결과에 따라 상기 예측 화상 및 차분 화상의 생성을 하는 것을 특징으로 하는 동화상 처리 장치.
- 제 13항에 있어서, 상기 보조 프로세서는, 상기 움직임 검출 처리에 있어서, 검출된 움직임 벡터가 참조처의 프레임에 있어서의 프레임 경계를 넘은 영역을 지정하고 있는 경우, 당해 프레임 경계를 넘은 영역의 화소 데이터를 보간하여, 상기 예측 화상 및 차분 화상의 생성을 하는 것을 특징으로 하는 동화상 처리 장치.
- 제 13항에 있어서, 상기 보조 프로세서는, 매크로 블록에 대한 움직임 벡터가 주어진 경우에, 참조처의 프레임에서 당해 움직임 벡터에 의해서 지정되어 있는 매크로 블록을 취득하고,상기 프로세서가 당해 취득된 매크로 블록을 이용하여 움직임 보상 처리를 행함으로써, 동화상의 복호화 처리를 실행가능한 것을 특징으로 하는 동화상 처리 장치.
- 제 14항에 있어서, 상기 프로세서는, 부호화 처리 대상인 프레임과, 부호화 처리에 있어서 움직임 보상 처리된 결과인 참조처 프레임의 재구성 화상과, 당해 재구성 화상에 대응한, 부호화 처리 대상인 동화상 데이터에 포함되는 참조처 프레임과, 부호화 처리 대상인 프레임에 대해서 생성되는 재구성 화상을 상기 프레임 메모리에 기억시키고, 매크로 블록을 단위로 하는 부호화 처리를 행하는 동시에, 부호화 처리 대상인 프레임에 대해서 생성되는 재구성 화상의 매크로 블록을, 상기 부호화 처리 대상인 프레임, 상기 참조처 프레임의 재구성 화상 혹은 상기 참조처 프레임에 있어서의 매크로 블록의 기억 영역 중, 보존이 불필요해진 기억 영역에 덮어쓰기하는 것을 특징으로 하는 동화상 처리 장치.
- 동화상 데이터의 복호화 처리를 행하는 프로세서와, 당해 프로세서에 있어서의 처리를 보조하기 위한 보조 프로세서를 포함하는 동화상 처리 장치에 있어서,상기 보조 프로세서는, 복호화 처리 대상인 동화상 데이터의 움직임 벡터가 주어진 경우에, 복호 처리에 의해서 얻어지는 참조처 프레임으로부터 당해 움직임 벡터가 지정하는 매크로 블록을 취득하여 예측 화상을 생성하는 처리를 매크로 블록 단위로 행하고, 각 매크로 블록의 처리가 종료할 때마다, 당해 매크로 블록의 예측 화상을 출력하고,상기 프로세서는, 상기 보조 프로세서로부터 각 매크로 블록의 예측 화상이 출력될 때 마다, 당해 매크로 블록의 예측 화상에 대해 움직임 보상 처리를 행하는 것을 특징으로 하는 동화상 처리 장치.
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004054821A JP4419608B2 (ja) | 2004-02-27 | 2004-02-27 | 動画像符号化装置 |
JPJP-P-2004-00054822 | 2004-02-27 | ||
JP2004054822A JP2005244845A (ja) | 2004-02-27 | 2004-02-27 | 動画像処理装置 |
JPJP-P-2004-00054821 | 2004-02-27 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20050087729A true KR20050087729A (ko) | 2005-08-31 |
KR100621137B1 KR100621137B1 (ko) | 2006-09-13 |
Family
ID=34889406
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020050004281A KR100621137B1 (ko) | 2004-02-27 | 2005-01-17 | 동화상 부호화 장치 및 동화상 처리장치 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20050190976A1 (ko) |
KR (1) | KR100621137B1 (ko) |
CN (1) | CN100405853C (ko) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100795287B1 (ko) * | 2005-12-26 | 2008-01-15 | 산요덴키가부시키가이샤 | 복호 장치 |
KR101316503B1 (ko) * | 2009-02-02 | 2013-10-10 | 엔비디아 코포레이션 | 듀얼 스테이지 인트라-예측 비디오 인코딩 시스템 및 방법 |
US8937624B2 (en) | 2010-11-16 | 2015-01-20 | Samsung Electronics Co., Ltd. | Method and apparatus for translating memory access address |
KR20160147628A (ko) * | 2015-06-15 | 2016-12-23 | 한화테크윈 주식회사 | 영상 처리 방법, 영상 처리 장치, 및 프로그램 |
Families Citing this family (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9330060B1 (en) | 2003-04-15 | 2016-05-03 | Nvidia Corporation | Method and device for encoding and decoding video image data |
US8660182B2 (en) | 2003-06-09 | 2014-02-25 | Nvidia Corporation | MPEG motion estimation based on dual start points |
US7852961B2 (en) * | 2004-05-20 | 2010-12-14 | Samsung Electronics Co., Ltd. | Digital broadcasting transmission/reception devices capable of improving a receiving performance and signal processing method thereof |
US8731071B1 (en) | 2005-12-15 | 2014-05-20 | Nvidia Corporation | System for performing finite input response (FIR) filtering in motion estimation |
WO2007081189A1 (en) * | 2006-01-16 | 2007-07-19 | Electronics And Telecommunications Research Institute | Method and apparatus for selective inter-layer prediction on macroblock basis |
KR101352978B1 (ko) * | 2006-01-16 | 2014-01-28 | 고려대학교 산학협력단 | 향상된 계층간 참조 영상 지정, 복호 방법 및 그 장치 |
US8724702B1 (en) | 2006-03-29 | 2014-05-13 | Nvidia Corporation | Methods and systems for motion estimation used in video coding |
US8660380B2 (en) | 2006-08-25 | 2014-02-25 | Nvidia Corporation | Method and system for performing two-dimensional transform on data value array with reduced power consumption |
US8098898B2 (en) * | 2006-10-27 | 2012-01-17 | Panasonic Corporation | Motion detection device, MOS (metal-oxide semiconductor) integrated circuit, and video system |
US20080260021A1 (en) * | 2007-04-23 | 2008-10-23 | Chih-Ta Star Sung | Method of digital video decompression, deinterlacing and frame rate conversion |
EP1988502A1 (en) * | 2007-05-04 | 2008-11-05 | Deutsche Thomson OHG | Method and device for retrieving a test block from a blockwise stored reference image |
US8756482B2 (en) | 2007-05-25 | 2014-06-17 | Nvidia Corporation | Efficient encoding/decoding of a sequence of data frames |
US9118927B2 (en) | 2007-06-13 | 2015-08-25 | Nvidia Corporation | Sub-pixel interpolation and its application in motion compensated encoding of a video signal |
US8873625B2 (en) | 2007-07-18 | 2014-10-28 | Nvidia Corporation | Enhanced compression in representing non-frame-edge blocks of image frames |
JP4695124B2 (ja) * | 2007-09-13 | 2011-06-08 | 日本電信電話株式会社 | 動画像符号化における動き探索装置 |
CN101179724B (zh) * | 2007-12-11 | 2010-09-29 | 北京中星微电子有限公司 | 帧间压缩编码中的帧存储方法及装置 |
JP4508279B2 (ja) * | 2008-07-17 | 2010-07-21 | ソニー株式会社 | 画像処理装置、画像処理方法、及び、プログラム |
CN101400138B (zh) * | 2008-10-28 | 2010-06-16 | 北京大学 | 一种面向移动设备的地图数据精简方法 |
US8666181B2 (en) * | 2008-12-10 | 2014-03-04 | Nvidia Corporation | Adaptive multiple engine image motion detection system and method |
USRE47243E1 (en) * | 2009-12-09 | 2019-02-12 | Samsung Electronics Co., Ltd. | Method and apparatus for encoding video, and method and apparatus for decoding video |
KR101700358B1 (ko) * | 2009-12-09 | 2017-01-26 | 삼성전자주식회사 | 영상의 부호화 방법 및 장치, 그 복호화 방법 및 장치 |
CN101895743B (zh) * | 2010-03-11 | 2013-11-13 | 宇龙计算机通信科技(深圳)有限公司 | 一种处理器间编解码数据的传输方法、系统及可视电话 |
KR101898464B1 (ko) | 2011-03-17 | 2018-09-13 | 삼성전자주식회사 | 모션 추정 장치 및 그것의 모션 추정 방법 |
JP5845464B2 (ja) * | 2011-05-31 | 2016-01-20 | パナソニックIpマネジメント株式会社 | 画像処理装置及び画像処理方法並びにデジタルカメラ |
CN102256131B (zh) * | 2011-07-28 | 2013-08-07 | 杭州士兰微电子股份有限公司 | 视频编码中数据帧存储空间的配置方法 |
US20130094586A1 (en) * | 2011-10-17 | 2013-04-18 | Lsi Corporation | Direct Memory Access With On-The-Fly Generation of Frame Information For Unrestricted Motion Vectors |
CN102595164A (zh) * | 2012-02-27 | 2012-07-18 | 中兴通讯股份有限公司 | 一种视频图像发送方法、装置及系统 |
JP5972687B2 (ja) * | 2012-07-02 | 2016-08-17 | 株式会社Nttドコモ | 動画像予測符号化装置、動画像予測符号化方法、動画像予測符号化プログラム、動画像予測復号装置、動画像予測復号方法及び動画像予測復号プログラム |
US20230199199A1 (en) * | 2021-12-16 | 2023-06-22 | Mediatek Inc. | Video Encoding Parallelization With Time-Interleaving Cache Access |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5448310A (en) * | 1993-04-27 | 1995-09-05 | Array Microsystems, Inc. | Motion estimation coprocessor |
US5699460A (en) * | 1993-04-27 | 1997-12-16 | Array Microsystems | Image compression coprocessor with data flow control and multiple processing units |
JPH07288819A (ja) * | 1994-04-19 | 1995-10-31 | Sony Corp | 動きベクトル検出装置 |
US5694170A (en) * | 1995-04-06 | 1997-12-02 | International Business Machines Corporation | Video compression using multiple computing agents |
US5909224A (en) * | 1996-10-18 | 1999-06-01 | Samsung Electronics Company, Ltd. | Apparatus and method for managing a frame buffer for MPEG video decoding in a PC environment |
JP3352931B2 (ja) * | 1997-12-26 | 2002-12-03 | 沖電気工業株式会社 | 動きベクトル検出装置 |
KR100246918B1 (ko) * | 1997-12-31 | 2000-03-15 | 윤종용 | 모션벡터 검출장치 |
JP2000308064A (ja) * | 1999-04-22 | 2000-11-02 | Mitsubishi Electric Corp | 動きベクトル検出装置 |
KR100677082B1 (ko) * | 2000-01-27 | 2007-02-01 | 삼성전자주식회사 | 움직임 추정기 |
EP1139669A1 (en) * | 2000-03-28 | 2001-10-04 | STMicroelectronics S.r.l. | Coprocessor for motion estimation in digitised video sequence encoders |
EP1263239A3 (en) * | 2001-05-30 | 2005-02-09 | Nippon Telegraph and Telephone Corporation | Image compression system |
GB2378345B (en) * | 2001-07-09 | 2004-03-03 | Samsung Electronics Co Ltd | Motion estimation apparatus and method for scanning a reference macroblock window in a search area |
US20030012281A1 (en) * | 2001-07-09 | 2003-01-16 | Samsung Electronics Co., Ltd. | Motion estimation apparatus and method for scanning an reference macroblock window in a search area |
WO2003021971A1 (en) * | 2001-08-28 | 2003-03-13 | Ntt Docomo, Inc. | Moving picture encoding/transmission system, moving picture encoding/transmission method, and encoding apparatus, decoding apparatus, encoding method, decoding method, and program usable for the same |
KR20030023815A (ko) * | 2001-09-14 | 2003-03-20 | (주)로고스텍 | 가중치를 이용한 움직임 추정 장치 및 방법 |
US7181070B2 (en) * | 2001-10-30 | 2007-02-20 | Altera Corporation | Methods and apparatus for multiple stage video decoding |
US6868123B2 (en) * | 2001-12-07 | 2005-03-15 | Motorola, Inc. | Programmable motion estimation module with vector array unit |
JP2003296724A (ja) * | 2002-04-05 | 2003-10-17 | Hitachi Ltd | 画像処理システム及びその方式 |
JP4102973B2 (ja) * | 2002-04-24 | 2008-06-18 | 日本電気株式会社 | 動画像の符号化方法および復号化方法、これを用いた装置とプログラム |
US7940844B2 (en) * | 2002-06-18 | 2011-05-10 | Qualcomm Incorporated | Video encoding and decoding techniques |
-
2005
- 2005-01-17 KR KR1020050004281A patent/KR100621137B1/ko not_active IP Right Cessation
- 2005-01-28 US US11/044,459 patent/US20050190976A1/en not_active Abandoned
- 2005-02-28 CN CNB2005100529834A patent/CN100405853C/zh not_active Expired - Fee Related
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100795287B1 (ko) * | 2005-12-26 | 2008-01-15 | 산요덴키가부시키가이샤 | 복호 장치 |
KR101316503B1 (ko) * | 2009-02-02 | 2013-10-10 | 엔비디아 코포레이션 | 듀얼 스테이지 인트라-예측 비디오 인코딩 시스템 및 방법 |
US8937624B2 (en) | 2010-11-16 | 2015-01-20 | Samsung Electronics Co., Ltd. | Method and apparatus for translating memory access address |
KR20160147628A (ko) * | 2015-06-15 | 2016-12-23 | 한화테크윈 주식회사 | 영상 처리 방법, 영상 처리 장치, 및 프로그램 |
Also Published As
Publication number | Publication date |
---|---|
KR100621137B1 (ko) | 2006-09-13 |
CN1662068A (zh) | 2005-08-31 |
US20050190976A1 (en) | 2005-09-01 |
CN100405853C (zh) | 2008-07-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100621137B1 (ko) | 동화상 부호화 장치 및 동화상 처리장치 | |
KR100907843B1 (ko) | 비디오 모션 보상용 캐싱 방법 및 장치 | |
KR100267476B1 (ko) | 매크로 블록판독 및 설정방법 | |
CN1328910C (zh) | 一种应用硬件实现运动估计时的搜索窗数据读取方法 | |
US20190037226A1 (en) | Lossless Compression Method And System Applied To Hardware Video Decoding | |
CN103188495A (zh) | 译码视频数据的方法 | |
JPH08123953A (ja) | 画像処理装置 | |
CN101563927A (zh) | 用于对视频图像的块进行解码的方法 | |
US20080259089A1 (en) | Apparatus and method for performing motion compensation by macro block unit while decoding compressed motion picture | |
CN101365136B (zh) | 帧内预测的方法及装置 | |
KR101274112B1 (ko) | 영상 부호화 장치 | |
US20160050431A1 (en) | Method and system for organizing pixel information in memory | |
JP4735471B2 (ja) | 復号処理装置及び復号処理方法並びに復号処理プログラム | |
EP1147671A1 (en) | Method and apparatus for performing motion compensation in a texture mapping engine | |
KR20200002038A (ko) | 비디오 이미지 처리 방법 및 장치 | |
JP4419608B2 (ja) | 動画像符号化装置 | |
JP2000069469A (ja) | 動画像符号化方法とシステム及び動画像復号方法とシステム | |
CN116600134A (zh) | 一种适配图形引擎的并行视频压缩方法和装置 | |
US20110110430A1 (en) | Method for motion estimation in multimedia images | |
WO2022116824A1 (zh) | 视频解码方法、视频编码方法、相关设备及存储介质 | |
JP4488805B2 (ja) | 動きベクトル検出装置および方法 | |
JP2000069478A (ja) | 画像処理装置及び方法並びに記憶媒体 | |
CN1113638A (zh) | 用于运动补偿视像解码器的存储系统 | |
JP2005244845A (ja) | 動画像処理装置 | |
JP2006166308A (ja) | 復号化装置及び復号化方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20120802 Year of fee payment: 7 |
|
FPAY | Annual fee payment |
Payment date: 20130801 Year of fee payment: 8 |
|
FPAY | Annual fee payment |
Payment date: 20140811 Year of fee payment: 9 |
|
FPAY | Annual fee payment |
Payment date: 20150730 Year of fee payment: 10 |
|
LAPS | Lapse due to unpaid annual fee |