KR20050078519A - 병렬 처리 구조를 갖는 낮은 메모리 대역폭의 동영상 압축장치 및 그 처리 방법 - Google Patents

병렬 처리 구조를 갖는 낮은 메모리 대역폭의 동영상 압축장치 및 그 처리 방법 Download PDF

Info

Publication number
KR20050078519A
KR20050078519A KR1020040006680A KR20040006680A KR20050078519A KR 20050078519 A KR20050078519 A KR 20050078519A KR 1020040006680 A KR1020040006680 A KR 1020040006680A KR 20040006680 A KR20040006680 A KR 20040006680A KR 20050078519 A KR20050078519 A KR 20050078519A
Authority
KR
South Korea
Prior art keywords
memory
motion
unit
motion estimation
local memory
Prior art date
Application number
KR1020040006680A
Other languages
English (en)
Inventor
박현상
신선영
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020040006680A priority Critical patent/KR20050078519A/ko
Publication of KR20050078519A publication Critical patent/KR20050078519A/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods 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/43Hardware specially adapted for motion estimation or compensation
    • H04N19/433Hardware specially adapted for motion estimation or compensation characterised by techniques for memory access
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods 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/436Methods 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 using parallelised computational arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/625Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using discrete cosine transform [DCT]

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Discrete Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

본 발명은 병렬 처리 구조를 갖는 낮은 메모리 대역폭의 동영상 압축 장치 및 그 처리 방법에 관한 것이다. 본 발명의 동영상 압축 장치는 워킹 메모리와, 다수의 로컬 메모리를 구비한다. 본 발명에 의하면, 동영상 압축 처리 단계 중 계산량이 가장 많은 움직임 추정 단계와, 이를 제외한 나머지 단계들을 동시에 구동시키는 병렬 처리 구조를 가지게 함으로써, 매크로 블럭당 처리 시간을 현저하게 감소시킨다. 또한, 본 발명의 동영상 압축 장치는 압축 시간의 단축으로 인하여 전력 소모를 줄일 수 있어 모바일 시스템에 적합하다.

Description

병렬 처리 구조를 갖는 낮은 메모리 대역폭의 동영상 압축 장치 및 그 처리 방법{VIDEO DATA COMPRESSION APPARATUS WITH LOW MEMORY BANDWIDTH FOR PARALLEL PROCESSING AND METHOD OF THE SAME}
본 발명은 동영상 압축 장치에 관한 것으로, 좀 더 구체적으로는 병렬처리 구조를 갖는 낮은 메모리 대역폭의 동영상 압축 장치 및 그 처리 방법에 관한 것이다.
동영상 압축 표준은 매크로 블럭 단위로 움직임 추정, 움직임 보상, 양자화, 이산여현 부호화 및 가변 길이 부호화와 같은 기능들을 거쳐 처리된다. 이 기능들을 수행할 때, 동영상 압축 장치는 외부 메모리를 통하지 않고 소용량의 로컬 메모리를 효과적으로 운용함으로써, 낮은 메모리 대역폭을 갖는다.
이에 대한 특허가 동일 발명자에 의해 기출원된 국내특허 출원번호 제 2003-5839호(출원일 : 2003년 1월 29일)의 '낮은 메모리 대역폭을 가지는 모바일 향 동영상 압축 장치'이다. 이에 대한 동영상 압축 장치의 구조가 도 1에 개시되어 있다.
도 1을 참조하면, 복수 개의 로컬 메모리(4, 6 및 8)를 이용하는 동영상 압축 장치(2)는, 움직임 추정부(10), 모드 결정부(16), 움직임 보상부(18), 이산여현부호화/역이산여현 부호화부(20), 양자화/역양자화부(22), 가변길이 부호화부(24), 합성부(26), 로컬 및 워킹 메모리(4, 6 및 8)를 포함한다.
움직임 추정부(10)는 정수 및 반화소 단위 움직임 추정부(12, 14)를 포함하며, 현재 매크로 블럭의 움직임 벡터를 결정한다. 모드 결정부(16)는 현재 매크로 블럭의 화면내 부호화 및 화면간 부호화 모드를 결정한다. 움직임 보상부(18)는 현재 매크로 블럭과 움직임 벡터에 의해 결정되는 이전 프레임의 매크로 블럭의 차를 생성한다. 움직임 보상의 결과는 이산여현부호화/역이산여현부호화부(20) 및 양자화/역양자화부(22)를 거쳐 가변길이 부호화부(24)로 전달된다. 가변길이 부호화부(24)는 양자화 결과를 지그재그 스캔 순서로 읽어 내어 허프만 부호로 가변길이 부호화하여 비트 스트림을 생성하고, 이 출력 비트 스트림을 DMA(30)를 통해 외부 메모리(미도시됨)로 전달한다.
로컬 메모리(4, 6 및 8)를 운영하는 동영상 압축 장치(2)의 동영상 처리 순서를 살펴보면, 도 2에 도시된 바와 같이, 우선 현재 매크로 블럭과 탐색 영역 블럭을 워킹 메모리(8)에 저장한다(S40). 예를 들어, DMA(30)를 통해 현재 매크로 블럭의 휘도 성분 16 x 16 = 256 바이트, 현재 매크로 블럭의 생상 성분 8 x 8 x 2 = 128 바이트, 탐색 영역 블럭 휘도 성분 48 x 48 = 2304 바이트의 데이터를 워킹 메모리(8)로 읽어 온다.
움직임 추정부(10)는 정수 및 반화소 단위의 움직임을 추정하여 탐색 영역 블럭 중 현재 매크로 블럭과 가장 움직임이 유사한 블럭을 결정하고 그 블럭에 대한 움직임 벡터를 생성한다.
모드 결정부(16)는 현재 매크로 블럭의 모드를 결정한다.
모드 결정부(16)에 의해 현재 매크로 블럭의 모드가 화면간 부호화 모드이면, 움직임 보상부(18)는 외부 메모리에서 움직임 벡터가 가리키는 이전 화면에서의 매크로 블럭의 색상 데이터 (9 x 9 x 2 = 162 바이트)를 외부 메모리에서 읽어 온다(S44, S46). 합성기(26)에 의해 현재 매크로 블럭의 데이터와 이전 매크로 블럭의 데이터 차가 이산여현부호화/역이산여현부호화부(20)로 전달되고 동시에 제 1 로컬 메모리(6)에 저장된다(S42).
모드 결정부(16)에 의해 현재 매크로 블럭의 모드가 화면내 부호화 모드이면 현재 매크로 블럭의 데이터는 이산여현부호화/역이산여현부호화부(20)로 전달된다.
이산여현부호화/역이산여현부호화부(20)로 전달된 움직임 보상 결과는 이산여현부호화 및 양자화를 수행한 후 제 2 로컬 메모리(4)에 저장된다(S48). 그와 동시에 양자화 결과에 대해서 역양자화 및 역이산여현부호화를 수행한다.
합성부(26)는 역양자화 결과와 제 1 로컬 메모리(6)에 저장되어 있는 움직임 보상 결과를 더하여 그 값 즉, 복원된 데이터를 워킹 메모리(8)에 저장한다(S50, S56).
워킹 메모리(8)의 복원된 매크로 블럭은 DMA(30)를 통해 외부 메모리로 전달 된다(S58). 양자화 결과는 허프만 부호화되어 DMA(30)를 통해 외부 메모리에 전달 된다(S54).
움직임 추정 단계는 정수 단위 움직임 추정과 반화소 단위의 움직임 추정으로 구성된다. 정수 단위의 움직임 추정 단계에서는 화소 단위에서 현재 매크로 블럭과 움직임이 가장 유사한 탐색 매크로 블럭을 결정하고, 그 결과를 워킹 메모리(8)에 저장한다. 이후 반화소 단위의 움직임 추정에서 워킹 메모리(8)에 저장된 결과를 이용하여 반화소 단위에서 현재 매크로 블럭과 움직임이 가장 유사한 탐색 매크로 블럭을 찾아 그 블럭의 움직임 벡터를 결정한다.
위의 순서로 동영상 압축을 수행할 때, 각 단계별로 소요되는 처리 시간은 표 1과 같다. 표 1에서 DMA(30)를 통해 외부 메모리를 이용할 때, CAS 레이턴시(Latency)는 10 클럭 사이클(clock cycle)로 주었다.
처리 단계 소요 시간 (단위:클럭 사이클)
현재 매크로 블럭/탐색영역 휘도 데이터 읽기 1056
정수단위 움직임 추정 2494
반화소 단위 움직임 추정 820
움직임 보상/이산여현부호화/양자화/가변길이부호화 2180
합계 6550
표 1을 참도하면, 매크로 블럭당 동영상 압축 소요되는 시간은 정수 단위 움직임 추정 단계가 가장 많이 차지하며, 전체 시간은 현재 매크로 블럭 및 탐색 블럭의 휘도 데이터를 읽어 오는데 소요되는 시간, 정수 단위 움직임 추정 단계의 소요 시간, 반화소 단위 움직임 추정 단계의 소요 시간 그리고 그 이후 단계의 소요 시간으로 구성된다.
따라서 로컬 메모리를 이용한 상기 동영상 압축 장치(2)는 움직임 추정, 움직임 보상, 이산여현부호화, 양자화, 가변장 부호화를 순차적으로 수행함으로 매크로 블럭당 처리 시간은 각 단계에서 소요되는 시간의 합이 된다.
그러나 상기 동영상 압축 장치(2)는 정수 단위 움직임 추정 이후 단계에서 워킹 메모리(8)에 저장되어 있는 정수 단위 움직임 추정 결과를 이용하여야 하므로 정수 단위 움직임 추정 단계 이후 순차적으로 실행된다. 그러므로 정수 단위 움직임 추정 시, 정수 단위 움직임 추정부(12) 그 이외의 구성 요소에서는 아무런 동작을 하지 않게 된다.
그 결과, 종래 기술의 동영상 압축 장치는 순차적인 처리에 의해 동영상 압축을 위한 소요 시간이 증가하게 되고, 상기 동영상 압축 장치를 구비하는 모바일 시스템의 전력 소모가 증대되는 문제점이 있다.
본 발명의 목적은 상술한 문제점을 해결하기 위한 것으로, 동영상 압축 소요 시간을 줄이기 위하여 병렬 처리 가능한 낮은 메모리 대역폭을 갖는 동영상 압축 장치를 제공하는데 있다.
이를 위해 본 발명은 로컬 메모리를 운용한 동영상 압축 장치에서 동영상 압축 처리 단계 중 계산량이 가장 많은 움직임 추정 단계와, 이를 제외한 나머지 단계들을 동시에 구동시키는 병렬 처리 구조를 가지게 함으로써, 매크로 블럭당 처리 시간을 현저하게 감소시키고자 한다.
본 발명의 다른 목적은 상술한 문제점을 해결하기 위한 것으로, 메모리 복사를 통해 움직임 추정 단계와 나머지 단계를 병렬로 처리하는 방법을 제공하는데 있다.
이에 본 발명은 워킹 메모리에 저장된 매크로 블럭 및 탐색 영역 휘도 데이타와 정수 단위 움직임 추정 결과를 임의의 로컬 메모리에 복사한 후, 현재 매크로 블럭의 반화소 단위 움직임 추정 단계부터는 워킹 메모리를 이용하는 것이 아니라 복사한 메모리를 이용하고 동시에 다음 매크로 블럭의 정수 단위 움직임 추정을 병렬로 처리함으로써 매크로 블럭 당 동영상 압축 처리 시간을 감소시키는 방법을 구현한다.
상술한 목적을 달성하기 위한 본 발명의 일 특징에 의하면, 압축할 동영상 데이터 또는 압축된 비트 스트림을 저장하는 외부 메모리와, 상기 외부 메모리를 억세스 제어하는 다이렉트 메모리 억세스 컨트롤러를 갖는 동영상 압축 장치는, 상기 동영상 데이터의 현재 매크로 블럭 데이터 및 탐색 영역의 휘도 성분 데이터를 저장하기 위한 워킹 메모리와; 상기 현재 매크로 블럭의 움직임을 정수 단위 및 반화소 단위로 탐색하는 움직임 추정부와; 상기 정수 단위의 움직임 추정 후, 상기 워킹 메모리의 데이터를 복사해 저장하는 제 3 로컬 메모리와; 상기 현재 매크로 블럭이 화면 내 모드인지 화면 간 모드인지를 결정하는 모드 결정부와; 상기 현재 매크로 블럭의 움직임 벡터에 대응하여 움직임 보상을 수행하는 움직임 보상부와; 상기 움직임 보상 결과를 저장하는 제 1 로컬 메모리와; 현재 매크로 블럭과 움직임 벡터가 가리키는 이전 화면의 매크로 블럭 화소간 차이를 이산여현부호화하는 이산여현부호화/역이산여현부호화부와; 매크로 블럭의 이산여현부호화 값을 양자화하는 양자화/역양자화부와; 상기 양자화 결과를 저장하는 제 2 로컬 메모리 및; 상기 움직임 보상 결과와, 상기 양자화 결과를 더하여 복원된 블럭 데이터를 생성하는 합성부 및; 상기 매크로 블럭의 양자화 값을 지그재그 스캔 순서로 부호화하는 가변길이 부호화부를 포함하되; 상기 동영상 압축 장치는 상기 정수 단위의 움직임 추정 후, 상기 워킹 메모리로부터 상기 제 3 로컬 메모리로 메모리 복사하여, 상기 반화소 단위의 움직임 추정 및 그 이후 단계를 상기 제 3 로컬 메모리를 이용해서 처리하고, 동시에 다음 매크로 블럭의 정수 단위 움직임 추정을 상기 워킹 메모리를 이용하여 병렬 처리한다.
이 특징의 바람직한 실시예에 있어서, 상기 워킹 메모리로부터 상기 제 3 로컬 메모리로 메모리 복사를 위하여, 상기 워킹 메모리의 독출 및 상기 제 3 로컬 메모리의 기입을 위한 메모리 신호들을 생성하는 메모리 신호 제어부를 더욱 포함한다.
상술한 목적을 달성하기 위한 본 발명의 다른 특징에 의하면, 다수의 로컬 메모리 및 워킹 메모리를 구비하는 동영상 압축 장치의 병렬 처리 방법은, 현재 매크로 블럭 데이터 및 탐색 영역의 휘도 성분 데이터를 외부 메모리에서 상기 워킹 메모리로 독출하는 단계와; 정수 단위의 움직임 추정 결과를 상기 워킹 메모리에 저장하는 단계와; 상기 워킹 메모리에 저장된 현재 매크로 블럭 데이터, 탐색 영역의 휘도 성분 데이터 및 상기 정수 단위의 움직임 추정 결과를 상기 로컬 메모리 중 하나의 로컬 메모리에 복사하는 단계 및; 상기 반화소 단위의 움직임 추정 및 그 이후 단계를 상기 하나의 로컬 메모리를 이용해서 처리하고, 동시에 다음 매크로 블럭의 정수 단위 움직임 추정을 상기 워킹 메모리를 이용하여 처리하는 단계를 순차적으로 병렬 처리한다.
이 특징의 바람직한 실시예에 있어서, 상기 현재 매크로 블럭이 한 화면의 첫 번째 매크로 블럭이 아닌 경우, 상기 현재 매크로 블럭 데이터 및 상기 탐색 영역의 휘도 성분 데이터를 상기 외부 메모리에서 상기 워킹 메모리로 독출하는 단계부터 상기 워킹 메모리의 데이터를 상기 하나의 로컬 메모리에 복사하는 단계를 포함하는 상기 정수 단위의 움직임 추정 단계 및; 상기 반화소 단위의 움직임 추정 단계 및 그 이후의 처리 단계를 상기 하나의 로컬 메모리를 이용하여 동시에 수행한다.
따라서 본 발명에 의하면, 워킹 메모리로부터 제 3 로컬 메모리로 메모리 복사하여 움직임 추정 단계와, 이 후 나머지 처리 단계를 병렬로 처리한다.
이하 본 발명의 실시예를 첨부된 도면에 의거하여 상세히 설명한다.
도 3은 본 발명의 실시예에 따른 로컬 메모리를 운용하여 낮은 메모리 대역폭을 실현한 동영상 압축 장치의 구성을 나타태는 블럭도이다.
도면을 참조하면, 상기 동영상 압축 장치(100)는 정수 단위 움직임 추정부(112)와, 반화소 단위 움직임 추정부(114)를 포함하는 움직임 추정부(110)와, 현재 매크로 블럭 및 탐색 영역의 휘도 데이터와 정수단위 움직임 추정 결과를 저장하는 워킹 메모리(106)와, 제 1 및 제 2 로컬 메모리(104, 102)와, 워킹 메모리(106)로부터 정수 단위 움직임 추정 결과를 메모리 복사하기 위한 제 3 로컬 메모리(108)와, 모드 결정부(116)와, 움직임 보상부(118)와, 이산여현화부호/역이산여현화부호부(120)와, 양자화/역양자화부(122), 가변길이 부호화부(124) 및 합성부(126)를 포함한다. 그리고 상기 동영상 압축 장치(100)는 DMA(130)를 통하여 외부 메모리(미도시됨)를 억세스한다.
상기 워킹 메모리(106)는 외부 메모리(미도시됨)로부터 DMA(130)를 통하여 압축할 동영상 데이터 또는 압축된 비트 스트림을 저장한다.
상기 동영상 압축 장치(100)는 먼저, 정수 단위 움직임 추정 단계(도 4의 S200) 후, 워킹 메모리(106)로부터 데이터를 독출하여 제 3 로컬 메모리(108)로 메모리 복사하고(S202), 제 3 로컬 메모리(108)를 이용하여 반화소 단위 움직임 추정 및 그 이후 단계(도 4의 S204 ~ S222)를 순차적으로 수행한다. 따라서 상기 동영상 압축 장치(100)는 워킹 메모리(106)로부터 제 3 로컬 메모리(108)로 메모리 복사를 위하여, 워킹 메모리(106) 및 제 3 로컬 메모리(108)의 억세스를 제어하는 신호들을 생성하는 메모리 신호 제어부(미도시됨)를 더 구비하는 것이 바람직하다.
상기 동영상 압축 장치(100)에 대한 동작 타이밍이 도 4에 도시되어 있다. 이 순서에 의한 순차적인 처리는 매크로 블럭당 처리 시간을 제 1 및 제 2 로컬 메모리를 운용하는 동영상 압축 장치가 필요로 하는 처리 시간에 메모리 복사를 실행하는데 필요한 시간(예컨대, 770 클럭 사이클)을 더 요구한다(S202). 표 2는 메모리 복사에 의해 증가한 매크로 블럭당 동영상 압축 시간을 보여 준다. 여기에서도 표 1과 마찬가지로 DMA(130)를 통해 외부 메모리를 이용할 때, CAS 레이턴시(Latency)는 10 클럭 사이클(clock cycle)로 주었다.
처리 단계 소요 시간 (단위:클럭 사이클)
현재 매크로 블럭/탐색영역 휘도 데이터 읽기 1056
정수 단위 움직임 추정 2494
메모리 복사 770
반화소 단위 움직임 추정 820
움직임 보상/이산여현부호화/양자화/가변길이부호화 2180
합계 7320
도 4의 동작 타이밍에서, 현재 매크로 블럭의 반화소 단위 움직임 추정 단계 및 그 이후 단계가 동작하는 동안(S204 ~ S222)에 다음 매크로 블럭의 정수 단위 움직임 추정을 처리하게 함으로써, 본 발명의 목적인 병렬 처리 구조의 동영상 압축 장치(100)를 구현할 수 있다.
구체적으로, 도 5를 참조하면, 병렬 처리되는 동영상 압축 장치(100)는 제 1 순차 처리(STEP 1)와 제 2 순차 처리(STEP 2)가 동시에 실행하게 되는데 각각의 처리 순서는 다음과 같다.
제 1 순차 처리(STEP 1)는 n 번째 매크로 블럭의 휘도 데이터와 그 탐색 영역 블럭의 휘도 데이터를 워킹 메모리(106)에 읽어 온다(S400). 워킹 메모리(106)를 이용하여 n 번째 매크로 블럭의 정수 단위 움직임 추정을 실행하고, 그 결과를 워킹 메모리(106)에 저장한다. 이어서 워킹 메모리(106)의 데이터를 제 3 로컬 메모리(108)로 복사한다(S422).
제 2 순차 처리(STEP 2)는 n이 0이 아니면 제 3 로컬 메모리(108)를 이용하여 n-1번째 매크로 블럭의 반화소 단위 움직임 추정을 수행한 후, n-1 번째 매크로 블럭의 움직임 벡터를 결정한다(S402). 모드 결정부(116)는 n-1 번째 매크로 블럭의 모드를 결정한다. 모드 결정부(116)에 의해 n-1 번째 매크로 블럭의 모드가 화면간 부호화 모드이면, 움직임 보상부(118)는 먼저 움직임 벡터가 가리키는 복원된 이전 프레임 매크로 블럭의 색상 데이터를 제 3 로컬 메모리(108)에 읽어 온 후(S406), 제 3 로컬 메모리(108)에 저장된 n-1 번째 매크로 블럭의 색상 데이터와 이전 프레임 매크로 블럭의 색상 데이터를 이용하여 움직임 보상을 수행한다(S408). 움직임 보상의 결과는 이산여현부호화/역이산여현부호화부(120)로 전달되고 동시에 제 1 로컬 메모리(104)에 저장된다(S404).
그리고 모드 결정부(116)에 의해 n-1 번째 매크로 블럭의 모드가 화면 내 부호화 모드이면, n-1 번째 매크로 블럭의 데이터는 이산여현부호화/역이산여현부호화부(120)로 전달된다. 이산여현부호화/역이산여현부호화부(120)로 전달된 움직임 보상 결과는 이산여현부호화 및 양자화를 수행한 후 제 2 로컬 메모리(102)에 저장된다(S410). 그와 동시에 양자화 결과에 대해서 역양자화 및 역이산여현부호화를 수행한다.
합성부(126)는 역양자화 결과와 제 1 로컬 메모리(104)에 저장되어 있는 움직임 보상 결과를 더하여 복원된 데이타를 제 3 로컬 메모리(108)에 저장한다(S418). 제 3 로컬 메모리(108)의 복원된 n-1 번째 매크로 블럭은 DMA(130)를 통해 외부 메모리(미도시됨)로 전달 된다(S420).
또 제 2 로컬 메모리(102)에 저장되어 있는 양자화 결과는 허프만 부호화되어 DMA(130)를 통해 외부 메모리에 전달 된다(S418).
그 결과, 본 발명의 동영상 압축 장치(100)는 제 1 순차 처리(STEP 1)과 제 2 순차 처리(STEP 2)를 병렬로 처리함으로써, 하나의 매크로 블럭을 동영상 압축하는데 소요되는 시간이 표 3에 나타난 바와 같이, 표 1의 소요 시간보다 약 34 % 줄어든다.
처리 단계 소요 시간 (단위:클럭 사이클)
제 1 순차 처리 현재 매크로 블럭/탐색 영역 휘도 데이터 읽기 1056
정수 단위 움직임 추정 2494
메모리 복사 770
합 계 4320
제 2 순차 처리 반화소 움직임 추정 820
움직임 보상/이산여현부호화/양자화/가변길이부호화 2180
합 계 3000
합 계 4320
즉, 본 발명에 의한 동영상 압축 소요 시간은 제 1 순차 처리(STEP 1) 및 제 2 순차 처리(STEP 2) 단계가 병렬로 처리되므로, 이들 소요 시간 중 최대 소요 시간인 4320 클럭 사이클이 전체 소요 시간이 된다.
따라서 본 발명의 동영상 압축 장치(100)는 메모리 복사를 통하여 움직임 추정 단계와, 이 후 나머지 처리 단계를 병렬로 처리함으로써, 동영상 압축 처리 시간을 감소시킨다.
상술한 바와 같이, 본 발명의 동영상 압축 장치는 워킹 메모리에 저장된 매크로 블럭 및 탐색 영역 휘도 데이타와 정수 단위 움직임 추정 결과를 임의의 로컬 메모리에 복사한 후, 현재 매크로 블럭의 반화소 단위 움직임 추정 단계부터는 복사한 메모리를 이용하고 동시에 다음 매크로 블럭의 정수 단위 움직임 추정을 병렬로 처리함으로써 매크로 블럭 당 동영상 압축 처리 시간을 감소시킨다.
또한, 본 발명의 동영상 압축 장치를 구비하는 모바일 시스템에서 동영상 압축 시간 단축 및 그에 따는 전력 소모를 줄일 수 있다.
도 1은 일반적인 동영상 압축 장치의 개략적인 구성을 나타내는 블럭도;
도 2는 도 1에 도시된 동영상 압축 장치의 동작 타이밍도;
도 3은 본 발명에 따른 병렬 처리 구조를 갖는 낮은 메모리 대역폭의 동영상 압축 장치의 구성을 나타내는 블럭도;
도 4는 본 발명에 따른 로컬 메모리를 운용하는 동영상 압축 장치의 메모리 복사 단계를 추가한 동작 타이밍도; 그리고
도 5는 본 발명에 따른 병렬 처리 구조로 동작하는 동영상 압축 장치의 동작 타이밍도이다.
* 도면의 주요 부분에 대한 부호 설명 *
100 : 동영상 압축 장치 102, 104, 108 : 로컬 메모리
106 : 워킹 메모리 110 : 움직임 추정부
116 : 모드 결정부 118 : 움직임 보상부
120 : DCT/IDCT 122 : Q/IQ
124 : 가변길이 부호화부 126 : 합성부
130 : DMA

Claims (4)

  1. 압축할 동영상 데이터 또는 압축된 비트 스트림을 저장하는 외부 메모리와, 상기 외부 메모리를 억세스 제어하는 다이렉트 메모리 억세스 컨트롤러를 갖는 동영상 압축 장치에 있어서:
    상기 동영상 데이터의 현재 매크로 블럭 데이터 및 탐색 영역의 휘도 성분 데이터를 저장하기 위한 워킹 메모리와;
    상기 현재 매크로 블럭의 움직임을 정수 단위 및 반화소 단위로 탐색하는 움직임 추정부와;
    상기 정수 단위의 움직임 추정 후, 상기 워킹 메모리의 데이터를 복사해 저장하는 제 3 로컬 메모리와;
    상기 현재 매크로 블럭이 화면 내 모드인지 화면 간 모드인지를 결정하는 모드 결정부와;
    상기 현재 매크로 블럭의 움직임 벡터에 대응하여 움직임 보상을 수행하는 움직임 보상부와;
    상기 움직임 보상 결과를 저장하는 제 1 로컬 메모리와;
    현재 매크로 블럭과 움직임 벡터가 가리키는 이전 화면의 매크로 블럭 화소간 차이를 이산여현부호화하는 이산여현부호화/역이산여현부호화부와;
    매크로 블럭의 이산여현부호화 값을 양자화하는 양자화/역양자화부와;
    상기 양자화 결과를 저장하는 제 2 로컬 메모리 및;
    상기 움직임 보상 결과와, 상기 양자화 결과를 더하여 복원된 블럭 데이터를 생성하는 합성부와;
    상기 매크로 블럭의 양자화 값을 지그재그 스캔 순서로 부호화하는 가변길이 부호화부를 포함하되;
    상기 동영상 압축 장치는 상기 정수 단위의 움직임 추정 후, 상기 워킹 메모리로부터 상기 제 3 로컬 메모리로 메모리 복사하여, 상기 반화소 단위의 움직임 추정 및 그 이후 단계를 상기 제 3 로컬 메모리를 이용해서 처리하고, 동시에 다음 매크로 블럭의 정수 단위 움직임 추정을 상기 워킹 메모리를 이용하여 처리하는 것을 특징으로 하는 병렬 처리 구조의 로컬 메모리를 운용하는 동영상 압축 장치.
  2. 제 1 항에 있어서,
    상기 워킹 메모리로부터 상기 제 3 로컬 메모리로 메모리 복사를 위하여, 상기 워킹 메모리의 독출 및 상기 제 3 로컬 메모리의 기입을 위한 메모리 신호들을 생성하는 메모리 신호 제어부를 더욱 포함하는 것을 특징으로 하는 동영상 압축 장치.
  3. 다수의 로컬 메모리 및 워킹 메모리를 구비하는 동영상 압축 장치의 병렬 처리 방법에 있어서:
    현재 매크로 블럭 데이터 및 탐색 영역의 휘도 성분 데이터를 상기 외부 메모리에서 상기 워킹 메모리로 독출하는 단계와;
    정수 단위의 움직임 추정 결과를 상기 워킹 메모리에 저장하는 단계와;
    상기 워킹 메모리에 저장된 현재 매크로 블럭 데이터, 탐색 영역의 휘도 성분 데이터 및 상기 정수 단위의 움직임 추정 결과를 상기 로컬 메모리 중 하나의 로컬 메모리에 복사하는 단계 및;
    상기 반화소 단위의 움직임 추정 및 그 이후 단계를 상기 하나의 로컬 메모리를 이용해서 처리하고, 동시에 다음 매크로 블럭의 정수 단위 움직임 추정을 상기 워킹 메모리를 이용하여 처리하는 단계를 순차적으로 수행하는 동영상 압축 장치의 병렬 처리 방법.
  4. 제 3 항에 있어서,
    상기 현재 매크로 블럭이 한 화면의 첫 번째 매크로 블럭이 아닌 경우, 상기 현재 매크로 블럭 데이터 및 상기 탐색 영역의 휘도 성분 데이터를 상기 외부 메모리에서 상기 워킹 메모리로 독출하는 단계부터 상기 워킹 메모리의 데이터를 상기 하나의 로컬 메모리에 복사하는 단계를 포함하는 상기 정수 단위의 움직임 추정 단계 및;
    상기 반화소 단위의 움직임 추정 단계 및 그 이후의 처리 단계를 상기 하나의 로컬 메모리를 이용하여 동시에 수행하는 것을 특징으로 하는 동영상 압축 장치의 병렬 처리 방법.
KR1020040006680A 2004-02-02 2004-02-02 병렬 처리 구조를 갖는 낮은 메모리 대역폭의 동영상 압축장치 및 그 처리 방법 KR20050078519A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020040006680A KR20050078519A (ko) 2004-02-02 2004-02-02 병렬 처리 구조를 갖는 낮은 메모리 대역폭의 동영상 압축장치 및 그 처리 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020040006680A KR20050078519A (ko) 2004-02-02 2004-02-02 병렬 처리 구조를 갖는 낮은 메모리 대역폭의 동영상 압축장치 및 그 처리 방법

Publications (1)

Publication Number Publication Date
KR20050078519A true KR20050078519A (ko) 2005-08-05

Family

ID=37265645

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040006680A KR20050078519A (ko) 2004-02-02 2004-02-02 병렬 처리 구조를 갖는 낮은 메모리 대역폭의 동영상 압축장치 및 그 처리 방법

Country Status (1)

Country Link
KR (1) KR20050078519A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100950042B1 (ko) * 2007-10-17 2010-03-29 한국전자통신연구원 가변 시간 슬롯을 가지는 파이프라인 기법을 이용한 영상 부호화 장치 및 방법
KR100958177B1 (ko) * 2009-01-22 2010-05-14 주식회사 코아로직 영상의 부호화 방법 및 장치

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100950042B1 (ko) * 2007-10-17 2010-03-29 한국전자통신연구원 가변 시간 슬롯을 가지는 파이프라인 기법을 이용한 영상 부호화 장치 및 방법
KR100958177B1 (ko) * 2009-01-22 2010-05-14 주식회사 코아로직 영상의 부호화 방법 및 장치

Similar Documents

Publication Publication Date Title
US8503521B2 (en) Method of digital video reference frame compression
US8009740B2 (en) Method and system for a parametrized multi-standard deblocking filter for video compression systems
US20080063080A1 (en) Hierarchical Motion Estimation Using Original Frame for Sub-Sampled Reference
US20070217702A1 (en) Method and apparatus for decoding digital video stream
US20080260023A1 (en) Digital video encoding and decoding with refernecing frame buffer compression
US20120201308A1 (en) Method for Low Memory Footprint Compressed Video Decoding
JP2009267689A (ja) 動画像符号化装置、及び動画像符号化方法
KR20070028404A (ko) 픽처를 저장하는 방법, 비디오 복호기, 비디오 부호기,휴대 장치 및 컴퓨터 프로그램 제품
JP2006157925A (ja) パイプラインデブロッキングフィルタ
JP3940672B2 (ja) 画像処理装置及び画像処理方法
JPH10271516A (ja) 圧縮符号化装置、符号化方法、復号化装置および復号化方法
US20010021303A1 (en) Video encoding and decoding
KR20060012626A (ko) 비디오 처리 장치 및 방법
KR100681242B1 (ko) 동영상 복호화 방법, 동영상 복호화 장치 및 이를 가지는시스템 온 칩 시스템
KR100598093B1 (ko) 낮은 메모리 대역폭을 갖는 동영상 압축 장치와 그 방법
KR100489040B1 (ko) 동영상 부호화기, 동영상 복호화기에서 슬라이스 메모리와프레임 메모리간의 데이터 처리 방법
KR20050078519A (ko) 병렬 처리 구조를 갖는 낮은 메모리 대역폭의 동영상 압축장치 및 그 처리 방법
JP2003230148A (ja) 画像データ符号化装置
US20070153909A1 (en) Apparatus for image encoding and method thereof
JPWO2002101934A1 (ja) 復号化装置、復号化方法、ルックアップテーブルおよび復号化プログラム
KR100636911B1 (ko) 색도 신호의 인터리빙 기반 동영상 복호화 방법 및 그 장치
EP1298937A1 (en) Video encoding or decoding using recompression of reference frames
JP3861317B2 (ja) 可変長復号装置
JP2010050833A (ja) 映像符号化装置
KR100493476B1 (ko) 영상 부호화 회로

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination