KR20060068270A - 동영상 복호화 방법, 동영상 복호화 장치 및 이를 가지는시스템 온 칩 시스템 - Google Patents
동영상 복호화 방법, 동영상 복호화 장치 및 이를 가지는시스템 온 칩 시스템 Download PDFInfo
- 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
Links
Images
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/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/156—Availability of hardware or computational resources, e.g. encoding based on power-saving criteria
-
- 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/423—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 characterised by memory arrangements
-
- 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/44—Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
-
- 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/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods 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
도 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)
- M (M은 2이상의 정수)개 연속된 제1 매크로 블록-여기서, 상기 제1 매크로 블록은 현재 프레임의 상기 각각의 제1 매크로 블록 데이터와 이전 프레임의 상기 각각의 제1 매크로 블록에 대응되는 위치의 제2 매크로 블록 데이터간의 차이 값을 양자화한 결과가 영(zero)가 되는 조건을 만족하는 경우임-을 검출하는 단계;상기 M 개의 연속된 제1 매크로 블록 각각에 대응되는 위치의 이전 프레임의 M 개의 제2 매크로블록 데이터를 시스템 메모리로부터 한꺼번에 읽어들이는 단계; 및상기 읽어들인 이전 프레임의 M 개의 제2 매크로블록 데이터를 상기 시스템 메모리에 한꺼번에 기록하는 단계를 포함하는 것을 특징으로 하는 동영상 복호화 방법.
- 제1항에 있어서, 상기 M 개의 제2 매크로블록 데이터는 상기 시스템 메모리를 1회 액세스하여 한꺼번에 읽어들이는 것을 특징으로 하는 동영상 복호화 방법.
- 제2항에 있어서, 상기 M 개의 제2 매크로블록 데이터는 시스템 버스를 통하여 상기 시스템 메모리로부터 한꺼번에 읽어들이는 것을 특징으로 하는 동영상 복호화 방법.
- 제1항에 있어서, 상기 읽어들인 M 개의 제2 매크로블록 데이터는 상기 시스템 메모리를 1회 액세스하여 한꺼번에 기록하는 것을 특징으로 하는 동영상 복호화 방법.
- 제4항에 있어서, 상기 읽어들인 M 개의 제2 매크로블록 데이터는 상기 시스템 버스를 통하여 상기 시스템 메모리에 한꺼번에 기록하는 것을 특징으로 하는 동영상 복호화 방법.
- 제1항에 있어서, 상기 한꺼번에 읽어들인 이전 프레임의 M 개의 제2 매크로블록 데이터는 제1 메모리에 저장되는 것을 특징으로 하는 동영상 복호화 방법.
- 제1항에 있어서, 상기 M 개 연속된 제1 매크로 블록을 검출하는 단계는압축 동영상의 비트 스트림을 읽어들여 상기 압축 동영상의 비트 스트림의 매크로 블록의 헤더를 해석하여 상기 차이 값을 양자화한 결과가 영(zero)가 되는지 여부를 판단하는 것을 특징으로 하는 동영상 복호화 방법.
- 제7항에 있어서,상기 압축 동영상의 비트 스트림의 매크로 블록이 상기 조건을 만족시키지 않는 경우에는 상기 압축 동영상의 비트 스트림의 매크로 블록의 제2 움직임벡터를 복원하는 단계;상기 압축 동영상의 비트 스트림의 매크로 블록의 양자화된 이산여현변환 계수를 복원하는 단계;상기 복원된 이산여현 계수를 역양자화한 후 역이산여현 변환하여 제1 복원 동영상 데이터를 생성하는 단계;상기 압축 동영상의 비트 스트림의 매크로 블록의 제2 움직임 벡터에 대응되는 위치의 움직임 보상을 위한 제2 참조 데이터를 상기 시스템 메모리로부터 읽어들이는 단계;상기 제2 참조 데이터를 이용하여 움직임 보상 데이터를 생성하는 움직임 보상 단계;상기 움직임 보상 데이터와 상기 제1 복원 동영상 데이터를 이용하여 움직임 보상된 제2 복원 동영상 데이터를 생성하는 단계를 더 포함하는 것을 특징으로 하는 동영상 복호화 방법.
- 제8항에 있어서, 상기 제1 복원 동영상 데이터를 생성하는 단계 및 상기 움직임 보상 단계는 파이프라인 방식으로 수행되는 것을 특징으로 하는 동영상 복호화 방법.
- 제1항에 있어서, 상기 읽어들이는 단계는 상기 M 개 연속된 제1 매크로 블록의 시스템 메모리 내의 위치 정보에 기초하여 상기 M 개의 연속된 제1 매크로 블록 각각에 대응되는 위치의 이전 프레임의 M 개의 제2 매크로블록 데이터를 시스템 메 모리로부터 한꺼번에 읽어들이는 것을 특징으로 하는 동영상 복호화 방법.
- 제10항에 있어서, 상기 시스템 메모리 내의 위치 정보는 상기 M 개의 제1 매크로 블록 데이터의 상기 시스템 메모리 내의 시작 어드레스를 포함하는 것을 특징으로 하는 동영상 복호화 방법.
- 버스를 통하여 연결된 외부 메모리에 저장된 압축 동영상을 복원하는 방법에 있어서,상기 외부 메모리에 저장된 압축 동영상의 비트 스트림을 읽어들여 제1 메모리에 저장하는 단계;M (M은 2이상의 정수)개 연속된 제1 매크로 블록-여기서, 상기 제1 매크로 블록은 현재 프레임의 상기 각각의 제1 매크로 블록 데이터와 이전 프레임의 상기 각각의 제1 매크로 블록에 대응되는 위치의 제2 매크로 블록 데이터간의 차이 값을 양자화한 결과가 영(zero)가 되는 조건을 만족하는 경우임-을 검출하는 단계;상기 M 개의 연속된 제1 매크로 블록 각각에 대응되는 위치의 이전 프레임의 M 개의 제2 매크로블록 데이터를 상기 외부 메모리로부터 한꺼번에 읽어들이는 단계;상기 읽어들인 이전 프레임의 M 개의 제2 매크로블록 데이터를 상기 외부 메모리에 한꺼번에 기록하는 단계;상기 압축 동영상의 비트 스트림의 상기 조건을 만족하지 않는 제3 매크로 블록의 움직임벡터를 복원하는 단계;상기 제3 매크로 블록의 양자화된 이산여현변환 계수를 복원하는 단계;상기 복원된 이산여현 계수를 역양자화한 후 역이산여현 변환하여 제1 복원 동영상 데이터를 생성하는 단계;상기 움직임 벡터에 대응되는 위치의 움직임 보상을 위한 참조 데이터를 상기 외부 메모리로부터 읽어들이는 단계;상기 참조 데이터를 이용하여 움직임 보상 데이터를 생성하는 단계; 및상기 움직임 보상 데이터와 상기 제1 복원 동영상 데이터를 이용하여 움직임 보상된 제2 복원 동영상 데이터를 생성하는 단계를 포함하는 것을 특징으로 하는 동영상 복호화 방법.
- 시스템 메모리에 저장된 압축 동영상 비트 스트림을 읽어들여 움직임 벡터를 복원하고 양자화된 이산여현변환계수를 복원하는 가변장 복호기;상기 복원된 이산여현변환 계수를 역양자화한 후 역이산여현변환을 수행하여 복원 영상을 생성하는 역양자화/역이산여현변환기;상기 시스템 메모리에 저장되어 상기 복원된 움직임 벡터에 대응되는 움직임 보상을 위한 참조 데이터를 읽어들여 움직임 보상 데이터를 생성하는 움직임 보상기;상기 복원 영상과 상기 움직임 보상 데이터를 이용하여 움직임 보상된 복원 영상을 생성하는 영상 복원부; 및시스템 버스를 통하여 상기 시스템 메모리의 액세스를 제어하는 적어도 하나의 메모리 컨트롤러를 포함하되,상기 가변장 복호기는 M (M은 2이상의 정수)개 연속된 제1 매크로 블록-여기서, 상기 제1 매크로 블록은 현재 프레임의 상기 각각의 제1 매크로 블록 데이터와 이전 프레임의 상기 각각의 제1 매크로 블록에 대응되는 위치의 제2 매크로 블록 데이터간의 차이 값을 양자화한 결과가 영(zero)가 되는 조건을 만족하는 경우임-을 검출하고,상기 적어도 하나의 메모리 컨트롤러는 상기 M 개의 연속된 제1 매크로 블록 각각에 대응되는 위치의 이전 프레임의 M 개의 제2 매크로블록 데이터를 시스템 메모리로부터 한꺼번에 읽어들이고, 상기 읽어들인 이전 프레임의 M 개의 제2 매크로블록 데이터를 상기 시스템 메모리에 한꺼번에 기록하는 것을 특징으로 하는 동영상 복호화 장치.
- 제13항에 있어서, 상기 메모리 컨트롤러는 상기 M 개의 제2 매크로블록 데이터를 상기 시스템 메모리를 1회 액세스하여 한꺼번에 읽어들이는 것을 특징으로 하는 동영상 복호화 장치.
- 제14항에 있어서, 상기 메모리 컨트롤러는 상기 한꺼번에 읽어들인 이전 프레임의 상기 M 개의 제2 매크로블록 데이터를 제1 메모리에 저장하는 것을 특징으로 하는 동영상 복호화 장치.
- 제13항에 있어서, 상기 메모리 컨트롤러는 상기 읽어들인 M 개의 제2 매크로블록 데이터를 상기 시스템 메모리를 1회 액세스하여 한꺼번에 기록하는 것을 특징으로 하는 동영상 복호화 장치.
- 제13항에 있어서, 상기 상기 적어도 하나의 메모리 컨트롤러는 상기 M 개 연속된 제1 매크로 블록의 시스템 메모리 내의 위치 정보에 기초하여 상기 M 개의 연속된 제1 매크로 블록 각각에 대응되는 위치의 이전 프레임의 M 개의 제2 매크로블록 데이터를 시스템 메모리로부터 한꺼번에 읽어들이는 것을 특징으로 하는 동영상 복호화 방법.
- 원시 동영상 데이터를 수집하는 영상 취득 모듈;상기 원시 동영상 데이터를 압축하는 동영상 부호화기;상기 압축된 동영상을 저장하는 시스템 메모리; 및상기 압축된 동영상을 시스템 버스를 통하여 상기 시스템 메모리로부터 읽어들여 복호화하는 동영상 복호기를 포함하되,상기 동영상 복호기는상기 시스템 메모리에 저장된 압축 동영상 비트 스트림을 읽어들여 상기 압축 동영상 비트 스트림의 매크로 블록의 움직임 벡터를 복원하고 양자화된 이산여현변환계수를 복원하는 가변장 복호기;상기 복원된 이산여현변환 계수를 역양자화한 후 역이산여현변환을 수행하여 복원 영상을 생성하는 역양자화/역이산여현변환기;상기 시스템 메모리에 저장되어 상기 복원된 움직임 벡터에 대응되는 움직임 보상을 위한 참조 데이터를 읽어들여 움직임 보상 데이터를 생성하는 움직임 보상기;상기 복원 영상과 상기 움직임 보상 데이터를 이용하여 움직임 보상된 복원 영상을 생성하는 영상 복원부; 및상기 시스템 버스를 통하여 상기 시스템 메모리의 액세스를 제어하는 적어도 하나의 메모리 컨트롤러를 포함하며,상기 가변장 복호기는 M (M은 2이상의 정수)개 연속된 제1 매크로 블록-여기서, 상기 제1 매크로 블록은 현재 프레임의 상기 각각의 제1 매크로 블록 데이터와 이전 프레임의 상기 각각의 제1 매크로 블록에 대응되는 위치의 제2 매크로 블록 데이터간의 차이 값을 양자화한 결과가 영(zero)가 되는 조건을 만족하는 경우임-을 검출하고,상기 적어도 하나의 메모리 컨트롤러는 상기 M 개의 연속된 제1 매크로 블록 각각에 대응되는 위치의 이전 프레임의 M 개의 제2 매크로블록 데이터를 시스템 메모리로부터 한꺼번에 읽어들이고, 상기 읽어들인 이전 프레임의 M 개의 제2 매크로블록 데이터를 상기 시스템 메모리에 한꺼번에 기록하는것을 특징으로 하는 시스템 온 칩 시스템.
- 제18항에 있어서, 상기 영상 취득 모듈, 동영상 부호화기 및 상기 동영상 복호기가 상기 시스템 메모리를 액세스할 경우 상호 액세스 충돌을 방지하도록 제어하는 중재기를 더 포함하는 것을 특징으로 하는 시스템 온 칩 시스템.
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)
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)
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 |
-
2004
- 2004-12-16 KR KR1020040106917A patent/KR100681242B1/ko not_active IP Right Cessation
-
2005
- 2005-08-10 US US11/200,015 patent/US20060133512A1/en not_active Abandoned
- 2005-12-16 CN CN2005101317429A patent/CN1791220B/zh not_active Expired - Fee Related
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 |