KR100353894B1 - 제이펙 화상 데이터 버퍼링을 위한 메모리 구조 및 주소어드레스 방법 - Google Patents

제이펙 화상 데이터 버퍼링을 위한 메모리 구조 및 주소어드레스 방법 Download PDF

Info

Publication number
KR100353894B1
KR100353894B1 KR1020000060303A KR20000060303A KR100353894B1 KR 100353894 B1 KR100353894 B1 KR 100353894B1 KR 1020000060303 A KR1020000060303 A KR 1020000060303A KR 20000060303 A KR20000060303 A KR 20000060303A KR 100353894 B1 KR100353894 B1 KR 100353894B1
Authority
KR
South Korea
Prior art keywords
memory
data
index
counter
image
Prior art date
Application number
KR1020000060303A
Other languages
English (en)
Other versions
KR20020029692A (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 KR1020000060303A priority Critical patent/KR100353894B1/ko
Publication of KR20020029692A publication Critical patent/KR20020029692A/ko
Application granted granted Critical
Publication of KR100353894B1 publication Critical patent/KR100353894B1/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/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
    • H04N19/426Methods 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 using memory downsizing methods
    • H04N19/427Display on the fly, e.g. simultaneous writing to and reading from decoding memory
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/41Bandwidth or redundancy reduction
    • H04N1/411Bandwidth or redundancy reduction for the transmission or storage or reproduction of two-tone pictures, e.g. black and white pictures
    • 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/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)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

본 발명은 동화상 데이터 전송을 위한 입력 버퍼(buffer) 메모리(memory) 구조 및 메모리 주소 지정 방법에 관한 것으로, 특히 비디오 컨퍼런스(video conference)용 피씨 카메라(PC camera)가 이미지 센서(image sensor)로부터 받아들인 이미지 정보를 유에스비 포트(USB port)를 통해 컴퓨터(PC)로 전송하는데 있어서, 이미지 처리 프로세서(image signal processor)로부터 전송된 이미지 데이터를 일시 저장하였다가 동화상 압축 엔진(JPEG compression engine)이 압축할 때에 순서에 맞도록 공급하는 새로운 버퍼 메모리 구조(buffer memory architecture) 및 메모리 주소 지정 방법에 관한 것이다.
본 발명에 따른 화상 입력 버퍼 메모리 구조는 약 10 킬로바이트의 작은 메모리 사이즈를 사용하여 4:2:2 포맷의 640 픽셀 x 480 라인 데이터를 충돌없이 읽고 쓰기 과정을 동시에 실행시킬 수 있으며, 제이펙 이미지 압축 엔진과 함께 작은 크기의 칩 사이즈를 지니는 반도체 칩으로 시스템 온 칩화하는 것이 가능하게 된다.

Description

제이펙 화상 데이터 버퍼링을 위한 메모리 구조 및 주소 어드레스 방법 {MEMORY ARCHITECTURE FOR BUFFERING JPEG INPUT DATA AND ADDRESSING METHOD THEREOF}
본 발명은 동화상 데이터 전송을 위한 입력 버퍼(buffer) 메모리(memory) 구조 및 메모리 주소 지정 방법에 관한 것으로, 특히 비디오 컨퍼런스(video conference)용 피씨 카메라(PC camera)가 이미지 센서(image sensor)로부터 받아들인 이미지 정보를 유에스비 포트(USB port)를 통해 컴퓨터(PC)로 전송하는데 있어서, 이미지 처리 프로세서(image signal processor)로부터 전송된 이미지 데이터를 일시 저장하였다가 동화상 압축 엔진(JPEG compression engine)이 압축할 때에 순서에 맞도록 공급하는 새로운 버퍼 메모리 구조(buffer memory architecture) 및 메모리 주소 지정 방법에 관한 것이다.
개인용 컴퓨터(PC; personal computer)에서 많이 사용되고 있는 비디오 컨퍼런스용 피씨 카메라(PC camera)는 이미지 센서로부터 받아들인 이미지 정보를 유에스비(USB) 포트를 통해 피씨로 전송한다. 이 때에, 이미지 센서에서 처리하는 최대 데이터 처리 속도는 유에스비 포트가 허용하는 데이터 처리 속도(약 10 메가비피에스, MBPS)를 초과하기 때문에 유에스비 케이블을 통해 피씨로 전송하기 전에 데이터 압축을 하여 전송을 하게 되고, 이어서 피씨에서는 압축된 데이터를 풀게 된다.
화상 데이터의 압축을 위한 종래 기술로서, 동영상이 프레임(frame) 사이의 상관 관계가 높다는 점을 이용하여 프레임 사이의 DPCM(differential pulse code modulation)을 사용하는 방법 등이 있다. 그러나, 전술한 DPCM 방식은 프레임을 저장하기 위하여 칩 외부에 외장형 메모리를 사용하여야 하므로 전체 시스템의 크기 및 단가를 증가시키는 문제점이 있다.
한편, 외부 메모리를 사용하지 않고 프레임 저장 버퍼를 원 칩(one-chip)화 시키기 위해서는 동영상 압축 단계에서 프레임 사이의 유사성을 이용하지 않는 제이펙(JPEG; Joint Photographic Coding Experts Group)을 사용할 수 있다.
도1은 종래 기술에 따라 제이펙을 사용할 때의 이미지 데이터 처리 구성을나타낸 블록도이다. 도1을 참조하면, 피씨 카메라의 씨모스 이미지 센서(CMOS image sensor; 10)는 화상을 입력받아 이미지 시그널 프로세서(image signal processor; 11)에서 화상의 색상을 보정하게 된다. 즉, 이미지 시그널 프로세서 (11)는 색상을 보정하고 휘도(contrast)를 조절하게 된다.
이어서, 이미지 시그널 프로세서(11)가 출력하는 화상 데이터는 카메라 인터페이스(14)를 통해 화상 압축 칩(18) 내부로 입력된다. 이 때에, 씨모스 이미지 센서(10)는 1초에 최대 30 프레임의 속도로 브이지에이 (VGA) 포맷 데이터를 발생시키게 되고, 이미지 시그널 프로세서(11)는 받아들인 이미지에 인터폴레이션 (interpolation), 색상 보정(color correction), 감마 보정(gamma correction) 등을 포함한 이미지 질(image quality)을 개선하는 작업을 수행하며, 자동 노출 제어(automatic exposure control), 자동 백색 밸런스 제어(automatic white balance control) 등의 씨모스 이미지 센서(10)를 제어하는 작업을 수행한다.
또한, 이미지 시그널 프로세서(11)는 제이펙(JPEG) 이미지 압축 엔진(15)에서 이미지 처리를 수월하게 하도록 이미지 데이터를 RGB 포맷에서 YUV 포맷으로 변경하여 주는 역할을 수행한다. 한편, 종래 기술은 제이펙(JPEG) 입력 버퍼(12)를 사용하는데, JPEG 입력 버퍼 메모리(12)는 이미지 시그널 프로세서(11)에서 공급하는 데이터의 순서와 JPEG 이미지 압축 엔진(15)에서 필요로 하는 데이터 순서가 서로 상이하기 때문에 필요하게 된다.
즉, 이미지 시그널 프로세서(11)가 변환한 YUV 포맷의 이미지 데이터는 카메라 인터페이스(14)와 메모리 콘트롤러(13)를 통해 외장형 디램(DRAM), 에스램(SRAM) 또는 싱크로너스디램(SDRAM) 등으로 구성될 수 있는 제이펙(JPEG) 입력 버퍼(12)에 저장되고, 저장된 이미지 데이터는 메모리 콘트롤러(13)를 통해 액세스되어 이미지 압축 엔진(15)에서 화상 압축 과정이 진행된다.
또한, 압축된 이미지 데이터는 피포(FIFO; first-in first-out) 메모리(16)를 통해 유에스비(USB) 콘트롤러(17)로 전달되고, USB 콘트롤러(17)는 USB 케이블을 통해 PC에 압축 데이터를 전송하게 된다.
전술한 종래 기술에 따른 JPEG 입력 버퍼(12)는 이미지 압축 처리 기능의 칩에 외장되어 있으며, 통상 4 ~ 16 메가비트(MB) 크기의 디램 (DRAM), 에스램(SRAM) 또는 싱크로너스디램(SDRAM)을 사용하고 있다. 그런데, 종래 기술에 따라 외장형 JPEG 입력 버퍼(12)를 사용할 경우 시스템 구성이 복잡하게 되고 시스템 단가가 상승하는 문제점이 발생한다.
한편, JPEG 압축 알고리즘은 프레임 사이의 유사성을 이용하지 않으므로, 전체 프레임을 저장할 필요가 없다. 따라서, JPEG 입력 버퍼로서 종래 기술과 같이 4 ~ 16 MB(메가비트)의 외장형 메모리를 사용하지 아니하고, 내장형 에스램(SRAM)을 사용하는 것이 가능하지만 전체 칩에서 JPEG 입력 버퍼가 점유하는 면적이 상당 부분을 차지하게 되어 전체 칩 사이즈를 증대시키는 문제점이 발생한다.
한편, JPEG 입력 버퍼(12)로 YUV 화상 데이터가 들어올 때에는, 씨모스 이미지 센서(10)가 사용하는 클럭마다 하나의 픽셀이 들어오게 되며, 하나의 픽셀은 4:2:2 방식의 경우 번갈아가며 (Y, U) 또는 (Y, V)로 구성되어 있다. 또한, VGA 포맷의 경우 하나의 수평 라인(horizontal line)은 640 픽셀과 HSYNC로 구성되므로, JPEG 입력 버퍼(12)에서는 한 줄이 640 픽셀로 구성되어 한 줄씩 데이터가 기입된다.
한편, JPEG 압축 엔진(15)이 JPEG 입력 버퍼(12)로부터 데이터를 읽어갈 때에는 JPEG 알고리즘의 특성 때문에 4:2:2 방식의 경우 Y0, Y1, U, V 순서로 8 ×8 픽셀 블록색을 독출하게 된다. 따라서, JPEG 입력 버퍼(12)를 시스템 칩(18) 내부에 내장하기 위한 종래 기술로서, 입력 버퍼(12)에서 데이터를 기입하고 독출할 때에 서로 다른 순서를 이용하고, 일정 속도로 데이터가 입출력되는 경우 더블 버퍼링(double buffering) 하는 방식이 사용되고 있다.
즉, 종래 기술은 데이터를 독출할 때에 8 ×8 픽셀 블록씩 읽어가게 되므로, 수평 라인 680 픽셀 ×수직 방향 8 라인이 스캔되어 메모리에 기입되었을 경우 이미지 압축 엔진은 비로소 데이터 독출을 시작할 수 있다. 이 때에, 순차적으로 들어오는 후속 8 라인을 다른 메모리에 기입한다면, 독출하고 기입하는데 충돌을 피할 수 있다.
즉, 종래 기술은 동일한 크기의 메모리를 두개를 만든 다음, 하나의 메모리에 데이터를 기입하는 동안 다른 메모리에서 데이터를 읽어 내는 방식(멀티플렉싱 방식이라 칭할 수 있다)을 채용하고 있다. 따라서, 종래 기술에 따르면 4:2:2 방식의 경우 640 픽셀/라인 ×8 라인 ×16 비트/픽셀 ×2 = 20 킬로바이트(KByte)의 메모리가 필요하게 되며, 4:2:0 방식의 경우에는 640 픽셀/라인 ×16 라인 ×16 비트/라인 ×2 = 40 킬로바이트 (KByte)를 차지하게 된다.
그 결과, 전술한 종래 기술은 데이터를 기입하고 독출하는 부분이 이중으로분리되어 있으므로, 메모리 주소 생성 콘트롤은 간단하지만 메모리를 필요 이상으로 두 배를 사용하게 되어 칩 사이즈를 증가시키는 심각한 문제점이 있다.
따라서, 본 발명의 제1 목적은 이미지 센서로부터 받아들인 이미지 데이터를 압축하여 전송하는데 있어서, 화상 입력 버퍼 메모리의 크기를 최소화하기 위한 새로운 화상 입력 버퍼 메모리 구조 및 주소 어드레싱 방법을 제공하는데 있다.
본 발명의 제2 목적은 상기 제1 목적에 부가하여, 상기 동화상 입력 버퍼를 동화상 압축 엔진과 함께 원 칩화하여 내장하기 위한 새로운 화상 입력 버퍼 메모리 구조 및 주소 어드레싱 방법을 제공하는데 있다.
본 발명의 제3 목적은 상기 제1 목적에 부가하여, 상기 이미지 센서로부터 전송되는 YUV 이미지 데이터를 기입하는 메모리 영역과 동화상 압축 엔진이 독출하는 메모리 영역의 충돌을 피하면서도 메모리 영역을 공유할 수 있는 동화상 입력 버퍼 메모리 구조 및 주소 어드레싱 방법을 제공하는데 있다.
도1은 종래 기술에 따라 제이펙(JPEG) 화상 압축 처리를 수행하는 구성 블록을 나타낸 도면.
도2는 본 발명의 양호한 실시예에 따라, 제이펙 화상 데이터 버퍼 메모리를 칩 내부에 내장시켜 시스템을 구성한 도면.
도3a 및 도3b는 본 발명에 따라 각각 Y 데이터 및 UV 데이터를 화상 입력 버퍼 메모리에 효율적으로 기입하고 독출하기 위한 4차원 가상 메모리(virtual memory)를 나타낸 도면.
도4는 본 발명의 양호한 실시예에 따라 4개의 단일 포트 에스램(SRAM)으로 본 발명에 따른 4차원 가상 메모리(virtual memory)를 실제 메모리(physical memory)에 매핑(mapping)하여 구현하는 단계에서, 각각의 단일 포트 에스램에 대하여 메모리 주소를 어드레스(address)하는 방법을 나타낸 도면.
<도면의 주요 부분에 대한 부호의 설명>
10 : 씨모스 이미지 센서(CMOS image sensor)
11 : 이미지 시그널 프로세서(image signal processor)
12 : 화상 입력 버퍼 메모리
13 : 메모리 콘트롤러(memory controller)
14 : 카메라 인터페이스(camera interface)
15 : 이미지 압축 엔진(image compression engine)
16 : 피포(FIFO)
17 : 유에스비(USB) 콘트롤러
18 : 칩(chip) 내부 (종래 기술)
22 : 내장형 화상 입력 버퍼 메모리
28 : 칩(chip) 내부 (본 발명)
50 : 가상 Y 메모리
51 : Y 데이터에 매핑되는 메모리 아이디 번호
60 : 가상 UV 메모리
61 : UV 데이터에 매핑되는 메모리 아이디 번호
상기 목적을 달성하기 위하여, 본 발명은 종래의 더블 버퍼링(doubling buffering) 기술이 사용하는 메모리 크기의 1/2 크기만의 메모리로써, 즉 16 비트/픽셀 × 640 픽셀/라인 × 8 라인으로 메모리를 구성함으로써, 어드레스 생성을 위한 하드웨어가 증가되지 않는 새로운 개념의 메모리 구조 및 어드레스 방법을 제공한다.
또한, 본 발명은 화상 입력 버퍼 메모리를 논리적으로 가상 Y 메모리와 가상UV 메모리로 구분한 후, 다시 각각의 메모리를 3차원 메모리로 구성하는 것을 특징으로 한다.
이하에서는 첨부 도면 도2 내지 도4를 참조하여 본 발명에 따른 화상 입력 버퍼 메모리 구조 및 어드레스 방법을 수평 해상도 640 픽셀 및 수직 해상도 480 라인인 화상 데이터를 기준으로 하여 상세히 설명한다.
본 발명에서는 4:2:2 포맷의 화상 압축을 기준으로 설명하지만, 본 발명에 따른 새로운 메모리 구조 개념 및 어드레스 방법은 4:2:0 포맷으로의 확장이 가능하다. 또한, 화상 이미지의 크기는 640 x 480 을 기준으로 하여 상세히 설명할 것이지만, 본 발명에 따른 새로운 메모리 구조 개념 및 어드레스 방법은 기타 크기의 화상 이미지에 대한 확장 적용이 가능하다.
일반적으로, JPEG 화상 입력 버퍼 메모리에 화상 데이터가 들어올 때에는 씨모스 이미지 센서가 사용하는 클럭마다 하나의 픽셀이 들어오며, 하나의 픽셀은 4:2:2 포맷의 경우 번갈아 가며 (Y, U) 또는 (Y, V)로 구성되어 있다. 즉, VGA 포맷의 경우 하나의 수평 라인은 640 픽셀과 HSYNC로 구성되므로 제이펙 화상 입력 버퍼에서는 한줄이 640 픽셀로 구성되어 한줄씩 기입되게 된다. 한편, JPEG 화상 압축 엔진으로 데이터를 독출할 때에는 JPEG 알고리즘의 특성 때문에, 4:2:2 포맷의 경우 Y0, Y1, U V의 순서대로 8 ×8 DCT 픽셀 블록씩 독출한다.
도2는 본 발명의 양호한 실시예에 따라, 제이펙 화상 데이터 버퍼 메모리를 칩 내부에 내장시켜 시스템을 구성한 도면이다. 본 발명에 따른 화상 입력 버퍼 메모리(22)는 후술하는 새로운 개념의 메모리 아키텍쳐를 구비하고 4차원 가상 메모리를 통해 주소를 어드레싱함으로써 칩 내부(28)에 최적의 칩 사이즈를 유지하면서 내장시키는 것이 가능하게 된다.
도3a 및 도3b는 본 발명에 따른 화상 입력 버퍼 메모리를 구현하기 위한 4차원 가상 메모리를 나타낸 도면이다. 즉, 도3a는 640 픽셀 ×8 라인 크기의 화상 데이터 중 Y 데이터를 3차원 가상 메모리에 저장한 모습을 나타낸 도면이고, 도3b는 UV 데이터를 3차원 가상 메모리에 저장한 모습을 나타낸 도면이다.
도3a 및 도3b를 참조하면, 3차원 가상 메모리는 인덱스 i, j, k 축으로 구성되어 있으며, Y 메모리(도3a)와 UV 메모리(도3b)를 구별하기 위하여 인덱스 n을 사용할 수 있다. 따라서, 인덱스 i, j, k, n으로 구성되는 4차원 가상 메모리를 관념상 생각할 수 있으며, 4차원 가상 메모리에 저장되는 화상 데이터는 후술하는 방법으로 실제 메모리(physical memory)에 매핑(mapping)되어 회로적으로 구현된다.
본 발명에 따른 양호한 실시예로서, n = 0의 경우에는 가상 Y 메모리(50)에 대응시키고, n = 1인 경우에는 가상 UV 메모리(60)에 대응시킬 수 있다. 한편, 3차원 메모리의 두 개의 인덱스 i, j는 8 ×8 크기의 정사각형을 취하게 하고, 기입하거나 독출하는 단계에서 8라인을 연속하여 읽거나 기입하고 나면, 후속하여 매 8 라인마다 i축과 j축을 서로 치환하는 방식을 취하는 것을 본 발명의 특징으로 한다.
또한, 독출하는 과정은 기입하는 과정에 비하여 한 개 라인을 선행하도록 함으로써, 동일한 메모리를 서로 공유하면서 읽기와 쓰기를 동시에 진행할 수 있게 됨을 특징으로 하고 있다.
이 때에, 본 명세서에서는 본 발명의 사상을 쉽게 설명하기 위하여, 4:2:2 포맷을 기준으로 본 발명을 설명하고 있으므로 i, j의 크기(dimension)를 8 ×8로 정하고 있지만, 본 발명의 또 다른 실시예로서, 4:2:0 포맷을 사용하는 경우에는 16 ×16 크기의 정사각형 모양을 취하여야 한다. 본 발명에 따른 3차원 가상 메모리에 Y 데이터 또는 UV 데이터를 기입할 때에는, 인덱스 i, j에 대하여 k 값이 증가하는 방향으로 먼저 데이터를 기록한다.
본 발명에 따른 양호한 실시예로서, 수평 방향의 픽셀의 수가 640 픽셀인 경우 80 픽셀씩 8 블록으로 구별하고, 제1 라인의 최초 제1 블록에 대응하는 80개 픽셀의 Y 데이터 및 UV 데이터를 각각 도3a 및 도3b의 i = 0, j = 0, k = 0, 1, 2, …, 79에 기입할 수 있다. 이어서, 제1 라인의 제2 블록에 해당하는 80개의 픽셀의 Y 데이터 및 UV 데이터는 각각 도3a 및 도3b의 i = 0, j = 1, k = 0, 1, 2, …, 79에 기입할 수 있다.
이와 같은 방식으로 하여, 640 픽셀 ×480 라인 화상에 있어서 제1 라인의 총 8개 블록(640 픽셀) 화상 데이터는 i = 0, j = 0, 1, 2, …, 7, k = 0, 1, 2, …, 79를 인덱스로 하는 3차원 가상 메모리의 최상위 열에 저장되게 된다. 이어서, 도3a에 도시한 3차원 가상 Y 메모리에 제2열 (i = 1) 내지 제8열(i = 7)에 대응하여 640 픽셀 ×8 라인에 대응한 화상 Y 데이터가 차례로 저장되게 된다.
본 발명에 따른 3차원 가상 메모리 방식의 특징으로 제7열(i = 6)이 모두 기입되고 제8열(i = 7)이 기입되기 시작하면 제1행(j = 0)을 세로 방향으로 독출할 수 있다는 점을 기술의 요지로 하고 있다. 일단, 제1행(j = 0)을 독출하고 나면(물론, 이 때에 동시에 제8열(i = 7)을 기입하는 것을 완료하게 된다), 후속되는 화상 데이터 기입은 이제 i와 j를 바꾸어서 제1행(j = 0)에 기록하게 되는 것이다.
이와 같이, 본 발명에 따른 3차원 가상 메모리를 설정하고 매 8열 또는 매 8행마다 i와 j를 치환하여(즉, 열에 맞추어 데이터를 기입하다가 8 라인이 완료되면 후속하여 이번에는 행에 맞추어 데이터를 기입함) 데이터를 기록함으로써, 충분히 작은 메모리를 사용하면서 읽고 쓰기의 충돌을 피하면서 공유 메모리 개념으로 수행할 수 있다.
본 발명에 따른 가상 메모리 기입 및 독출 방법의 양호한 실시예로서, 데이터 독출 과정(read operation)은 데이터 기입 과정(write operation)에 대하여 3차원 가상 메모리 상에서 한 라인 선행하도록 설계될 수 있으며, 기입 과정과 독출 과정을 매번 8 라인을 완료할 때마다 행과 열을 바꾸어서 수행할 수 있다.
한편, 본 발명에 따른 4차원 가상 메모리 아키텍쳐(architecture)는 하나의 메모리에서 데이터 읽기와 쓰기를 동시에 진행하므로, 단일 포트 램(signal port RAM)을 채용할 경우에 읽고 쓰기의 충돌을 피하기 위하여 메모리를 분할하여 어드레싱하여야 한다.
특히, JPEG에서 사용되는 2차원 디씨티(DCT; discrete cosine transform)에서는 데이터가 일정한 속도로 독출되는 것이 아니고, 데이터를 빠른 속도로 읽어내어 1차원 DCT를 8회 수행한 후 트랜스포즈(transpose)하여 다시 1차원 디씨티(DCT)를 8회 수행하므로 종래 기술에 따른 더블 버퍼링(double buffering)을 수행하더라도 한 번에 여러 개의 데이터를 읽고 쓰는 것이 필요하다.
도3a 및 도3b에는 한번에 최대 4개의 데이터를 독출할 수 있는 구조, 즉 4개의 단일 포트 램(single-port RAM)을 사용하는 구조에 있어서, 4차원 가상 메모리를 실제의 4개의 단일 포트 램에 매핑(mapping)시키기 위한 메모리 아이디(memory ID) 번호(51, 61)를 도시하고 있다. 본 발명의 양호한 실시예에 따라 한 번에 4개의 데이터를 독출하기 위해서는 독출하는 4개의 데이터가 모두 다른 램(RAM)에 속해 있어야 한다.
또한, 본 발명에 따른 4차원 가상 메모리(50, 60)는 매 8 라인마다 i 축과 j축이 바뀌게 되므로, 가로축과 세로축 모두 4개의 데이터를 읽을 때, 4개의 데이터가 서로 다른 메모리에 있도록 배치하여야 한다. 따라서, (i + j + n)에 메모리 갯수의 모듈을 취하게 된다. 이하에서는 전술한 4차원 가상 메모리를 실제 4개의 단일 포트 RAM에 맵핑시키기 위한 메모리 아이디 할당, 메모리 주소 산출 방식을 상세히 설명한다.
도3은 본 발명의 양호한 실시예에 따라 4개의 SRAM으로 4차원 가상 메모리를 실제 메모리에 매핑하여 구현하는 단계에서 메모리 주소 어드레스 방법을 나타낸 도면이다. 본 발명에 따른 양호한 실시예로서, 4개의 데이터를 동시에 읽을 수 있도록 하게 하기 위하여, 4개의 2560 바이트(byte) 크기의 SRAM을 이용하여 본 발명의 4차원 가상 메모리를 실제 메모리로 구현할 수 있다. 도3a 및 도3b에 도시한 숫자 (0, 1, 2, 3)는 80 바이트의 메모리 블록이 어느 실제 메모리(physical memory)에 매핑되는지를 보여주고 있다.
한편, 4차원 가상 메모리(50, 60)에서의 인덱스 i, j, k, n은 실제 메모리에있어서, 메모리 아이디 산출을 위해 (i + j + n)%4의 산출식을 이용하고, 메모리 주소를 위해 (k ×32 + n ×16 + j ×2 + i/4)의 식을 이용할 수 있다. 본 발명에 따른 4차원 가상 메모리를 실제 4개의 2560 바이트의 크기의 SRAM으로 구현하는 경우, 기입 과정(write operation)을 위한 주소 어드레싱 방법을 우선 설명하면 다음과 같다.
본 발명의 양호한 실시예로서, 주소 어드레싱 과정은 메모리 콘트롤러가 제어하도록 할 수 있으며, 메모리 콘트롤러는 후술하는 다수 개의 카운터를 사용하여 메모리 주소를 어드레스하게 된다. 본 발명에 따른 메모리 콘트롤러는 0, 1, 2, …, 79 까지를 계수하는 인덱스 k 카운터, 0, 1, 2, …, 7 까지를 계수하는 인덱스 i 카운터, 0, 1, 2, …, 7 까지를 계수하는 인덱스 j 카운터 및 0과 1을 카운트하는 인덱스 ITER 카운터를 포함할 수 있다.
이 때에, 본 발명에 따른 메모리 콘트롤러는 메모리 아이디를 산출하기 위하여 (i + j + n)%4의 산출식을 구현하는 모듈로 회로를 구비하며, ITER 카운터 값이 ITER = 0인 경우에는 (k ×32 + n ×16 + j × 2 + i/4)의 산출식을 이용하여 메모리 주소를 산출하고, ITER = 1인 경우에는 (k ×32 + n ×16 + i × 2 + j/4)의 산출식을 이용하여 메모리 주소를 산출하는 연산 회로를 포함한다.
전술한 메모리 주소 및 메모리 아이디 할당 방법을 첨부 도면 도4를 참조하여 설명하면 다음과 같다.
우선, 640 픽셀 × 8 라인의 화상 중에서 제1열의 제1 블록에 대응하는 80 픽셀(i = 0, j = 0, k = 0, 1, 2, …, 79) 데이터는 SRAM 0(제1 메모리; 도면 부호200)의 0, 32, 64, 96, …, 2528 번지 (k ×32, k = 0, 1, 2, …, 79)에 Y 데이터가 기입되고(도면부호 100), SRAM 1(제2 메모리)의 16, 48, 90, …, 2544 번지 (k ×32 + 16 ×1, k = 0, 1, 2, …, 79)까지에 80 픽셀의 UV 데이터가 순차적으로 기입된다(도면 부호 101).
이어서, 제1열 제2 블록의 80 픽셀 데이터(i = 0, j = 1, k = 0, 1, 2,…, 79)는 SRAM 1(제2 메모리; 도면 부호 201)의 2, 34, 66, …, 2530 번지 (k ×32 + 1 ×2, k = 0, 1, 2, …, 79)까지의 Y 데이터가 기입되고(도면 부호 110), SRAM 2(제3 메모리; 도면 부호 202)의 18, 50, 82, …, 2546 번지 (k ×32 + 1 ×16 + 1 ×2, k = 0, 1, 2, …, 79)에 UV 데이터를 기입한다(도면 부호 111).
또한, 제1열의 제3 블록의 80픽셀 데이터 (i = 0, j = 2, k = 0, 1, 2, …, 79)는 SRAM 2(제3 메모리; 도면 부호 202)의 4, 36, 68, …, 2532 번지 (k ×32 + 4, k = 0, 1, 2, …, 79) 까지에 Y 데이터를 기입되고(도면 부호 120), SRAM 3(제4 메모리; 도면 부호 203)의 20, 52, 84, …, 2548 번지 (k ×32 + 16 ×4, k = 0, 1, 2, …, 79)까지에 80 픽셀의 UV 데이터를 기입한다(도면 부호 121).
같은 방식으로 제1열 제4블록의 데이터 (i = 0, j = 3, k = 0, 1, 2, …, 79)의 데이터는 SRAM 3(제2 메모리; 도면 부호 201)의 (k ×32 + 3 ×2, k = 0, 1, 2, …, 79)번지에 80 픽셀의 Y 데이터를 저장하고(도면 부호 130), SRAM 0의 (k ×32 + 16 + 3 ×2, k = 0, 1, 2, …, 79)번지에 80 픽셀의 UV 데이터를 저장할 수 있다(도면 부호 131).
전술한 방식대로 하여, 제1열의 나머지 제5 블록 데이터(i = 0, j = 4), 제6블록 데이터(i = 0, j = 5), 제7 블록 데이터(i = 0, j = 6), 제8 블록 데이터(i = 0, j = 7)를 순차적으로 SRAM 0 (Y 데이터), SRAM 1(UV 데이터), SRAM 1(Y 데이터), SRAM 2(UV 데이터), SRAM 2 (Y 데이터), SRAM 3(UV 데이터), SRAM 3(Y 데이터), SRAM 0(UV 데이터)에 (k ×32 + n ×16 + j ×2)의 어드레스 산출식으로 기입할 수 있다.
이어서, 제2열의 640 픽셀 데이터(i = 1, j = 0, 1, 2, …, 7, k = 0, 1, 2, …, 79)에 대해서도 전술한 방식대로 SRAM 0, SRAM 1, SRAM 2, SRAM 3에 메모리 아이디 산출은 (i + j + n)%4의 식을 이용하고, 메모리 주소는 (k ×32 + n ×16 + j ×2 + i/4)의 식을 이용하여 데이터를 기록할 수 있다.
한편, 전술한 4개의 단일 포트 SRAM에 기입된 화상 데이터를 독출하는 방법을 이하에서 설명하기로 한다. 즉, 8 ×8 픽셀을 블럭으로 독출하기 위해서는 Y0→ Y1 → U0 → U0 의 순서로 읽어야 하므로, 본 발명에 따른 메모리 콘트롤러는 0 또는 4의 값을 계수하는 인덱스 jj 카운터, 0, 1, 2, …, 15 까지의 값을 계수하는 인덱스 m 카운터, 0, 1, 2, 3, 4의 값을 계수하는 인덱스 T카운터를 더 포함하는 것을 특징으로 한다. 또한, 0, 1, 2, 3 의 숫자를 반복하여 계수하는 인덱스 P 카운터를 더 포함할 수 있다.
한편, 4개의 단일 포트 SRAM에 저장되어 있는 Y 데이터와 UV 데이터를 독출하기 위한 메모리 주소 어드레스 산출 방법은 j = jj + P (P = 0, 1, 2, 3)을 이용하여 j 값을 산출하고, n = 0 인 경우에는 k = 0 ×16 + m , n = 1인 경우에는 k = T ×16 + (m%8) ×2 + m/8으로 k값을 산출한다.
이어서, 독출 메모리 주소는 ITER = 0인 경우 (k ×32 + n ×16 + j × 2 + i/4), ITER = 1인 경우 (k ×32 + n ×16 + i ×2 + j ×4)의 식으로 산출하며, 메모리 아이디는 (i + j + n)%4의 식으로 산출할 수 있다. 이 때에, 기입 과정 시에 ITER = 0 인 경우 독출 과정은 ITER = 1이 되며, 이것은 독출 과정이 기입 과정보다 한 라인 선행하기 때문이다.
이상에서, 본 발명에 따른 화상 데이터 버퍼링을 위한 메모리 구조 및 주소 어드레스 방법은 640 ×480 픽셀인 경우를 기준으로 하여 설명하였으나, 수평 방향의 픽셀 수가 확장 또는 감소되는 경우에도 적용이 가능하다. 이 때에, 수평 방향 픽셀의 제한 조건은 (640 ±16 ×q, q = 1, 2, …)가 되며, 이에 따라 기입 시의 k 카운터는 k = 0, 1, …, 79, …, 79 + 16 ×q 또는 k = 0, 1, …, 79 - 16 ×q가 된다. 한편, 독출시에는 p 카운터가 p = 0, 1, 2, 3, 4, 5, …,5 + q 또는 p = 0, 1, 2, 3, 4, 5, …,5 - q 가 된다.
전술한 내용은 후술할 발명의 특허 청구 범위를 보다 잘 이해할 수 있도록 본 발명의 특징과 기술적 장점을 다소 폭넓게 개설하였다. 본 발명의 특허 청구 범위를 구성하는 부가적인 특징과 장점들이 이하에서 상술될 것이다. 개시된 본 발명의 개념과 특정 실시예는 본 발명과 유사 목적을 수행하기 위한 다른 구조의 설계나 수정의 기본으로서 즉시 사용될 수 있음이 당해 기술 분야의 숙련된 사람들에 의해 인식되어야 한다.
또한, 본 발명에서 개시된 발명 개념과 실시예가 본 발명의 동일 목적을 수행하기 위하여 다른 구조로 수정하거나 설계하기 위한 기초로서 당해 기술 분야의숙련된 사람들에 의해 사용되어질 수 있을 것이다. 또한, 당해 기술 분야의 숙련된 사람에 의한 그와 같은 수정 또는 변경된 등가 구조는 특허 청구 범위에서 기술한 발명의 사상이나 범위를 벗어나지 않는 한도 내에서 다양한 변화, 치환 및 변경이 가능하다.
이상과 같이, 본 발명은 이미지 센서에서 읽어 온 동화상을 USB 인터페이스를 통해 사용자 피씨로 전송하는 과정에서 이미지 압축 엔진으로 제이펙(JPEG)을 사용하는 경우에, VGA 4:2:2 포맷의 경우 640 픽셀/라인 x 8 라인 x 16 비트/픽셀 (4:2:0 의 경우에는 640 픽셀/라인 x 16 라인 x 16 비트/픽셀) 버퍼 메모리를 두 개 사용하는 종래 기술 대신에, 하나의 640 픽셀/라인 x 8 라인 x 16 비트/픽셀 (4:2:0 의 경우에는 640 픽셀/라인 x 16 라인 x 16 비트/픽셀)의 버퍼 메모리를 구성하여, 640 픽셀 x 480 라인 데이터를 충돌없이 읽고 쓰기 과정을 동시에 실행시킬 수 있으며, 제이펙 이미지 압축 엔진과 함께 작은 크기의 칩 사이즈를 지니는 반도체 칩으로 시스템 온 칩화하는 것이 가능하게 된다.

Claims (12)

  1. 수평 해상도 640 픽셀 및 수직 해상도 480 라인인 YUV 포맷의 화상 데이터를 저장하고 DCT 블럭의 크기가 8 × 8인 화상 압축 엔진에 상기 저장 데이터를 전달하는 화상 입력 버퍼 메모리에 화상 데이터를 기입하고 독출하는 방법에 있어서,
    (a) 인덱스 i, j, k에 대응하여 8 ×8 ×80 바이트 크기의 3차원 가상 메모리 공간을 가지고, 인덱스 n에 대응하여 Y 데이터 또는 UV 데이터를 상기 3차원 가상 메모리 공간에 저장하며, 0, 1, 2, …, 7 범위의 값을 갖는 인덱스 i와, 0, 1, 2, …, 7 범위의 값을 갖는 인덱스 j와, 0, 1, 2, …, 79 범위의 값을 갖는 인덱스 k와, 0 또는 1의 값을 갖는 n으로 구성되는 4차원 가상 메모리를 설정하는 단계;
    (b) 수평 640 픽셀과 수직 8 라인으로 구성되는 화상 데이터에 대하여, 상기 수직 8 라인 중 어느 하나인 임의의 제P 라인을 구성하는 수평 640 픽셀을 80 픽셀씩을 단위로 하여 8 블록으로 구분하고, 최초 제1 블록의 Y 데이터 및 UV 데이터를 각각 80개씩 4차원 가상 Y 메모리(n = 0) 및 4차원 가상 UV 메모리(n = 1)에 독립적으로 i = 0, j = p, k = 0, 1, 2, …, 79로 지정되는 주소에 각각 순차적으로 저장하고, 이어서 제2 블록의 Y 데이터 및 UV 데이터를 각각 80개씩 상기 4차원 가상 Y 메모리(n = 0) 및 상기 4차원 가상 UV 메모리(n = 1)에 각각 i = 1, j = p, k = 0, 1, 2,…, 79로 지정되는 주소지에 순차적으로 저장하며, 유사한 방법으로 i 인덱스를 차례로 증가시켜 제1 블록에서부터 제8 블록에 해당하는 i = 7까지 순차적으로 증가시키고, 동시에 각각의 i에 대하여 k를 0, 1, 2, …, 79 까지 증가시킴으로써 8개 블록의 픽셀 데이터 640 바이트를 j = p 로 정의되는 4차원 가상 메모리 영역에 순차적으로 저장하는 방식으로 상기 수평 640 픽셀로 구성된 연속하는 상기 8개의 라인에 대응하여 다시 p를 0부터 7까지 순차적으로 증가함으로써 8 ×8 ×80 크기의 상기 4차원 가상 Y 메모리와 상기 4차원 가상 UV 메모리에 각각 기입하는 단계; 및
    (c) 상기 단계 (b)에서 기입한 8개의 라인에 후속하는 8개의 라인에 대응하는 수평 640 픽셀 ×수직 8 라인의 Y데이터 및 UV 데이터를 상기 4차원 가상 Y 메모리 및 상기 4차원 가상 UV 메모리에 저장하기 위하여, 상기 후속 8개 라인 중 제 q 라인을 구성하는 640개의 픽셀을 80 픽셀씩 8 블록으로 구분하고, 최초 제1 블록의 Y 데이터 및 UV 데이터를 각각 80개씩 상기 4차원 가상 Y 메모리(n = 0) 및 상기 4차원 가상 UV 메모리(n = 1)에 독립적으로 i = q, j = 0, 및, k = 0, 1, 2, …, 79로 지정되는 위치에 각각 순차적으로 저장하고, 이어서 제2 블록의 Y 데이터 및 UV 데이터를 각각 80개씩 상기 4차원 가상 Y 메모리 및 상기 4차원 가상 UV 메모리에 각각 i = q, j = 1, 및 k = 0, 1, 2,…, 79로 지정되는 위치에 순차적으로 저장하며, 같은 방법으로 j 인덱스를 제1 블록부터 제8 블록에 대응되는 j = 7까지 순차적으로 증가시키고, 동시에 각각의 j에 대해 k를 0 에서 79까지 증가시킴으로써, 상기 8개 블록의 픽셀 데이터를 i = q 로 정의되는 가상 메모리 영역에 순차적으로 저장하는 방식으로, 상기 수평 640 픽셀로 구성된 후속 수직 8 라인에 대응하여 다시 q를 0 부터 7까지 순차적으로 증가함으로써 8 ×8 ×80 크기의 Y 메모리와 UV 메모리에 데이터를 각각 기입하는 단계
    를 포함하는 화상 입력 버퍼 메모리의 화상 데이터 어드레스 방법.
  2. 제1항에 있어서, 상기 화상 입력 버퍼의 화상 데이터 기입 방법은
    상기 4차원 가상 Y 메모리 또는 상기 4차원 가상 UV 메모리에 수평 640 픽셀로 구성되는 제p 라인을 j = p로 정의되는 가상 메모리 영역에 i = 0, 1, …, 7에 대하여, 또한 각각의 i에 대해 k = 0, 1, 2, …, 79까지 순차적으로 기입하는 상기 단계 (b)에서, j = p + 1로 정의되는 가상 메모리 영역에 저장되어 있는 Y 데이터 또는 UV 데이터를 i = 0, 1, …, 7까지 카운트하고, 각각의 i에 대해 k = 0, 1, 2, …, 79까지 카운트함으로써 순차적으로 동시에 독출하는 단계
    를 더 포함하는 화상 입력 버퍼 메모리의 화상 데이터 어드레스 방법.
  3. 제2항에 있어서, 상기 p의 값이 p = 7인 경우에는 i = 0 으로 정의되는 가상 메모리 영역에 저장되어 있는 Y 데이터 또는 UV 데이터를 j = 0, 1, …, 7까지 카운트하고, 각각의 j에 대해 k를 0, 1, 2, …, 79까지 카운트함으로써 동시에 순차적으로 독출하는 단계
    를 더 포함하는 화상 입력 버퍼 메모리의 화상 데이터 어드레스 방법.
  4. 제1항에 있어서, 상기 화상 입력 버퍼 메모리의 화상 데이터 어드레스 방법은,
    상기 4차원 가상 Y 메모리 또는 상기 4차원 가상 UV 메모리에 수평 640 픽셀로 구성되는 제q 라인을 i = q로 정의되는 가상 메모리 영역에 j = 0, 1, …, 7에 대하여, 또한 각각의 j에 대해 k = 0, 1, 2,…, 79까지 순차적으로 기입하는 단계 (C)에서 i = q + 1으로 정의되는 가상 메모리 영역에 저장되어 있는 Y 데이터 또는 UV 데이터를 j = 0, 1, …, 7까지 카운트 하고, 각각의 j에 대해 k = 0, 1, 2, …, 79까지 카운트함으로써 순차적으로 독출하는 단계
    를 더 포함하는 화상 입력 버퍼의 화상 데이터 어드레스 방법.
  5. 제4항에 있어서, 상기 q값이 q = 7인 경우에는 j = 0 으로 정의되는 가상 메모리 영역에 저장되어 있는 Y 데이터 또는 UV 데이터를 i = 0, 1, …, 7까지 카운트하고, 각각의 i에 대하여 k = 0, 1, 2, …, 79까지 카운트함으로써 순차적으로 독출하는 단계
    를 더 포함하는 화상 입력 버퍼 메모리의 화상 데이터 어드레스 방법.
  6. 제1항에 있어서, 상기 4차원 가상 메모리에 저장되는 화상 데이터는 각각 2560 바이트 크기의 제1 메모리(메모리 아이디 = 0), 제2 메모리(메모리 아이디 = 1), 제3 메모리(메모리 아이디 = 2), 및 제4 메모리(메모리 아이디 = 3)로 구성되는 상기 화상 입력 버퍼 메모리에 맵핑되고,
    상기 제1 메모리 내지 제4 메모리의 메모리 아이디는 (i + j + n)%4의 식으로 산출되고, 기입 과정 또는 독출 과정을 나타내는 인덱스 ITER에 대하여, 인덱스 ITER = 0의 경우, 메모리 주소를(k ×32 + n ×16 + j × 2 + i/4)의 식으로 산출하고, 인덱스 ITER = 1인 경우 메모리 주소를 (k ×32 + n ×16 + i × 2 + j/4)의 식으로 산출하여 상기 4차원 가상 메모리에 저장된 화상 데이터를 상기 제1 내지 제4 메모리에 맵핑시키는 단계
    를 포함하는 화상 입력 버퍼 메모리의 화상 데이터 어드레스 방법.
  7. 수평 해상도 640 픽셀 및 수직 해상도 480 라인인 YUV 포맷의 화상 데이터를 저장하고, DCT 블럭의 크기가 8 ×8인 화상 압축 엔진에 상기 저장된 화상 데이터를 전달하는 화상 입력 버퍼 메모리에 있어서,
    상기 화상 입력 버퍼 메모리는 2560 바이트 크기의 제1 메모리(메모리 아이디 = 0), 제2 메모리(메모리 아이디 = 1), 제3 메모리(메모리 아이디 = 2) 및 제4 메모리(메모리 아이디 = 3)로 구성되고;
    인덱스 i, j, k에 대응하여 8 ×8 ×80 바이트 크기의 3차원 가상 메모리 공간을 가지고, 인덱스 n에 대응하여 Y 데이터 또는 UV 데이터를 상기 3차원 가상 메모리 공간에 저장하며, 0, 1, 2, …, 7 범위의 값을 갖는 인덱스 i와, 0, 1, 2, …, 7 범위의 값을 갖는 인덱스 j와, 0, 1, 2, …, 79 범위의 값을 갖는 인덱스 k와, 0 또는 1의 값을 갖는 n으로 구성되는 4차원 가상 메모리는 상기 2560 바이트 크기의 제1 메모리 내지 제4 메모리에 맵핑되고;
    상기 2560 바이트 크기의 제1 메모리 내지 제4 메모리의 메모리 아이디는 (i + j + n)%4의 식으로 산출되고;
    상기 화상 입력 버퍼 메모리에 데이터 기입 과정 또는 독출 과정을 나타내는인덱스 ITER에 대하여, ITER = O의 경우 메모리 주소를 (k ×32 + n ×16 + j × 2 + i/4)의 식으로 산출하고;
    상기 인덱스 ITER = 1의 경우 메모리 주소를 (k ×32 + n ×16 + i × 2 + j/4)의 식으로 산출하여 상기 화상 데이터를 기입하는 것
    을 특징으로 하는 화상 입력 버퍼 메모리.
  8. 수평 해상도 640 픽셀 및 수직 해상도 480 라인인 YUV 포맷의 화상 데이터를 저장하고, DCT 블록의 크기가 8 ×8인 화상 압축 엔진에 상기 저장된 화상 데이터를 전달하는 화상 입력 버퍼 메모리에 있어서,
    상기 화상 입력 버퍼 메모리는 2560 바이트 크기의 제1 메모리(메모리 아이디 = 0), 제2 메모리(메모리 아이디 = 1), 제3 메모리(메모리 아이디 = 2), 및 제4 메모리(메모리 아이디 = 3)으로 구성되고;
    인덱스 i, j, k에 대응하여 8 ×8 ×80 바이트 크기의 3차원 가상 메모리 공간을 가지고, 인덱스 n에 대응하여 Y 데이터 또는 UV 데이터를 상기 3차원 가상 메모리 공간에 저장하며, 0 또는 4를 취하는 인덱스 jj와, 0, 1, 2,…, 15 범위의 값을 갖는 인덱스 m과 0, 1, 2, 3, 4 범위의 값을 갖는 인덱스 O와 0, 1, 2,…, 7 범위의 값을 갖는 인덱스 i와 독출 또는 기입을 나타내는 0 또는 1의 값을 지니는 인덱스 ITER를 포함하고, 인덱스 i, j, k, n으로 구성되는 4차원 가상 메모리는 상기 2560 바이트 크기의 제1 메모리 내지 제4 메모리에 맵핑되고;
    상기 2560 바이트 크기의 제1 메모리 내지 제4 메모리의 메모리 아이디는 (i+ j + n)%4의 식으로 산출되고;
    상기 Y 데이터(n = 0)에 대하여 k는 (T × 16 + m)의 식으로 산출하고, 상기 UV 데이터(n = 1)에 대하여 (T × 16 + (m%8) ×2 + m/8)의 식으로 산출하고;
    상기 화상 입력 버퍼 메모리에 데이터 기입 과정 또는 독출 과정을 나타내는 인덱스 ITER에 대하여, ITER = O의 경우 메모리 주소를 (k ×32 + n ×16 + j × 2 + i/4)의 식으로 산출하고;
    상기 인덱스 ITER = 1의 경우 메모리 주소를 (k ×32 + n ×16 + i × 2 + j/4)의 식으로 산출하여 상기 화상 데이터를 기입하는 것
    을 특징으로 하는 화상 입력 버퍼 메모리.
  9. 수평 해상도 H 및 수직 해상도 V인 YUV 포맷의 화상 데이터를 저장하는 화상 입력 버퍼 메모리와, 상기 화상 입력 버퍼 메모리의 어드레스를 지정하여 화상 데이터를 저장하도록 제어하는 메모리 콘트롤러와, 상기 화상 데이터를 8 ×8 DCT 블럭 크기로 압축 처리하여 USB 콘트롤러에 전송하는 화상 압축 엔진을 포함하는 화상 신호 처리 시스템에 있어서, 상기 화상 입력 버퍼 메모리는 각각 2560 바이트 크기를 지니는 4개의 메모리로 구성되고, 상기 메모리 콘트롤러는
    0, 1, 2, …, 7까지의 숫자를 차례로 계수하는 인덱스 i 카운터;
    0, 1, 2, …, 7까지의 숫자를 차례로 계수하는 인덱스 j 카운터;
    0, 1, 2, …, 79까지의 숫자를 차례로 계수하는 인덱스 k 카운터;
    0 또는 1의 값을 계수하는 인덱스 n 카운터;
    0 또는 1의 값을 계수하는 인덱스 ITER 카운터;
    0 또는 4의 값을 계수하는 인덱스 jj 카운터;
    0, 1, 2, …, 15 까지의 숫자를 차례로 계수하는 인덱스 m 카운터;
    0, 1, 2, 3, 4 범위의 숫자를 차례로 계수하는 인덱스 T카운터;
    0, 1, 2, 3 범위의 숫자를 차례로 계수하는 P 카운터
    를 구비하고, 상기 화상 데이터를 4개의 메모리에 기입할 메모리 아이디 및 메모리 주소를 산출하기 위하여
    (a) 상기 4개의 메모리 중 어느 하나를 선택하는 메모리 아이디는 (i + j + k)%4의 산출식으로부터 산출하는 연산 회로와;
    (b) 상기 화상 데이터 중 Y 데이터에 대응하여 n = 0, UV 데이터에 대응하여 n = 1로 설정하고, 화상 데이터 기입 어드레스는 ITER 카운터가 ITER = 0인 경우에는 (k ×32 + n ×16 + j × 2 + i/4)의 식으로부터 산출하고, ITER = 1인 경우 (k ×32 + n ×16 + i × 2 + j/4)의 식으로부터 산출하는 연산 회로
    를 구비하는 것을 특징으로 하는 화상 입력 버퍼 메모리.
  10. 수평 해상도 H 및 수직 해상도 V인 YUV 포맷의 화상 데이터를 저장하는 화상 입력 버퍼 메모리와, 상기 화상 입력 버퍼 메모리의 어드레스를 지정하여 화상 데이터를 저장하도록 제어하는 메모리 콘트롤러와, 상기 화상 데이터를 8 ×8 DCT 블럭 크기로 압축 처리하여 USB 콘트롤러에 전송하는 화상 압축 엔진을 포함하는 화상 신호 처리 시스템에 있어서, 상기 화상 입력 버퍼 메모리는 각각 2560 바이트크기를 지니는 4개의 메모리로 구성되고, 상기 메모리 콘트롤러는
    0, 1, 2, …, 7까지의 숫자를 차례로 계수하는 인덱스 i 카운터;
    0, 1, 2, …, 7까지의 숫자를 차례로 계수하는 인덱스 j 카운터;
    0, 1, 2, …, 79 까지의 숫자를 차례로 계수하는 인덱스 k 카운터;
    0 또는 1의 값을 계수하는 인덱스 n 카운터;
    0 또는 1의 값을 계수하는 인덱스 ITER 카운터;
    0 또는 4의 값을 계수하는 인덱스 jj 카운터;
    0, 1, 2, …, 15 까지의 숫자를 차례로 계수하는 인덱스 m 카운터;
    0, 1, 2, 3, 4 범위의 숫자를 차례로 계수하는 인덱스 T카운터;
    0, 1, 2, 3 범위의 숫자를 차례로 계수하는 P 카운터
    를 구비하고, 상기 화상 데이터를 상기 4개의 메모리로부터 독출할 메모리 아이디 및 메모리 주소를 산출하기 위하여,
    (a) 상기 4개의 메모리 중 어느 하나를 선택하는 메모리 아이디는 (i + j + k)%4의 산출식으로부터 산출하는 연산 회로와;
    (b) 상기 화상 데이터 중 Y데이터에 대응하여 n = 0, UV 데이터에 대응하여 n = 1로 설정하고, 상기 카운터 P와 카운터 jj 값을 이용하여 j = jj + p를 산출하는 연산 회로와 n = 0 인 경우 k = T ×16 + m, n = 1인 경우 k = T ×16 + (m%8) × 2 + m/8)을 산출하는 연산 회로와, 독출 어드레스는 ITER 카운터가 ITER = 0인 경우에는 (k ×32 + n ×16 + j × 2 + i/4)의 식으로부터 산출하고, ITER = 1인 경우 (k ×32 + n ×16 + i × 2 + j/4)의 식으로부터 산출하는 연산 회로
    를 구비하는 것을 특징으로 하는 화상 입력 버퍼 메모리.
  11. 수평 해상도 H 및 수직 해상도 V인 YUV 포맷의 화상 데이터를 저장하는 화상 입력 버퍼 메모리와, 상기 화상 입력 버퍼 메모리의 어드레스를 지정하여 화상 데이터를 저장하도록 제어하는 메모리 콘트롤러와, 상기 화상 데이터를 8 ×8 DCT 블럭 크기로 압축 처리하여 USB 콘트롤러에 전송하는 화상 압축 엔진을 포함하는 화상 신호 처리 시스템에 있어서,
    상기 화상 입력 버퍼 메모리는 각각 선정된 바이트 크기를 지니는 복수개의 메모리로 구성되고, 상기 수평해상도는 H = 640 ± 16 x q (q = 1, 2, … ) 의 관계식을 만족하며, 상기 메모리 콘트롤러는
    0, 1, 2, …, 7까지의 숫자를 차례로 계수하는 인덱스 i 카운터;
    0, 1, 2, …, 7까지의 숫자를 차례로 계수하는 인덱스 j 카운터;
    0, 1, 2, …, 79 ± 16 x q 까지의 숫자를 차례로 계수하는 인덱스 k 카운터;
    0 또는 1의 값을 계수하는 인덱스 n 카운터;
    0 또는 1의 값을 계수하는 인덱스 ITER 카운터;
    0 또는 4의 값을 계수하는 인덱스 jj 카운터;
    0, 1, 2, …, 15 까지의 숫자를 차례로 계수하는 인덱스 m 카운터;
    0, 1, 2, 3, 4 범위의 숫자를 차례로 계수하는 인덱스 T카운터;
    0, 1, 2, 3 범위의 숫자를 차례로 계수하는 P 카운터
    를 구비하고, 상기 화상 데이터를 상기 복수개의 메모리에 기입할 메모리 아이디 및 메모리 주소를 산출하기 위하여
    (a) 상기 4개의 메모리 중 어느 하나를 선택하는 메모리 아이디는 (i + j + n)%4의 산출식으로부터 산출하는 연산 회로와;
    (b) 상기 화상 데이터 중 Y 데이터에 대응하여 n = 0, UV 데이터에 대응하여 n = 1로 설정하고, 화상 데이터 기입 어드레스는 ITER 카운터가 ITER = 0인 경우에는 (k ×32 + n ×16 + j × 2 + i/4)의 식으로부터 산출하고, ITER = 1인 경우 (k ×32 + n ×16 + i × 2 + j/4)의 식으로부터 산출하는 연산 회로
    를 구비하는 것을 특징으로 하는 화상 입력 버퍼 메모리.
  12. 수평 해상도 H 및 수직 해상도 V인 YUV 포맷의 화상 데이터를 저장하는 화상 입력 버퍼 메모리와, 상기 화상 입력 버퍼 메모리의 어드레스를 지정하여 화상 데이터를 저장하도록 제어하는 메모리 콘트롤러와, 상기 화상 데이터를 8 ×8 DCT 블럭 크기로 압축 처리하여 USB 콘트롤러에 전송하는 화상 압축 엔진을 포함하는 화상 신호 처리 시스템에 있어서,
    상기 화상 입력 버퍼 메모리는 각각 선정된 바이트 크기를 지니는 복수개의 메모리로 구성되고, 상기 수평해상도는 H = 640 ± 16 x q (q = 1, 2, … )의 관계식을 만족하며, 상기 메모리 콘트롤러는
    0, 1, 2, …, 7까지의 숫자를 차례로 계수하는 인덱스 i 카운터;
    0, 1, 2, …, 7까지의 숫자를 차례로 계수하는 인덱스 j 카운터;
    0, 1, 2, …, 79까지의 숫자를 차례로 계수하는 인덱스 k 카운터;
    0 또는 1의 값을 계수하는 인덱스 n 카운터;
    0 또는 1의 값을 계수하는 인덱스 ITER 카운터;
    0 또는 4의 값을 계수하는 인덱스 jj 카운터;
    0, 1, 2, …, 15 까지의 숫자를 차례로 계수하는 인덱스 m 카운터;
    0, 1, 2, 3, 4 범위의 숫자를 차례로 계수하는 인덱스 T카운터;
    0, 1, 2, 3, …, 5 ± q 범위의 숫자를 차례로 계수하는 P 카운터
    를 구비하고, 상기 화상 데이터를 상기 복수개의 메모리로부터 독출할 메모리 아이디 및 메모리 주소를 산출하기 위하여
    (a) 상기 4개의 메모리 중 어느 하나를 선택하는 메모리 아이디는 (i + j + n)%4의 산출식으로부터 산출하는 연산 회로와;
    (b) 상기 화상 데이터 중 Y 데이터에 대응하여 n = 0, UV 데이터에 대응하여 n = 1로 설정하고, 화상 데이터 기입 어드레스는 ITER 카운터가 ITER = 0인 경우에는 (k ×32 + n ×16 + j × 2 + i/4)의 식으로부터 산출하고, ITER = 1인 경우 (k ×32 + n ×16 + i × 2 + j/4)의 식으로부터 산출하는 연산 회로
    를 구비하는 것을 특징으로 하는 화상 입력 버퍼 메모리.
KR1020000060303A 2000-10-13 2000-10-13 제이펙 화상 데이터 버퍼링을 위한 메모리 구조 및 주소어드레스 방법 KR100353894B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020000060303A KR100353894B1 (ko) 2000-10-13 2000-10-13 제이펙 화상 데이터 버퍼링을 위한 메모리 구조 및 주소어드레스 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020000060303A KR100353894B1 (ko) 2000-10-13 2000-10-13 제이펙 화상 데이터 버퍼링을 위한 메모리 구조 및 주소어드레스 방법

Publications (2)

Publication Number Publication Date
KR20020029692A KR20020029692A (ko) 2002-04-19
KR100353894B1 true KR100353894B1 (ko) 2002-09-27

Family

ID=19693344

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020000060303A KR100353894B1 (ko) 2000-10-13 2000-10-13 제이펙 화상 데이터 버퍼링을 위한 메모리 구조 및 주소어드레스 방법

Country Status (1)

Country Link
KR (1) KR100353894B1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100465158B1 (ko) * 2002-10-16 2005-01-13 (주)씨앤에스 테크놀로지 메모리 맵 구성방법 및 그를 이용한 영상 스캐일링 다운회로
JP2005217734A (ja) * 2004-01-29 2005-08-11 Sanyo Electric Co Ltd 画像信号処理装置及び画像信号処理方法
KR100808501B1 (ko) * 2006-01-02 2008-02-29 엠텍비젼 주식회사 제이펙 파일을 분할 디코딩하는 이미지 처리 장치, 프로세서 및 이의 제어 방법과 그 방법을 수행하는 프로그램이 기록된 기록매체
KR100761871B1 (ko) * 2006-01-02 2007-09-28 엠텍비젼 주식회사 저용량 메모리를 갖는 카메라 컨트롤 프로세서를 이용한 이미지 로테이션 방법, 기록매체, 프로세서 및 이미지 처리 장치
KR101525874B1 (ko) * 2008-11-05 2015-06-04 삼성전자주식회사 회전 이미지용 버퍼 메모리, 이를 포함하는 이미지 촬상 장치 및 디스플레이 장치

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR930016798U (ko) * 1991-12-21 1993-07-29 엘지전자 주식회사 Jpeg 디코더에서의 어드레스 발생회로
KR940017873A (ko) * 1992-12-30 1994-07-27 정용문 정지영상의 압축 및 복원장치
KR950023064A (ko) * 1993-12-17 1995-07-28 양승택 표준 압축/복원 지원용 비디오 오버레이 장치
KR19980043709A (ko) * 1996-12-04 1998-09-05 김광호 Dct 블럭과 래스터 스캔을 위한 메모리 주소지정장치 및 그 방법
KR19980079436A (ko) * 1997-03-13 1998-11-25 포맨 제프리 엘 시스템-온-칩 레이아웃 컴파일링 방법 및 시스템

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR930016798U (ko) * 1991-12-21 1993-07-29 엘지전자 주식회사 Jpeg 디코더에서의 어드레스 발생회로
KR940017873A (ko) * 1992-12-30 1994-07-27 정용문 정지영상의 압축 및 복원장치
KR950023064A (ko) * 1993-12-17 1995-07-28 양승택 표준 압축/복원 지원용 비디오 오버레이 장치
KR19980043709A (ko) * 1996-12-04 1998-09-05 김광호 Dct 블럭과 래스터 스캔을 위한 메모리 주소지정장치 및 그 방법
KR19980079436A (ko) * 1997-03-13 1998-11-25 포맨 제프리 엘 시스템-온-칩 레이아웃 컴파일링 방법 및 시스템

Also Published As

Publication number Publication date
KR20020029692A (ko) 2002-04-19

Similar Documents

Publication Publication Date Title
US20090073277A1 (en) Image processing apparatus, image processing method and image pickup apparatus
KR20060123632A (ko) 직사각형 영역에 대한 버스트 메모리 액세스 방법
CN104780374B (zh) 一种基于亮度编码的帧缓存有损压缩方法及装置
US7421130B2 (en) Method and apparatus for storing image data using an MCU buffer
CN115209145A (zh) 一种视频压缩方法、系统、装置及可读存储介质
CN1937696A (zh) 图像信号处理设备及方法
JP3381077B2 (ja) 動画像復号装置
US5309528A (en) Image digitizer including pixel engine
KR100353894B1 (ko) 제이펙 화상 데이터 버퍼링을 위한 메모리 구조 및 주소어드레스 방법
JP4628647B2 (ja) DCTインタフェースに対するRGBとYCrCb色空間の間のデータのオン・ザ・フライ転送
US7336302B2 (en) Frame memory device and method with subsampling and read-out of stored signals at lower resolution than that of received image signals
CN111052742A (zh) 图像处理
TWI475875B (zh) 三維影像產生裝置
US7391932B2 (en) Apparatus and method for selecting image to be displayed
JP2001285644A (ja) ラインメモリの制御方法
JP4270169B2 (ja) ラインバッファを使わずに画像を次元変換するための方法並びに装置
CN115002304A (zh) 一种视频图像分辨率自适应转换装置
US20200342566A1 (en) Managing data for transportation
JP3710066B2 (ja) 電子スチルビデオカメラ
JP2005045797A (ja) 画像データの伝送に要する帯域幅を縮小するための方法及び装置
US20060098012A1 (en) Apparatus and method for processing image with reduced memory capacity and power consumption
US6181354B1 (en) Image generator using display memory
WO2013101137A1 (en) On die/off die memory management
JP4122753B2 (ja) 画像処理装置
TW200838311A (en) Method for buffering output pixel data of a JPEG image

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: 20120910

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20130910

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20140911

Year of fee payment: 13

FPAY Annual fee payment

Payment date: 20150910

Year of fee payment: 14

FPAY Annual fee payment

Payment date: 20160907

Year of fee payment: 15

FPAY Annual fee payment

Payment date: 20170908

Year of fee payment: 16

FPAY Annual fee payment

Payment date: 20180910

Year of fee payment: 17