KR20060068270A - 동영상 복호화 방법, 동영상 복호화 장치 및 이를 가지는시스템 온 칩 시스템 - Google Patents

동영상 복호화 방법, 동영상 복호화 장치 및 이를 가지는시스템 온 칩 시스템 Download PDF

Info

Publication number
KR20060068270A
KR20060068270A KR1020040106917A KR20040106917A KR20060068270A KR 20060068270 A KR20060068270 A KR 20060068270A KR 1020040106917 A KR1020040106917 A KR 1020040106917A KR 20040106917 A KR20040106917 A KR 20040106917A KR 20060068270 A KR20060068270 A KR 20060068270A
Authority
KR
South Korea
Prior art keywords
data
macroblock
system memory
memory
video
Prior art date
Application number
KR1020040106917A
Other languages
English (en)
Other versions
KR100681242B1 (ko
Inventor
박현상
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020040106917A priority Critical patent/KR100681242B1/ko
Priority to US11/200,015 priority patent/US20060133512A1/en
Priority to JP2005330689A priority patent/JP2006174429A/ja
Priority to CN2005101317429A priority patent/CN1791220B/zh
Publication of KR20060068270A publication Critical patent/KR20060068270A/ko
Application granted granted Critical
Publication of KR100681242B1 publication Critical patent/KR100681242B1/ko

Links

Images

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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/156Availability of hardware or computational resources, e.g. encoding based on power-saving criteria
    • 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/423Methods 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 characterised by memory arrangements
    • 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/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • 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/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding

Landscapes

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

Abstract

본 발명의 동영상 복호화 방법에 따르면, M (M은 2이상의 정수)개 연속된 제1 매크로 블록-여기서, 상기 제1 매크로 블록은 현재 프레임의 상기 각각의 제1 매크로 블록 데이터와 이전 프레임의 상기 각각의 제1 매크로 블록에 대응되는 위치의 제2 매크로 블록 데이터간의 차이 값을 양자화한 결과가 영(zero)가 되는 조건을 만족하는 경우임-을 검출한다. 상기 M 개의 연속된 제1 매크로 블록 각각에 대응되는 위치의 이전 프레임의 M 개의 제2 매크로블록 데이터를 시스템 메모리로부터 한꺼번에 읽어들인다. 읽어들인 이전 프레임의 M 개의 제2 매크로블록 데이터를 상기 시스템 메모리에 한꺼번에 기록한다. 움직임이 적은 압축 동영상 복호화시 평균 외부 메모리 액세스 사이클 수가 감소되어 동영상 복호화 장치의 전력 절감 효과를 가져올 수 있다.

Description

동영상 복호화 방법, 동영상 복호화 장치 및 이를 가지는 시스템 온 칩 시스템{METHOD OF DECODING MOVING PICTURE, APPARATUS FOR DECODING MOVING PICTURE AND SYSTEM-ON-A-CHIP HAVING THE SAME}
도 1은 종래의 시스템 버스 기반의 동영상 복호기의 블록도를 나타낸다.
도 2는 도1의 동영상 복호기의 동작 순서를 나타낸 타이밍도이다.
도 3은 연속적인 매크로블록들이 Not coded로 판정된 경우의 도1의 동영상 복호기의 동작 순서를 나타낸 타이밍도이다.
도 4는 본 발명의 일실시예에 따른 시스템 버스 기반의 동영상 복호기의 블록도를 나타낸다.
도 5는 본 발명의 일실시예에 따른 3개의 연속적인 매크로블록들이 Not coded로 판정된 경우의 도4의 동영상 복호기의 동작 순서를 나타낸 타이밍도이다.
도 6은 본 발명의 다른 실시예에 따른 4개의 연속적인 매크로블록들이 Not coded로 판정된 경우의 도 4의 동영상 복호기의 동작 순서를 나타낸 타이밍도이다.
도 7은 본 발명의 다른 실시예에 따른 시스템 버스 기반의 동영상 복호기의 블록도를 나타낸다.
도 8은 본 발명의 또 다른 실시예에 따른 시스템 버스 기반의 동영상 복호기의 블록도를 나타낸다.
도 9는 본 발명의 또 다른 실시예에 따른 시스템 버스 기반의 동영상 복호기의 블록도를 나타낸다.
도 10은 본 발명의 일실시예에 따른 시스템 버스 기반의 동영상 복호기를 포함하는 시스템 온 칩(SOC; System On Chip) 시스템의 블록도를 나타낸다.
<도면의 주요 부분에 대한 부호의 설명>
20, 420: 가변장 복호화기 30, 430: 역양자화/역이산여현변환기
40, 440: 영상 복원부 50, 450: 움직임 보상기
60, 460: 메모리 컨트롤러 70, 470: 시스템 버스
80, 480, 1080: 외부 메모리(시스템 메모리)
본 발명은 동영상 복호화 방법, 동영상 복호화 장치 및 이를 가지는 시스템 온 칩 시스템에 관한 것으로, 더욱 상세하게는 움직임이 적은 압축 영상을 복원할 경우 많은 전력을 소모하는 외부 메모리를 액세스하는 횟수를 줄여 전력 소모를 줄이기 위한 동영상 복호화 방법, 동영상 복호화 장치 및 이를 가지는 시스템 온 칩 시스템에 관한 것이다.
MPEG-2, MPEG-4, 또는 H.263과 같은 방식으로 동영상을 복원할 때, 영상은 16x16 크기 (휘도 Y 기준)의 매크로블록 단위로 일련의 작업, 즉 매크로블록 헤더 해석, 움직임 보상(Motion Compensation), 역이산여현 변환(IDCT; Inverse Discrete Cosine Transform), 영상 복원 및 저장 등이 순차적으로 수행된다.
16x16 (또는 8x8) 해상도를 가지는 블록의 움직임을 보상하기 위해서, 프레임 메모리에 저장된 이전 프레임으로부터 최대 17x17 (또는 9x9) 해상도의 블록을 독출한다.
MPEG4나 H.263과 같이 저전송률 기반의 동영상 압축 표준에 의거하여 동영상 압축을 수행할 경우에는, 압축률을 높이기 위해서 많은 매크로 블록에 대해서 Not-coded처리를 한다. Not coded 처리는 현재 프레임의 매크로 블록의 Y, Cb 또는 Cr 블록 데이터와 현재 프레임의 매크로 블록에 대응되는 위치의 이전 프레임의 매크로 블록의 Y, Cb 또는 Cr 블록 데이터의 차이가 전송할 필요가 없을 만큼 충분히 작은 경우에 이루어진다. 구체적으로, Not coded 처리는 현재 프레임의 매크로 블록의 움직임 벡터가 영(zero)이고, DPCM(Differential Pulse Code Modulation)에 의해 현재 프레임의 매크로 블록의 Y, Cb 또는 Cr 블록 데이터와 현재 프레임의 매크로 블록에 대응되는 위치의 이전 프레임의 매크로 블록의 Y, Cb 또는 Cr 블록 데이터간의 차이 값을 양자화한 결과가 영(zero)인 경우에 이루어진다. 예를 들어, 동영상에 있어서 배경에 해당되는 부분은 이전 화면과 현재 화면 사이에 변화가 없으므로 Not coded 매크로 블록으로 처리할 수 있다.
또한, 움직임벡터의 전송량을 감축하기 위해서, 인접한 매크로블록과의 움직임 벡터 차이를 최소화하는 방향으로 움직임 벡터를 코딩한다. 이와 같은 움직임 벡터 코팅 기법을 적용하면, 인접 매크로블록과 동일한 움직임 벡터를 가지는 경향이 매우 높아진다. 또한, 높은 양자화 인자(Quantization Factor 또는 Quantization step)를 적용함에 따라, 이전 프레임의 매크로 블록 데이터를 현재 매크로 블록의 복원 영상으로 직접 사용하는 빈도가 증가하게 된다.
도 1은 종래의 시스템 버스 기반의 동영상 복호기의 블록도이고, 도 2는 도1의 동영상 복호기의 동작 순서를 나타낸 타이밍도이다.
도 1을 참조하면, 동영상 복호기(100)는 제1 메모리(LM0; 10), 제2 메모리(LM1; 12), 가변장 복호기(VLD; Variable Length Decoder; 20), 역양자화/역이산여현변환기(IQ/IDCT) (30), 움직임 보상기(MC; Motion Compensator; 50), 영상 복원부(RECON; 40), 메모리 컨트롤러(DMA; Direct Memory Access; 60)를 포함한다. DMA(60)는 시스템 버스(70)를 통하여 외부 메모리, 즉 시스템 메모리(80)와 연결된다.
제1 메모리(10)는 DMA(60)를 통해서 시스템 메모리(80)로부터 압축된 영상의 비트 스트림(bitstream)을 저장한다.
도 1 및 도 2를 참조하면, 먼저 제1 사이클(S11)에서, 가변장 복호기(20)는 제1 메모리(10)로부터 상기 압축 영상의 비트 스트림을 읽어들여 순차적으로 해석하여 가변장 복호화한다. 즉, 가변장 복호기(20)는 8x8 블록 단위로 양자화된 이산여현변환 계수(DCT 계수)를 복원하여 IQ/IDCT(30)로 전달하고, 움직임벡터를 복원한다.
다음, 제2 사이클(S12)에서, DMA(60)는 상기 움직임벡터에 대응하는 움직임 보상을 위한 참조 데이터를 시스템 메모리(80)로부터 읽어들여 제2 메모리(12)에 저장한다.
제3 사이클(S13)에서 움직임 보상기(50)는 제2 메모리(12)에 저장된 움직임 벡터에 대응되는 참조 데이터를 입력받아 움직임 보상을 하여 움직임 보상 데이터를 생성한다.
제3 사이클(S13)과 동시에 제4 사이클(S14)에서, 역양자화/역이산여현변환기(IQ/IDCT; 30)는 상기 이산여현변환 계수를 역양자화한 후 역이산여현변환을 수행함으로써 복원 영상을 생성하여 영상 복원부(40)로 전달한다.
제5 사이클(S15)에서, 영상 복원부(40)는 움직임 보상기(50)로부터 제공된 움직임 보상 데이터와 IQ/IDCT(30)로부터 제공된 복원 영상을 합하여 움직임 보상이 된 최종 복원 영상을 생성한다.
제6 사이클(S16)에서 영상 복원부(40)에서 복원된 움직임 보상된 최종 복원 영상은 DMA(60)로 제공되어 시스템 버스(70)를 통하여 시스템 메모리(80)에 저장된다.
상기 제1 내지 제6 사이클에 따른 영상 복원 과정은 매크로 블록 단위로 압축된 모든 영상의 비트 스트림이 복원될 때까지 반복된다.
도 3은 연속적인 매크로블록들이 Not coded로 판정된 경우의 도1의 동영상 복호기의 동작 순서를 나타낸 타이밍도이다.
제1 메모리(10)에는 DMA(60)를 통해서 시스템 메모리(80)로부터 압축 동영상의 비트 스트림(bitstream)이 저장된다.
도 1 및 도 3을 참조하면, 먼저 제1 사이클(S21)에서, 가변장 복호기(20)는 읽어들인 매크로 블록의 헤더를 해석하여 Not coded로 판정된 매크로블록의 영(zero)의 값을 가지는 움직임벡터를 복원한다.
제2 사이클(S22)에서 DMA(60)는 현재 매크로블록의 위치에 대응하는 이전 프레임의 매크로블록 데이터 및 상기 영(zero)의 움직임벡터에 대응하는 데이터를 시스템 메모리(80)로부터 읽어들여 제2 메모리(12)에 저장한다.
제3 사이클(S23)에서 DMA(60)는 제2 메모리(12)에 저장된 매크로 블록 데이터를 시스템 버스(70)를 통하여 시스템 메모리(80)에 기록한다.
상기와 같이 MPEG4나 H.263과 같이 저전송률 기반의 동영상 압축 표준에 의거하여 움직임이 적은 영상을 촬영한 경우 매크로 블록에 대해서 Not-coded처리를 하는 경우가 늘어남에 따라 이전 프레임의 매크로 블록 데이터를 현재 매크로 블록의 복원영상으로 직접 사용하는 빈도가 증가하게 되고, 시스템 버스(70)를 통하여 시스템 메모리(80)를 액세스하는 빈도가 증가하게 된다. 많은 전력을 소모하는 메모리(80)를 액세스하는 횟수가 증가하게 되면 그 만큼 전력 소모가 증가하게 된다.
따라서, 움직임이 적은 압축 영상을 복원할 경우 다수의 연속적인 Not coded 매크로 블록 처리 과정에서 많은 전력을 소모하는 메모리(80)를 액세스하는 횟수를 줄여 전력 소모를 줄일 필요성이 있다.
따라서, 본 발명의 제1 목적은 움직임이 적은 압축 영상을 복원할 경우 많은 전력을 소모하는 외부 메모리를 액세스하는 횟수를 줄여 전력 소모를 줄일 수 있는 동영상 복호화 방법을 제공하는 것이다.
또한, 본 발명의 제2 목적은 움직임이 적은 압축 영상을 복원할 경우 많은 전력을 소모하는 외부 메모리를 액세스하는 횟수를 줄여 전력 소모를 줄일 수 있는 동영상 복호화 장치를 제공하는 것이다.
또한, 본 발명의 제3 목적은 상기 동영상 복호화 장치를 가지는 시스템 온 칩(System-On-A-Chip) 시스템을 제공하는 것이다.
상술한 본 발명의 제1 목적을 달성하기 위한 본 발명의 일측면에 따른 동영상 복호화 방법은 M (M은 2이상의 정수)개 연속된 제1 매크로 블록-여기서, 상기 제1 매크로 블록은 현재 프레임의 상기 각각의 제1 매크로 블록 데이터와 이전 프레임의 상기 각각의 제1 매크로 블록에 대응되는 위치의 제2 매크로 블록 데이터간의 차이 값을 양자화한 결과가 영(zero)가 되는 조건을 만족하는 경우임-을 검출하는 단계; 상기 M 개의 연속된 제1 매크로 블록 각각에 대응되는 위치의 이전 프레임의 M 개의 제2 매크로블록 데이터를 시스템 메모리로부터 한꺼번에 읽어들이는 단계; 및 상기 읽어들인 이전 프레임의 M 개의 제2 매크로블록 데이터를 상기 시스템 메모리에 한꺼번에 기록하는 단계를 포함한다.
또한, 본 발명의 제1 목적을 달성하기 위한 본 발명의 다른 측면에 따른 버스를 통하여 연결된 외부 메모리에 저장된 압축 동영상을 복원하는 방법은 상기 외부 메모리에 저장된 압축 동영상의 비트 스트림을 읽어들여 제1 메모리에 저장하는 단계; M (M은 2이상의 정수)개 연속된 제1 매크로 블록-여기서, 상기 제1 매크로 블록은 현재 프레임의 상기 각각의 제1 매크로 블록 데이터와 이전 프레임의 상기 각각의 제1 매크로 블록에 대응되는 위치의 제2 매크로 블록 데이터간의 차이 값을 양자화한 결과가 영(zero)가 되는 조건을 만족하는 경우임-을 검출하는 단계; 상기 M 개의 연속된 제1 매크로 블록 각각에 대응되는 위치의 이전 프레임의 M 개의 제2 매크로블록 데이터를 상기 외부 메모리로부터 한꺼번에 읽어들이는 단계; 상기 읽어들인 이전 프레임의 M 개의 제2 매크로블록 데이터를 상기 외부 메모리에 한꺼번에 기록하는 단계; 상기 압축 동영상의 비트 스트림의 상기 조건을 만족하지 않는 제3 매크로 블록의 움직임벡터를 복원하는 단계; 상기 제3 매크로 블록의 양자화된 이산여현변환 계수를 복원하는 단계; 상기 복원된 이산여현 계수를 역양자화한 후 역이산여현 변환하여 제1 복원 동영상 데이터를 생성하는 단계; 상기 움직임 벡터에 대응되는 위치의 움직임 보상을 위한 참조 데이터를 상기 외부 메모리로부터 읽어들이는 단계; 상기 참조 데이터를 이용하여 움직임 보상 데이터를 생성하는 단계; 및 상기 움직임 보상 데이터와 상기 제1 복원 동영상 데이터를 이용하여 움직임 보상된 제2 복원 동영상 데이터를 생성하는 단계를 포함한다.
또한, 본 발명의 제2 목적을 달성하기 위한 본 발명의 일측면에 따른 동영상 복호화 장치는 시스템 메모리에 저장된 압축 동영상 비트 스트림을 읽어들여 움직임 벡터를 복원하고 양자화된 이산여현변환계수를 복원하는 가변장 복호기; 상기 복원된 이산여현변환 계수를 역양자화한 후 역이산여현변환을 수행하여 복원 영상을 생성하는 역양자화/역이산여현변환기; 상기 시스템 메모리에 저장되어 상기 복원된 움직임 벡터에 대응되는 움직임 보상을 위한 참조 데이터를 읽어들여 움직임 보상 데이터를 생성하는 움직임 보상기; 상기 복원 영상과 상기 움직임 보상 데이터를 이용하여 움직임 보상된 복원 영상을 생성하는 영상 복원부; 및 시스템 버스를 통하여 상기 시스템 메모리의 액세스를 제어하는 적어도 하나의 메모리 컨트롤러를 포함하되, 상기 가변장 복호기는 M (M은 2이상의 정수)개 연속된 제1 매크로 블록-여기서, 상기 제1 매크로 블록은 현재 프레임의 상기 각각의 제1 매크로 블록 데이터와 이전 프레임의 상기 각각의 제1 매크로 블록에 대응되는 위치의 제2 매크로 블록 데이터간의 차이 값을 양자화한 결과가 영(zero)가 되는 조건을 만족하는 경우임-을 검출하고, 상기 적어도 하나의 메모리 컨트롤러는 상기 M 개의 연속된 제1 매크로 블록 각각에 대응되는 위치의 이전 프레임의 M 개의 제2 매크로블록 데이터를 시스템 메모리로부터 한꺼번에 읽어들이고, 상기 읽어들인 이전 프레임의 M 개의 제2 매크로블록 데이터를 상기 시스템 메모리에 한꺼번에 기록한다.
또한, 본 발명의 제3 목적을 달성하기 위한 본 발명의 일측면에 따른 시스템 온 칩 시스템은 원시 동영상 데이터를 수집하는 영상 취득 모듈; 상기 원시 동영상 데이터를 압축하는 동영상 부호화기; 상기 압축된 동영상을 저장하는 시스템 메모리; 및 상기 압축된 동영상을 시스템 버스를 통하여 상기 시스템 메모리로부터 읽어들여 복호화하는 동영상 복호기를 포함하되, 상기 동영상 복호기는 상기 시스템 메모리에 저장된 압축 동영상 비트 스트림을 읽어들여 상기 압축 동영상 비트 스트림의 매크로 블록의 움직임 벡터를 복원하고 양자화된 이산여현변환계수를 복원하는 가변장 복호기; 상기 복원된 이산여현변환 계수를 역양자화한 후 역이산여현변환을 수행하여 복원 영상을 생성하는 역양자화/역이산여현변환기; 상기 시스템 메모리에 저장되어 상기 복원된 움직임 벡터에 대응되는 움직임 보상을 위한 참조 데이터를 읽어들여 움직임 보상 데이터를 생성하는 움직임 보상기; 상기 복원 영상과 상기 움직임 보상 데이터를 이용하여 움직임 보상된 복원 영상을 생성하는 영상 복원부; 및 상기 시스템 버스를 통하여 상기 시스템 메모리의 액세스를 제어하는 적어도 하나의 메모리 컨트롤러를 포함하며, 상기 가변장 복호기는 M (M은 2이상의 정수)개 연속된 제1 매크로 블록-여기서, 상기 제1 매크로 블록은 현재 프레임의 상기 각각의 제1 매크로 블록 데이터와 이전 프레임의 상기 각각의 제1 매크로 블록에 대응되는 위치의 제2 매크로 블록 데이터간의 차이 값을 양자화한 결과가 영(zero)가 되는 조건을 만족하는 경우임-을 검출하고, 상기 적어도 하나의 메모리 컨트롤러는 상기 M 개의 연속된 제1 매크로 블록 각각에 대응되는 위치의 이전 프레임의 M 개의 제2 매크로블록 데이터를 시스템 메모리로부터 한꺼번에 읽어들이고, 상기 읽어들인 이전 프레임의 M 개의 제2 매크로블록 데이터를 상기 시스템 메모리에 한꺼번에 기록한다.
본 발명의 동영상 복원 방법은 MPEG-2, MPEG-4 또는 H.263 등의 동영상 압축에 적용될 수 있다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다.
도 4는 본 발명의 일실시예에 따른 시스템 버스 기반의 동영상 복호기의 블록도이고, 도 5는 본 발명의 일실시예에 따른 3개의 연속적인 매크로블록들이 Not coded로 판정된 경우의 도 4의 동영상 복호기의 동작 순서를 나타낸 타이밍도이다.
도 4를 참조하면, 동영상 복호기(400)는 제1 메모리(LM0; 410), 제2 메모리(LM1; 412), 가변장 복호기(VLD; Variable Length Decoder; 420), 역양자화/역이산여현변환기(IQ/IDCT) (430), 움직임 보상기(MC; Motion Compensator; 450), 영상 복원부(RECON; 440) 및 메모리 컨트롤러(DMA; Direct Memory Access; 460)를 포함한다. DMA(460)는 시스템 버스(470)를 통하여 외부 메모리 즉, 시스템 메모리(480)와 연결된다.
이하, M개의 연속적인 매크로블록들이 Not coded로 판정된 경우 본 발명의 일실시예에 따른 동영상 복호기의 동작을 도 4 내지 도6을 참조하여 설명한다.
매크로 블록에는 4개의 Y(휘도) 블록 및 2개의 색차 블록 (Cb 및 Cr)의 6개의 블록이 포함된다.
매크로 블록의 헤더는 부호화 블록 패턴(CBP; Coded Block Pattern), 움직임 벡터 정보(MVD; Motion Vector Data), 양자화 여부, 양자화 사이즈에 대한 정보를 포함한다.
부호화 블록 패턴(CBP)은 이전 프레임의 같은 위치에 있는 매크로 블록에 대해 변화가 있는 것(Coded: 부호화 필요)과 변화가 없는 것(Not coded: 부호화 불필요 또는 DCT 계수의 코드를 가지지 않음)을 소정의 비트 값으로 나타낸다.
구체적으로 현재 프레임의 매크로 블록의 Y, Cb 또는 Cr 블록 데이터가 현재 프레임의 매크로 블록에 대응되는 위치의 이전 프레임의 매크로 블록의 Y, Cb 또는 Cr 블록 데이터의 차이(△)가 소정 값 이하인 경우에 Not coded로 표시된다. 상기 소정 값은 전송할 필요가 없을 만큼 충분히 작은 값을 나타낸다. 즉, 상기 차이(△)가 소정 값 이하인 경우에는 상기 차이 값()을 4, 10, 20과 같은 소정 크기의 양자화 스텝으로 나누어 양자화하면 영(zero)이 된다.
Not coded 조건은 현재 프레임의 매크로 블록의 움직임 벡터가 영(zero)인 동시에 DPCM(Differential Pulse Code Modulation)등에 의해 현재 프레임의 매크로 블록의 Y, Cb 또는 Cr 블록 데이터와 현재 프레임의 매크로 블록에 대응되는 위치의 이전 프레임의 매크로 블록의 Y, Cb 또는 Cr 블록 데이터간의 차이 값을 양자화한 결과가 영(zero)인 경우에 만족된다.
제1 메모리(410)는 DMA(460)를 통해서 시스템 메모리(480)로부터 읽어들인 압축된 영상의 비트 스트림(bitstream)을 저장한다. DMA(460)는 제1 메모리(10)가 비지 않도록 수시로 시스템 메모리(480)로부터 압축 영상의 비트 스트림을 읽어들여 제1 메모리(10)에 보충한다.
먼저, 제1 사이클(S31)에서, 가변장 복호기(420)는 제1 메모리(10)로부터 상기 압축 영상의 비트 스트림을 읽어들여 순차적으로 해석하여 가변장 복호화하고, 상기 읽어들인 매크로 블록의 헤더를 해석하여 매크로 블록이 Not coded 인지 여부를 판단한다. 여기서, 매크로 블록이 Not coded라 함은 매크로 블록 내의 6개의 블록(4개의 Y 성분 블록, 2개의 Cr/Cb 성분 블록) 모두 Not coded 처리가 된 경우를 의미한다.
구체적으로 가변장 복호기(420)는 매크로 블록의 헤더를 해석하여 움직임 벡터를 복원하고, 8x8 블록 단위로 양자화된 이산여현변환 계수를 복원한다. 상기 복 원된 이산여현변환 계수는 IQ/IDCT(430)로 전달된다.
가변장 복호기(420)는 상기 복원된 움직임 벡터를 DMA(460)로 전송한다. 또는, 가변장 복호기(420)는 상기 복원된 움직임 벡터를 움직임 보상부(450)로 직접 전송하고 움직임 보상부(450)에서 상기 움직임 벡터에 대응하는 움직임 보상을 위해 필요한 매크로 블록을 시스템 메모리(480)로부터 읽어들일 수도 있다.
상기 판단 결과, Not coded인 경우에는 Not coded가 아닌 매크로 블록이 나올 때까지 제1 사이클(S31)을 반복한다. 즉, 연속된 M 개의 Not coded 매크로 블록에 대하여 제1 사이클(S31)을 반복한다. 도 5는 가변장 복호기(420)에 의해 연속된 3개의 매크로 블록에 대하여 제1 사이클(S31)이 수행되는 것을 나타낸다.
연속된 M 개의 Not coded 매크로 블록에 대하여 제1 사이클(S31)을 수행한 후, 제2 사이클(S32)에서 DMA(460)에서는 상기 연속된 M 개의 Not coded 매크로 블록 각각에 대하여 현재 프레임의 매크로 블록의 위치에 대응하는 이전 프레임의 매크로블록 데이터를 시스템 메모리(480)를 1회 액세스하여 읽어들여 제2 메모리(412)에 저장한다. 연속된 M 개의 Not coded 매크로 블록인 경우에는 움직임 벡터가 영(zero)가 되므로 DMA(460)에서는 현재 프레임의 매크로 블록의 위치에 대응하는 이전 프레임의 매크로블록 데이터를 시스템 메모리(480)로부터 읽어들여 제2 메모리(412)에 저장한다.
즉, DMA(460)가 시스템 메모리(480)를 1번 액세스하여 한꺼번에 M개의 매크로 블록 데이터를 읽어낸다. 예를 들어, Y 성분에 대해서 16x16 블록을 저장하고, Cb/Cr 각 성분에 대해서 8x8 블록을 저장한다. 도 5는 DMA(460)가 시스템 메모리 (480)를 1회의 액세스로 한꺼번에 3개의 매크로 블록 데이터를 읽어내는 동작을 나타낸다.
연속된 M 개의 Not coded 매크로 블록에 대하여 제2 사이클(S32)을 수행한 후, 제3 사이클(S33)에서 DMA(460)는 제2 사이클(S32)에서 제2 메모리(412)에 저장된 매크로블록 데이터를 시스템 메모리(480)를 1회 액세스하여 한꺼번에 기록한다. 즉, DMA(460)는 시스템 메모리(480)를 1번 액세스하여 한꺼번에 M개의 매크로 블록 데이터를 읽어낸다. 도 5는 DMA(460)가 시스템 메모리(480)를 1번 액세스하여 한꺼번에 3개의 매크로 블록 데이터를 기록하는 동작을 나타낸다.
한편, 본 발명의 다른 실시예에 따르면, DMA(460)는 움직임 벡터를 이용하지 않고 상기 연속된 M 개의 Not coded 매크로 블록의 시작 어드레스 및 마지막 어드레스를 이용하여 시스템 메모리(480)를 액세스하여 연속된 M 개의 Not coded 매크로 블록을 읽고 쓰도록 동작 할 수도 있다. 이 경우, 제2 사이클(S32)에서 DMA(460)에서는 상기 연속된 M 개의 Not coded 매크로 블록 각각에 대하여 현재 프레임의 매크로 블록의 위치에 대응하는 이전 프레임의 매크로블록 데이터만을 시스템 메모리(480)를 1회 액세스하여 읽어들여 제2 메모리(412)에 저장하고, 제3 사이클(S33)에서 DMA(460)는 제2 사이클(S32)에서 제2 메모리(412)에 저장된 이전 프레임의 매크로블록 데이터만을 시스템 메모리(480)를 1회 액세스하여 한꺼번에 기록한다.
영상 데이터의 휘도 성분 Y, 색차 성분 Cb/Cr의 각 성분은 시스템 메모리(480)의 개별적인 공간에 연속적으로 저장된다. 따라서, DMA(460)는 SADDR, HS, VS, HSIZE, 동작 모드들과 같은 파라미터를 이용하여 매크로블록 또는 블록 단위로 시스템 메모리(480)를 액세스한다. 여기서, SADDR은 처리해야 할 블록의 최초 데이터의 주소를 나타내며, HS는 읽어야 할 블록의 수평방향 크기를 나타낸다. HS는 8/9/16/17의 값 중의 하나가 사용되거나 16 x M으로 결정될 수 있다. VS는 읽어야 할 블록의 수직방향 크기로서 8/9/16/17의 값으로 제한될 수 있다. HSIZE는 상기 SADDR 주소를 시점으로 저장된 성분의 수평해상도를 나타낸다. 동작 모드는 읽기 또는 쓰기 동작을 지시한다.
DMA(460)는 시스템 메모리(480)를 액세스하기 위한 주소 MADDR을 다음과 같은 절차에 따라 생성할 수 있다.
for (j=0; j<VS; j++){
for (i=0; i<HS; i++){
MADDR = SADDR + j*HSIZE + i;
}
}
(여기서, i,j 는 정수)
다시 도 5를 참조하면, 연속된 M 개의 Not coded 매크로 블록에 대하여 제3 사이클(S32)을 수행한 후, 더 이상 연속된 M 개의 Not coded 매크로 블록이 없는 경우, 제4 사이클(S34)에서 가변장 복호기(410)는 Not coded가 아닌 매크로 블록의 헤더를 해석하여 움직임벡터를 복원하고, 8x8 블록 단위로 양자화된 이산여현변환 계수를 복원한다. 상기 복원된 이산여현변환 계수는 IQ/IDCT(430)로 전달된다. 가변장 복호기(420)는 상기 복원된 움직임 벡터를 DMA(460)로 전송한다. 또는, 가변장 복호기(420)는 상기 복원된 움직임 벡터를 움직임 보상부(450)로 직접 전송하여, 움직임 보상부(450)에서 상기 움직임 벡터에 대응하는 움직임 보상을 위해 필요한 매크로 블록을 시스템 메모리(480)로부터 읽어들일 수도 있다.
제5 사이클(S35)에서 DMA(460)는 상기 복원된 움직임벡터에 대응하는 움직임 보상을 위한 참조 데이터를 시스템 메모리(480)로부터 읽어들여 제2 메모리(412)에 저장한다. 예를 들어 Y 성분에 대해서 17x17 블록을 저장하고, Cb/Cr 각 성분에 대해서 9x9 블록을 저장할 수 있다.
제6 사이클(S36)에서 움직임 보상기(450)는 제2 메모리(412)에 저장된 움직임 벡터에 대응되는 움직임 보상을 위한 참조 데이터를 이용하여 움직임 보상을 수행한다. 예를 들어, 움직임 보상기(450)는 제2 메모리(412)에 저장된 움직임 벡터에 대응되는 움직임 보상을 위한 참조 데이터를 인터폴레이션(interpolation)하여 움직임 보상 데이터를 생성한다.
제6 사이클(S36)과 동시에 제7 사이클(S37)에서, 역양자화/역이산여현변환기(IQ/IDCT; 430)는 복원된 이산여현변환 계수를 역양자화한 후 역이산여현변환을 수행함으로써 복원 영상을 생성하여 영상 복원부(440)로 전달한다.
제8 사이클(S15)에서, 영상 복원부(440)는 움직임 보상기(450)로부터 제공된 움직임 보상 데이터와 IQ/IDCT(430)로부터 제공된 복원 영상을 합하여 움직임 보상 까지 된 최종 복원 영상을 생성한다.
제9 사이클(S39)에서 영상 복원부(440)에서 복원된 최종 복원 영상은 DMA(460)로 제공되어 시스템 버스(470)를 통하여 시스템 메모리(480)에 저장된다.
상기 제1 내지 제9 사이클에 따른 압축된 영상의 복원 과정은 매크로 블록 단위로 압축된 모든 영상의 비트 스트림이 복원될 때까지 반복된다.
도 6은 본 발명의 다른 실시예에 따른 4개의 연속적인 매크로블록들이 Not coded로 판정된 경우의 도 4의 동영상 복호기의 동작 순서를 나타낸 타이밍도이다.
도 4 및 도 6을 참조하면, 먼저, 제1 사이클(S41)에서, 가변장 복호기(420)는 연속된 4 개의 Not coded 매크로 블록에 대하여 가변장 복호화 처리 및 Not coded 인지 여부를 판단한다.
연속된 4 개의 Not coded 매크로 블록에 대하여 제1 사이클(S41)을 수행한 후, 제2 사이클(S42)에서 DMA(460)에서는 상기 연속된 4 개의 Not coded 매크로 블록 각각에 대하여 현재 프레임의 매크로 블록의 위치에 대응하는 이전 프레임의 매크로블록 데이터를 시스템 메모리(480)를 1회 액세스하여 한꺼번에 읽어들여 제2 메모리(412)에 저장한다.
연속된 4 개의 Not coded 매크로 블록에 대하여 제2 사이클(S42)을 수행한 후, 제3 사이클(S43)에서 DMA(460)는 제2 메모리(412)에 저장된 매크로블록 데이터를 시스템 메모리(480)를 1회 액세스하여 한꺼번에 기록한다.
본 발명의 다른 실시예에 따르면, 제2 및 제3 사이클(S42, S43)에서 DMA(460)는 움직임 벡터를 이용하지 않고 상기 연속된 4 개의 Not coded 매크로 블 록의 시작 어드레스 및 마지막 어드레스를 이용하여 시스템 메모리(480)를 액세스하여 연속된 4 개의 Not coded 매크로 블록을 읽고 쓰도록 동작 할 수도 있다. 이 경우, 제2 사이클(S42)에서 DMA(460)에서는 상기 연속된 4 개의 Not coded 매크로 블록 각각에 대하여 현재 프레임의 매크로 블록의 위치에 대응하는 이전 프레임의 매크로블록 데이터만을 시스템 메모리(480)를 1회 액세스하여 읽어들여 제2 메모리(412)에 저장하고, 제3 사이클(S43)에서 DMA(460)는 제2 사이클(S42)에서 제2 메모리(412)에 저장된 이전 프레임의 매크로블록 데이터만을 시스템 메모리(480)를 1회 액세스하여 한꺼번에 기록할 수 있다.
제4 내지 제9 사이클(S44, S45, S46, S47, S48, S49)의 동작은 각각 전술한 도 5의 S34, S35, S36, S37, S38, S39의 동작과 동일하므로 설명을 생략한다.
도 7 내지 도 9는 본 발명의 다른 실시예들에 따른 시스템 버스 기반의 동영상 복호기의 블록도를 나타낸다. 이하, 도 4의 동영상 복호기 구조와 차이점을 설명한다.
도 7을 참조하면, 동영상 복호기(400A)는 도 4와 달리 2개의 DMA를 이용하여 본 발명의 동영상 복호화 방법을 수행한다. DMA1A(460A)는 제1 및 제2 메모리(410, 412)와 연결되어 시스템 메모리(480)를 액세스하여, DMA2A(462A)는 영상 복원부(440)와 연결되어 최종 복원 영상을 시스템 메모리(480)에 기록한다. M 개의 연속된 Not coded 매크로 블록에 대해 시스템 메모리(480)를 액세스하여 한꺼번에 읽고 쓰는 동작을 수행할 경우에는 DMA1A(460A)만 동작하고 DMA2A(462A)는 동작하지 않는다.
도 8을 참조하면, 동영상 복호기(400B)는 도 4와 달리 2개의 DMA를 이용하여 본 발명의 동영상 복호화 방법을 수행한다. DMA1B(460B)는 제2 메모리(412)와 연결되어 시스템 메모리(480)를 액세스하여 M 개의 연속된 Not coded 매크로 블록을 한꺼번에 읽고 쓰는 동작을 수행한다. DMA2B(462B)는 제1 메모리(410) 및 영상 복원부(440)와 연결되어 압축된 동영상을 시스템 메모리(480)로부터 제1 메모리(410)로 읽어들이고 최종 복원 영상을 시스템 메모리(480)에 기록한다. M 개의 연속된 Not coded 매크로 블록에 대해 시스템 메모리(480)를 액세스하여 한꺼번에 읽고 쓰는 동작을 수행할 경우에는 DMA1B(460B)만 동작하고 DMA2B(462B)는 동작하지 않는다.
도 9를 참조하면, 동영상 복호기(400C)는 도 4와 달리 3개의 DMA를 이용하여 본 발명의 동영상 복호화 방법을 수행한다. DMA1C(460C)는 제2 메모리(412)와 연결되어 시스템 메모리(480)를 액세스하여 M 개의 연속된 Not coded 매크로 블록을 한꺼번에 읽고 쓰는 동작을 수행한다. DMA3C(464C)는 제1 메모리(410)에 연결되어 압축된 동영상을 시스템 메모리(480)로부터 제1 메모리(410)로 읽어들인다. DMA2C(462C)는 영상 복원부(440)와 연결되어 최종 복원 영상을 시스템 메모리(480)에 기록한다. M 개의 연속된 Not coded 매크로 블록에 대해 시스템 메모리(480)를 액세스하여 한꺼번에 읽고 쓰는 동작을 수행할 경우에는 DMA1C(460C)만 동작하고 DMA2C(462c) 및 DMA3C(464C)는 동작하지 않는다.
도 7 내지 도 9에 도시된 바와 같이 복수의 DMA를 사용할 경우에는 별도로 복수의 DMA들을 제어하는 DMA 중재기(arbiter; 미도시)를 부가할 수도 있다.
또는, 도 4, 도 7 내지 도 9에 도시된 구조외에도 시스템 메모리(480)에 별 도의 메모리 컨트롤러를 장착하여 본 발명의 동영상 복호화 방법을 수행할 수도 있음은 물론이다.
도 10은 본 발명의 일실시예에 따른 시스템 버스 기반의 동영상 복호기를 포함하는 시스템 온 칩(SOC; System On Chip) 시스템의 블록도를 나타낸다.
도 10을 참조하면, SOC 시스템은 영상 취득 모듈(1010), 동영상 부호화기(1020), 동영상 복호기(1030), 메모리 컨트롤러 DMA1(1040), DMA2(1042), DMA3(1044), 중재기(1050), 시스템 버스(1060) 및 시스템 메모리(1080)를 포함한다.
영상 취득 모듈(330)은 예를 들어 카메라와 인터페이스하여 영상을 취득하는 카메라 인터페이스 또는 터치 스크린으로부터 영상을 취득하는 터치 스크린 처리 모듈등이 될 수 있다. 예를 들어, 카메라 인터페이스는 외부 카메라에서 입력되는 원시 영상 데이터를 시스템 버스(1060)를 통해 대용량 메모리(1080)에 저장하며, 상기 저장된 영상 데이터를 독출하면서 줌-인 동작 및 회전 동작을 수행한다. 이후, 압축에 적합한 크기로 스케일 다운하여 동영상 부호화기(1020)로 전송한다.
DMA1(1040)은 영상 취득 모듈(1010)과 시스템 버스(1060) 사이에 결합되어 영상 취득 모듈(1010)의 시스템 메모리(1080) 액세스를 제어한다.
동영상 압축 모듈(1020)은 영상 취득 모듈(1010)로부터 수집된 영상 데이터를 시스템 메모리(1080)로부터 읽어들여 동영상 압축을 수행하며, 예를 들어 MPEG4 인코더, MPEG2 인코더등이 될 수 있다.
DMA2(1042)는 동영상 압축 모듈(1020)과 시스템 버스(1060) 사이에 결합되어 동영상 압축 모듈(1020)의 시스템 메모리(1080) 액세스를 제어한다.
동영상 복호기(1030) 및 DMAC3(1044)은 도 4의 동영상 복호기(400) 및 DMA(460)에 각각 대응하므로 설명을 생략한다.
중재기(1050)는 시스템 버스(1060)에 연결되어 영상 취득 모듈(1010), 동영상 부호화기(1020), 동영상 복호기(1030) 중 하나만이 시스템 버스(1060)를 액세스하도록 제어한다.
도 10에서는 3개의 DMA(1040, 1042, 1044)를 사용하는 경우를 예시하였으나, 영상 취득 모듈(1010), 동영상 부호화기(1020) 및 동영상 복호기에 연결된 1개의 DMA를 이용하여 동작할 수도 있으며, 또는 2개의 DMA를 사용하여 동작할 수도 있음은 물론이다.
본 발명의 일실시예에 따른 SOC 시스템은 동영상을 복호화시 연속된 M 개의 Not coded 매크로 블록에 대해 시스템 메모리(1080)를 1회만 액세스하여 시스템 메모리(1080)를 통한 읽기 동작 또는 쓰기 동작을 수행할 수 있다. 그 결과, SOC 시스템의 전력 소모를 줄일 수 있다.
본 발명의 실시예들에 따르면, M 개의 연속된 Not coded 매크로 블록당 시스템 메모리 액세스 사이클 수가 감축될 수 있다.
연속적인 Not coded 매크로 블록의 수가 M개일 때, 도 3의 기존의 방식(비교 예)과 도 5의 본 발명의 방식에 의한 시스템 메모리 액세스 사이클 수는 다음과 같다. 이 때, 시스템 메모리로는 지연시간(latency)이 L 사이클(cycle)인 DRAM을 사용하고, 하나의 워드(word)는 4 바이트(bytes)로 구성되었다고 가정한다. 16 픽셀 은 4 워드로 표현이 가능하고, 8 픽셀은 2 워드로 표현이 가능하다.
도 3의 기존의 방식(비교 예) 및 도 5는 각각 3개의 연속된 Not coded 매크로 블록을 복호화하는 경우를 나타낸다.
먼저, 도 3의 기존의 방식(비교 예)을 적용하면, 16 x 16 픽셀의 휘도 성분 Y의 읽기에는 16 x (L + 4) 사이클이 요구되며, 16 x 16 휘도 성분 Y의 쓰기에는 16 x (L + 4) 사이클이 요구된다. 따라서, 16 x 16 휘도 성분 Y의 읽기 및 쓰기 동작에는 32 x (L + 4) 사이클이 요구된다.
8 x 8 픽셀의 색차 성분 Cb/Cr의 읽기 동작에는 (8 x (L + 2)) x 2의 사이클이 요구되며, 8 x 8 픽셀의 색차 성분 Cb/Cr의 쓰기 동작에는 (8 x (L + 2)) x 2의 사이클이 요구된다. 따라서, 8 x 8 픽셀의 색차 성분 Cb/Cr의 읽기 및 쓰기 동작에는 32 x (L+2) 사이클이 요구된다. 따라서, M 개의 매크로 블록에 대해서는 총 (64 x L + 192) x M 사이클 = 192 x M + 64 x L x M 사이클이 필요하다. 즉, 매크로 블록당 평균 시스템 메모리의 억세스 사이클 수는 192 + 64 x L 사이클이다.
반면에, 본 발명의 일 실시예에 따른 도 5의 방식을 적용하면, M 개의 연속된 Not coded 매크로 블록이 존재할 경우 (16 x M) x 16 휘도 성분 Y의 읽기 동작에는 16 x (4 x M + L)의 사이클이 필요하며, (16 x M) x 16 휘도 성분 Y의 쓰기 동작에는 16 x (4 x M + L) 사이클이 필요하다. 따라서, (16 x M) x 16 휘도 성분 Y의 읽기 및 쓰기 동작에는 32 x (4 x M + L) 사이클이 필요하다.
(8 x M) x 8 색차 성분 Cb/Cr의 읽기 동작에는 2 x (8 x (2 x M + L) 사이클이 필요하며, (8 x M) x 8 색차 성분 Cb/Cr의 쓰기 동작에는 16 x (2 x M + L) 사 이클이 필요하다. 따라서, (8 x M) x 8 색차 성분 Cb/Cr의 읽기 및 쓰기 동작에는 총 32 x (2 x M + L)사이클이 필요하다. 따라서, M 개의 매크로 블록에 대해서는 6 x 32 x M + 64 x L = 192 x M + 64 x L 사이클이 필요하다. 즉, 매크로 블록당 평균 시스템 메모리의 억세스 사이클 수는 192 + 64 x L ÷ M 사이클이다.
표1은 연속되는 Not coded 매크로 블록의 개수 M 값이 변함에 따른 매크로 블록당 평균 시스템 메모리의 억세스 사이클 수를 나타낸다. 메모리 지연시간 L은 10이라고 가정하였다.
M 비교예 본 발명
1 832 832
2 832 512
3 832 405.3
5 832 320
10 832 256
22 832 221
화상회의 또는 영상전화 시스템에서 사용되는 비디오 형식인 공통 중간 포맷(CIF; Common Intermediate Format)급 영상의 경우, 수평방향으로 22개의 매크로블록이 있으며, 움직임이 적은 영상을 촬상할 경우에는 22개의 매크로블록이 모두 not coded로 처리될 수 있다. CIF 급 영상의 경우 기존 방식을 적용할 경우보다 본 발명을 적용할 경우 매크로 블록당 평균 시스템 메모리 액세스 사이클 수는 최대 73.4%까지 감축될 수 있다.
상기와 같은 동영상 복호화 방법, 동영상 복호화 장치 및 이를 가지는 시스 템 온 칩 시스템에 따르면, 움직임이 적은 압축 동영상을 복호화시 이전 프레임의 대응되는 위치의 매크로 블록 데이터와 동일한 데이터를 가지는 연속된 M 개의 매크로 블록이 빈번하게 발생하는 경우 상기 M 개의 연속된 매크로 블록당 평균 외부 메모리 액세스 사이클 수가 감소된다.
따라서, 가장 많은 전력을 소모하는 상기 외부 메모리 액세스 사이클 수의 감소는 전체적인 동영상 복호화 장치에 있어서 전력 절감 효과를 가져온다.
또한, 상기 동영상 복호화 장치를 사용하는 SOC 시스템에서의 전력 절감 효과를 가져온다.
이상 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.

Claims (19)

  1. M (M은 2이상의 정수)개 연속된 제1 매크로 블록-여기서, 상기 제1 매크로 블록은 현재 프레임의 상기 각각의 제1 매크로 블록 데이터와 이전 프레임의 상기 각각의 제1 매크로 블록에 대응되는 위치의 제2 매크로 블록 데이터간의 차이 값을 양자화한 결과가 영(zero)가 되는 조건을 만족하는 경우임-을 검출하는 단계;
    상기 M 개의 연속된 제1 매크로 블록 각각에 대응되는 위치의 이전 프레임의 M 개의 제2 매크로블록 데이터를 시스템 메모리로부터 한꺼번에 읽어들이는 단계; 및
    상기 읽어들인 이전 프레임의 M 개의 제2 매크로블록 데이터를 상기 시스템 메모리에 한꺼번에 기록하는 단계를 포함하는 것을 특징으로 하는 동영상 복호화 방법.
  2. 제1항에 있어서, 상기 M 개의 제2 매크로블록 데이터는 상기 시스템 메모리를 1회 액세스하여 한꺼번에 읽어들이는 것을 특징으로 하는 동영상 복호화 방법.
  3. 제2항에 있어서, 상기 M 개의 제2 매크로블록 데이터는 시스템 버스를 통하여 상기 시스템 메모리로부터 한꺼번에 읽어들이는 것을 특징으로 하는 동영상 복호화 방법.
  4. 제1항에 있어서, 상기 읽어들인 M 개의 제2 매크로블록 데이터는 상기 시스템 메모리를 1회 액세스하여 한꺼번에 기록하는 것을 특징으로 하는 동영상 복호화 방법.
  5. 제4항에 있어서, 상기 읽어들인 M 개의 제2 매크로블록 데이터는 상기 시스템 버스를 통하여 상기 시스템 메모리에 한꺼번에 기록하는 것을 특징으로 하는 동영상 복호화 방법.
  6. 제1항에 있어서, 상기 한꺼번에 읽어들인 이전 프레임의 M 개의 제2 매크로블록 데이터는 제1 메모리에 저장되는 것을 특징으로 하는 동영상 복호화 방법.
  7. 제1항에 있어서, 상기 M 개 연속된 제1 매크로 블록을 검출하는 단계는
    압축 동영상의 비트 스트림을 읽어들여 상기 압축 동영상의 비트 스트림의 매크로 블록의 헤더를 해석하여 상기 차이 값을 양자화한 결과가 영(zero)가 되는지 여부를 판단하는 것을 특징으로 하는 동영상 복호화 방법.
  8. 제7항에 있어서,
    상기 압축 동영상의 비트 스트림의 매크로 블록이 상기 조건을 만족시키지 않는 경우에는 상기 압축 동영상의 비트 스트림의 매크로 블록의 제2 움직임벡터를 복원하는 단계;
    상기 압축 동영상의 비트 스트림의 매크로 블록의 양자화된 이산여현변환 계수를 복원하는 단계;
    상기 복원된 이산여현 계수를 역양자화한 후 역이산여현 변환하여 제1 복원 동영상 데이터를 생성하는 단계;
    상기 압축 동영상의 비트 스트림의 매크로 블록의 제2 움직임 벡터에 대응되는 위치의 움직임 보상을 위한 제2 참조 데이터를 상기 시스템 메모리로부터 읽어들이는 단계;
    상기 제2 참조 데이터를 이용하여 움직임 보상 데이터를 생성하는 움직임 보상 단계;
    상기 움직임 보상 데이터와 상기 제1 복원 동영상 데이터를 이용하여 움직임 보상된 제2 복원 동영상 데이터를 생성하는 단계를 더 포함하는 것을 특징으로 하는 동영상 복호화 방법.
  9. 제8항에 있어서, 상기 제1 복원 동영상 데이터를 생성하는 단계 및 상기 움직임 보상 단계는 파이프라인 방식으로 수행되는 것을 특징으로 하는 동영상 복호화 방법.
  10. 제1항에 있어서, 상기 읽어들이는 단계는 상기 M 개 연속된 제1 매크로 블록의 시스템 메모리 내의 위치 정보에 기초하여 상기 M 개의 연속된 제1 매크로 블록 각각에 대응되는 위치의 이전 프레임의 M 개의 제2 매크로블록 데이터를 시스템 메 모리로부터 한꺼번에 읽어들이는 것을 특징으로 하는 동영상 복호화 방법.
  11. 제10항에 있어서, 상기 시스템 메모리 내의 위치 정보는 상기 M 개의 제1 매크로 블록 데이터의 상기 시스템 메모리 내의 시작 어드레스를 포함하는 것을 특징으로 하는 동영상 복호화 방법.
  12. 버스를 통하여 연결된 외부 메모리에 저장된 압축 동영상을 복원하는 방법에 있어서,
    상기 외부 메모리에 저장된 압축 동영상의 비트 스트림을 읽어들여 제1 메모리에 저장하는 단계;
    M (M은 2이상의 정수)개 연속된 제1 매크로 블록-여기서, 상기 제1 매크로 블록은 현재 프레임의 상기 각각의 제1 매크로 블록 데이터와 이전 프레임의 상기 각각의 제1 매크로 블록에 대응되는 위치의 제2 매크로 블록 데이터간의 차이 값을 양자화한 결과가 영(zero)가 되는 조건을 만족하는 경우임-을 검출하는 단계;
    상기 M 개의 연속된 제1 매크로 블록 각각에 대응되는 위치의 이전 프레임의 M 개의 제2 매크로블록 데이터를 상기 외부 메모리로부터 한꺼번에 읽어들이는 단계;
    상기 읽어들인 이전 프레임의 M 개의 제2 매크로블록 데이터를 상기 외부 메모리에 한꺼번에 기록하는 단계;
    상기 압축 동영상의 비트 스트림의 상기 조건을 만족하지 않는 제3 매크로 블록의 움직임벡터를 복원하는 단계;
    상기 제3 매크로 블록의 양자화된 이산여현변환 계수를 복원하는 단계;
    상기 복원된 이산여현 계수를 역양자화한 후 역이산여현 변환하여 제1 복원 동영상 데이터를 생성하는 단계;
    상기 움직임 벡터에 대응되는 위치의 움직임 보상을 위한 참조 데이터를 상기 외부 메모리로부터 읽어들이는 단계;
    상기 참조 데이터를 이용하여 움직임 보상 데이터를 생성하는 단계; 및
    상기 움직임 보상 데이터와 상기 제1 복원 동영상 데이터를 이용하여 움직임 보상된 제2 복원 동영상 데이터를 생성하는 단계를 포함하는 것을 특징으로 하는 동영상 복호화 방법.
  13. 시스템 메모리에 저장된 압축 동영상 비트 스트림을 읽어들여 움직임 벡터를 복원하고 양자화된 이산여현변환계수를 복원하는 가변장 복호기;
    상기 복원된 이산여현변환 계수를 역양자화한 후 역이산여현변환을 수행하여 복원 영상을 생성하는 역양자화/역이산여현변환기;
    상기 시스템 메모리에 저장되어 상기 복원된 움직임 벡터에 대응되는 움직임 보상을 위한 참조 데이터를 읽어들여 움직임 보상 데이터를 생성하는 움직임 보상기;
    상기 복원 영상과 상기 움직임 보상 데이터를 이용하여 움직임 보상된 복원 영상을 생성하는 영상 복원부; 및
    시스템 버스를 통하여 상기 시스템 메모리의 액세스를 제어하는 적어도 하나의 메모리 컨트롤러를 포함하되,
    상기 가변장 복호기는 M (M은 2이상의 정수)개 연속된 제1 매크로 블록-여기서, 상기 제1 매크로 블록은 현재 프레임의 상기 각각의 제1 매크로 블록 데이터와 이전 프레임의 상기 각각의 제1 매크로 블록에 대응되는 위치의 제2 매크로 블록 데이터간의 차이 값을 양자화한 결과가 영(zero)가 되는 조건을 만족하는 경우임-을 검출하고,
    상기 적어도 하나의 메모리 컨트롤러는 상기 M 개의 연속된 제1 매크로 블록 각각에 대응되는 위치의 이전 프레임의 M 개의 제2 매크로블록 데이터를 시스템 메모리로부터 한꺼번에 읽어들이고, 상기 읽어들인 이전 프레임의 M 개의 제2 매크로블록 데이터를 상기 시스템 메모리에 한꺼번에 기록하는 것을 특징으로 하는 동영상 복호화 장치.
  14. 제13항에 있어서, 상기 메모리 컨트롤러는 상기 M 개의 제2 매크로블록 데이터를 상기 시스템 메모리를 1회 액세스하여 한꺼번에 읽어들이는 것을 특징으로 하는 동영상 복호화 장치.
  15. 제14항에 있어서, 상기 메모리 컨트롤러는 상기 한꺼번에 읽어들인 이전 프레임의 상기 M 개의 제2 매크로블록 데이터를 제1 메모리에 저장하는 것을 특징으로 하는 동영상 복호화 장치.
  16. 제13항에 있어서, 상기 메모리 컨트롤러는 상기 읽어들인 M 개의 제2 매크로블록 데이터를 상기 시스템 메모리를 1회 액세스하여 한꺼번에 기록하는 것을 특징으로 하는 동영상 복호화 장치.
  17. 제13항에 있어서, 상기 상기 적어도 하나의 메모리 컨트롤러는 상기 M 개 연속된 제1 매크로 블록의 시스템 메모리 내의 위치 정보에 기초하여 상기 M 개의 연속된 제1 매크로 블록 각각에 대응되는 위치의 이전 프레임의 M 개의 제2 매크로블록 데이터를 시스템 메모리로부터 한꺼번에 읽어들이는 것을 특징으로 하는 동영상 복호화 방법.
  18. 원시 동영상 데이터를 수집하는 영상 취득 모듈;
    상기 원시 동영상 데이터를 압축하는 동영상 부호화기;
    상기 압축된 동영상을 저장하는 시스템 메모리; 및
    상기 압축된 동영상을 시스템 버스를 통하여 상기 시스템 메모리로부터 읽어들여 복호화하는 동영상 복호기를 포함하되,
    상기 동영상 복호기는
    상기 시스템 메모리에 저장된 압축 동영상 비트 스트림을 읽어들여 상기 압축 동영상 비트 스트림의 매크로 블록의 움직임 벡터를 복원하고 양자화된 이산여현변환계수를 복원하는 가변장 복호기;
    상기 복원된 이산여현변환 계수를 역양자화한 후 역이산여현변환을 수행하여 복원 영상을 생성하는 역양자화/역이산여현변환기;
    상기 시스템 메모리에 저장되어 상기 복원된 움직임 벡터에 대응되는 움직임 보상을 위한 참조 데이터를 읽어들여 움직임 보상 데이터를 생성하는 움직임 보상기;
    상기 복원 영상과 상기 움직임 보상 데이터를 이용하여 움직임 보상된 복원 영상을 생성하는 영상 복원부; 및
    상기 시스템 버스를 통하여 상기 시스템 메모리의 액세스를 제어하는 적어도 하나의 메모리 컨트롤러를 포함하며,
    상기 가변장 복호기는 M (M은 2이상의 정수)개 연속된 제1 매크로 블록-여기서, 상기 제1 매크로 블록은 현재 프레임의 상기 각각의 제1 매크로 블록 데이터와 이전 프레임의 상기 각각의 제1 매크로 블록에 대응되는 위치의 제2 매크로 블록 데이터간의 차이 값을 양자화한 결과가 영(zero)가 되는 조건을 만족하는 경우임-을 검출하고,
    상기 적어도 하나의 메모리 컨트롤러는 상기 M 개의 연속된 제1 매크로 블록 각각에 대응되는 위치의 이전 프레임의 M 개의 제2 매크로블록 데이터를 시스템 메모리로부터 한꺼번에 읽어들이고, 상기 읽어들인 이전 프레임의 M 개의 제2 매크로블록 데이터를 상기 시스템 메모리에 한꺼번에 기록하는것을 특징으로 하는 시스템 온 칩 시스템.
  19. 제18항에 있어서, 상기 영상 취득 모듈, 동영상 부호화기 및 상기 동영상 복호기가 상기 시스템 메모리를 액세스할 경우 상호 액세스 충돌을 방지하도록 제어하는 중재기를 더 포함하는 것을 특징으로 하는 시스템 온 칩 시스템.
KR1020040106917A 2004-12-16 2004-12-16 동영상 복호화 방법, 동영상 복호화 장치 및 이를 가지는시스템 온 칩 시스템 KR100681242B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020040106917A KR100681242B1 (ko) 2004-12-16 2004-12-16 동영상 복호화 방법, 동영상 복호화 장치 및 이를 가지는시스템 온 칩 시스템
US11/200,015 US20060133512A1 (en) 2004-12-16 2005-08-10 Video decoder and associated methods of operation
JP2005330689A JP2006174429A (ja) 2004-12-16 2005-11-15 ビデオデコーダとその動作方法
CN2005101317429A CN1791220B (zh) 2004-12-16 2005-12-16 视频解码器、以及相关联的操作方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020040106917A KR100681242B1 (ko) 2004-12-16 2004-12-16 동영상 복호화 방법, 동영상 복호화 장치 및 이를 가지는시스템 온 칩 시스템

Publications (2)

Publication Number Publication Date
KR20060068270A true KR20060068270A (ko) 2006-06-21
KR100681242B1 KR100681242B1 (ko) 2007-02-09

Family

ID=36595734

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040106917A KR100681242B1 (ko) 2004-12-16 2004-12-16 동영상 복호화 방법, 동영상 복호화 장치 및 이를 가지는시스템 온 칩 시스템

Country Status (3)

Country Link
US (1) US20060133512A1 (ko)
KR (1) KR100681242B1 (ko)
CN (1) CN1791220B (ko)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100369024C (zh) * 2005-01-17 2008-02-13 北京中星微电子有限公司 直接存储访问控制装置和图像处理系统以及传输方法
TWI277013B (en) * 2005-02-01 2007-03-21 Ind Tech Res Inst Method for reducing buffered-frame memory sizes and accesses in a video codec
US8149918B2 (en) * 2005-11-10 2012-04-03 Electronics And Telecommunications Research Institute Method of estimating coded block pattern and method of determining block mode using the same for moving picture encoder
US7626518B2 (en) * 2006-06-08 2009-12-01 Via Technologies, Inc. Decoding systems and methods in computational core of programmable graphics processing unit
US7626521B2 (en) * 2006-06-08 2009-12-01 Via Technologies, Inc. Decoding control of computational core of programmable graphics processing unit
US7656326B2 (en) * 2006-06-08 2010-02-02 Via Technologies, Inc. Decoding of context adaptive binary arithmetic codes in computational core of programmable graphics processing unit
US7623049B2 (en) * 2006-06-08 2009-11-24 Via Technologies, Inc. Decoding of context adaptive variable length codes in computational core of programmable graphics processing unit
US20090086823A1 (en) * 2007-09-28 2009-04-02 Mediatek Inc. Apparatus and Method for Decoding Multimedia Content According to a Control Signal and System Comprising the Same
US9514768B2 (en) * 2010-08-06 2016-12-06 Samsung Electronics Co., Ltd. Audio reproducing method, audio reproducing apparatus therefor, and information storage medium
WO2013036218A1 (en) * 2011-09-06 2013-03-14 Intel Corporation Analytics assisted encoding
CN111726626B (zh) * 2020-06-18 2022-05-03 格兰菲智能科技有限公司 集成电路及用于视频解码的概率表存储方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5757670A (en) * 1995-07-28 1998-05-26 S3, Incorporated Frame reconstruction for video data compression
KR100200874B1 (ko) * 1996-01-17 1999-06-15 윤종용 움직임 검출에 의한 선택적 기록 장치 및 방법
US5867221A (en) * 1996-03-29 1999-02-02 Interated Systems, Inc. Method and system for the fractal compression of data using an integrated circuit for discrete cosine transform compression/decompression
CN1110963C (zh) * 1997-03-26 2003-06-04 松下电器产业株式会社 图象解码装置
US5946043A (en) * 1997-12-31 1999-08-31 Microsoft Corporation Video coding using adaptive coding of block parameters for coded/uncoded blocks
US6462744B1 (en) * 1998-02-13 2002-10-08 Matsushita Electric Industrial Co., Ltd. Image decoding apparatus that performs image decoding so that frame areas that occupy a large area in a storage apparatus can be used for other purposes, and a recording medium recording an image decoding program
US6542541B1 (en) * 2000-01-12 2003-04-01 Sony Corporation Method and apparatus for decoding MPEG video signals using multiple data transfer units
US6859500B2 (en) * 2001-03-20 2005-02-22 Telefonaktiebolaget Lm Ericsson Run-length coding of non-coded macroblocks
US7020672B2 (en) * 2001-03-30 2006-03-28 Koninklijke Philips Electronics, N.V. Reduced complexity IDCT decoding with graceful degradation
US7034849B1 (en) * 2001-12-31 2006-04-25 Apple Computer, Inc. Method and apparatus for image blending
HUE026930T2 (en) * 2002-03-15 2016-08-29 Nokia Technologies Oy Procedure for encoding motion in a series of images

Also Published As

Publication number Publication date
CN1791220A (zh) 2006-06-21
US20060133512A1 (en) 2006-06-22
KR100681242B1 (ko) 2007-02-09
CN1791220B (zh) 2010-12-01

Similar Documents

Publication Publication Date Title
US20060115002A1 (en) Pipelined deblocking filter
US9509992B2 (en) Video image compression/decompression device
KR101147744B1 (ko) 비디오 트랜스 코딩 방법 및 장치와 이를 이용한 pvr
US11638021B2 (en) Saving minimum macroblock data for subsequent encoding of other macroblocks
KR100681242B1 (ko) 동영상 복호화 방법, 동영상 복호화 장치 및 이를 가지는시스템 온 칩 시스템
KR100192696B1 (ko) 화상 재생 방식 및 장치
JP5496047B2 (ja) 画像再生方法、画像再生装置、画像再生プログラム、撮像システム、および再生システム
US7843993B2 (en) Moving picture encoding apparatus having increased encoding speed and method thereof
KR100968371B1 (ko) 영상의 복호화 방법 및 장치
JP2012085001A5 (ko)
JP3918263B2 (ja) 圧縮符号化装置および符号化方法
JP2000050263A (ja) 画像符号化並びに復号化装置及びこれを用いた撮像装置
JPH0818979A (ja) 画像処理装置
US7092446B2 (en) Compression-encoded data decoding apparatus
US5903672A (en) Method and apparatus for conversion of access of prediction macroblock data for motion picture
US5727091A (en) Video decoder system
JP2898413B2 (ja) 所要メモリ容量の低減化を伴う圧縮ビデオデータ流の復号化及び符号化のための方法
JP2950367B2 (ja) 逆離散余弦変換器におけるデータ出力順序変換方法及び回路
JP2003230148A (ja) 画像データ符号化装置
US6144323A (en) Method and apparatus for decoding video data
JP3990011B2 (ja) 復号画像変換回路および復号画像変換装置
JP2776284B2 (ja) 画像符号化装置
KR100636911B1 (ko) 색도 신호의 인터리빙 기반 동영상 복호화 방법 및 그 장치
JP3141149B2 (ja) 画像符号化装置
Eckart High performance software MPEG video player for PCs

Legal Events

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

Payment date: 20130131

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20140129

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee