KR100779636B1 - 버퍼 메모리 시스템 및 방법 - Google Patents

버퍼 메모리 시스템 및 방법 Download PDF

Info

Publication number
KR100779636B1
KR100779636B1 KR1020060077188A KR20060077188A KR100779636B1 KR 100779636 B1 KR100779636 B1 KR 100779636B1 KR 1020060077188 A KR1020060077188 A KR 1020060077188A KR 20060077188 A KR20060077188 A KR 20060077188A KR 100779636 B1 KR100779636 B1 KR 100779636B1
Authority
KR
South Korea
Prior art keywords
addr
buffer memory
sequence
image data
lines
Prior art date
Application number
KR1020060077188A
Other languages
English (en)
Other versions
KR20070021072A (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 KR1020060077188A priority Critical patent/KR100779636B1/ko
Publication of KR20070021072A publication Critical patent/KR20070021072A/ko
Application granted granted Critical
Publication of KR100779636B1 publication Critical patent/KR100779636B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/39Control of the bit-mapped memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10016Video; Image sequence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20021Dividing image into blocks, subimages or windows

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Image Input (AREA)

Abstract

한 화상 프레임의 화상 데이터를 처리하기 위한 적어도 하나의 버퍼 메모리를 구비하는 버퍼 메모리 시스템에 사용을 위한 방법이 개시된다. 이 방법은 상기 화상 데이터의 제1 복수의 라인들을 제1 기록 시퀀스로 상기 버퍼 메모리에 기록하는 단계; 상기 화상 데이터의 제1 복수의 라인들을 제1 판독 시퀀스로 상기 버퍼 메모리로부터 판독하는 단계; 및 상기 제1 복수 라인들의 판독을 완료하기 전에 상기 제1 기록 시퀀스와는 다른 제2 기록 시퀀스로 상기 버퍼 메모리에 상기 화상 데이터의 제2 복수 라인들을 기록하는 단계를 포함한다.
버퍼 메모리, 라스터-블록, 화상 데이터, 라스터-시퀀스, 기록 시퀀스, 판독 시퀀스

Description

버퍼 메모리 시스템 및 방법{BUFFER MEMORY SYSTEM AND METHOD}
도 1은 임의의 개시된 실시예들에 따른 일례의 버퍼 메모리 시스템을 나타내고;
도 2는 임의의 개시된 실시예들에 따른 일례의 버퍼 메모리 시스템을 나타내고;
도 3은 임의의 개시된 실시예들에 따른 일례의 버퍼 메모리 세그먼트를 나타내고; 그리고
도 4는 임의의 개시된 실시예들에 따른 버퍼 메모리 시스템의 일례의 동작 시퀀스를 나타낸다.
*도면의 주요 부분에 대한 부호의 설명*
102: 버퍼 메모리 104: 어드레스 생성부
106: 입력 108: 출력
201, 202, 203, 208: 화소 라인
301,302,303,304,305,306,307,308: 8 화소 셀
본 발명은 2005년 8월 17일자 출원된 선행 일본 특허출원 제2005-236673호의 우선권주장에 기반하여 그 이점을 주장하는데 그 전체 내용을 여기에서 참조하기로 한다.
본 발명은 일반적으로 버퍼 메모리 기술에 관한 것으로 특히, 화상 신호 인코딩 시스템들에서 라스터-블록(raster-to-block) 변환을 위한 버퍼 메모리 시스템들에 관한 것이다.
디지털 화상들은 라인×라인 또는 화소×화소 기반으로 화상 데이터로 표현될 수 있는데, 라스터 스캔으로 알려져 있다. 위의 화상 데이터를 라스터-시퀀스 화상 데이터라 할 수 있다. 그러나 이미지 신호 인코딩 시스템 등의 화상 신호 처리 시스템은 블록×블록 기반하여 화상 처리 변환 알고리즘들을 사용할 수 있다. 라스터-블록 변환은 화상 처리 변환 알고리즘들에 블록 신호 데이터를 제공하도록 라스터-시퀀스 화상 데이터를 변환하는데 사용될 수 있다.
임의의 화상 신호 처리 시스템들은 2개의 동일한 버퍼 메모리들을 포함하는 이중 버퍼 메모리 시스템을 사용한다. 어드레스 회로가 또한 2개의 버퍼 메모리들에/그로부터 기록 및 판독을 위한 어드레스들을 생성하도록 제공된다. 이중 버퍼 메모리 시스템의 동작동안, 한 화상 프레임의 라스터 시퀀스 화상 신호들의 임의수의 라인들이 제1 버퍼 메모리에 기록된다. 이어서 라스터-시퀀스(raster-sequence) 화상 신호들의 임의의 수의 라인들이 제1 버퍼 메모리로부터 블록단위로 판독되어 라스터-블록(raster-to-block) 변환을 실행한다.
판독 동작과 동시에 라스터-시퀀스 화상 신호들의 제2의 동수의 라인들이 제 2 버퍼 메모리에 기록된다. 제1 버퍼 메모리로부터 판독의 완료후, 제2 버퍼 메모리는 제1 버퍼 메모리가 다음 즉, 라스터-시퀀스 화상 신호들의 제3의 동수의 라인들을 기록하기 위해 대기하는 동안 판독대기한다. 따라서 제1 버퍼 메모리 및 제2 버퍼 메모리는 호상 프레임의 모든 라스터-시퀀스 화상 신호들이 처리될때 까지 판독 및 기록을 위해 번갈아 사용된다.
종래의 이중 버퍼 메모리 시스템이 고속 라스터-블록 변환들을 제공하지만, 2개의 대용량 고속 버퍼 메모리들이 종종 필요하다. 따라서 종래의 이중 버퍼 메모리 시스템들은 때로 대형 크기 및/또는 고 비용을 가질 수 있다. 임의의 화상 처리 분야에 있어서, 이러한 대형 크기 및/또는 고 비용으로 인해 종래의 이중 버퍼 메모리 시스템들은 바람직하지 못하고 그리고/또는 비실용적이다.
개시된 시스템들의 임의의 특징과 일치하는 방법들 및 시스템들은 전술한 하나 이상의 문제들을 해소하는 것에 지향된다.
본 발명의 한 특징은 한 화상 프레임의 화상 데이터를 처리하기 위한 적어도 하나의 버퍼 메모리를 구비하는 버퍼 메모리 시스템에 사용을 위한 방법을 포함한다. 이 방법은 상기 화상 데이터의 제1 복수의 라인들을 제1 기록 시퀀스로 상기 버퍼 메모리에 기록하는 단계; 상기 화상 데이터의 제1 복수의 라인들을 제1 판독 시퀀스로 상기 버퍼 메모리로부터 판독하는 단계; 및 상기 제1 복수 라인들의 판독을 완료하기 전에 상기 제1 기록 시퀀스와는 다른 제2 기록 시퀀스로 상기 버퍼 메모리에 상기 화상 데이터의 제2 복수 라인들을 기록하는 단계를 포함한다.
본 발명의 다른 특징은 한 화상 프레임의 처리에 사용을 위한 버퍼 메모리 시스템을 포함한다. 상기 버퍼 메모리 시스템은 화상 데이터 및 제어 섹션을 저장하도록 구성된 적어도 하나의 버퍼 메모리를 구비한다. 제어 섹션은 화상 데이터를 버퍼 메모리에 기록 및 그로부터 판독하기 위해 어드레스들을 생성하도록 구성될 수 있다. 어드레스들은 상기 화상 데이터의 제1 복수의 라인들을 제1 기록 시퀀스로 상기 버퍼 메모리에 기록하고; 상기 화상 데이터의 제1 복수의 라인들을 제1 판독 시퀀스로 상기 버퍼 메모리로부터 판독하고; 그리고 상기 제1 복수 라인들의 판독을 완료하기 전에 상기 제1 기록 시퀀스와는 다른 제2 기록 시퀀스로 상기 버퍼 메모리에 상기 화상 데이터의 제2 복수 라인들을 기록하도록 생성될 수 있다.
첨부 도면들에 나타낸 일례의 대표적 실시예들에 대해 상세히 살펴보기로 한다. 가능하면 도면 전체에 걸쳐서 동일 또는 유사의 부품에 대해서는 동일 참조 부호를 부여했다.
도 1은 대표적 버퍼 메모리 시스템(100)을 도시한다. 도 1에 도시한 바와 같이, 버퍼 메모리 시스템(100)은 버퍼 메모리(102), 어드레스 생성부(104), 입력(106), 및 출력(108)을 구비한다. 장치들의 수 및 형태들은 단지 예시적이며, 다른 수 및/또는 형태들의 장치들이 사용될 수 있다.
입력(106)은 버퍼 메모리(102)의 기록 동작들을 위해 버퍼 메모리(102)에 라스터-시퀀스 화상 신호들(즉, 라스터-시퀀스 화상 데이터)을 버퍼 메모리(102)에 제공할 수 있는 적합한 형태의 입력을 포함한다. 예를 들어, 입력(106)은 어드레스 생성부(104)에 의해 생성된 어드레스들에 기반하여 버퍼 메모리(102)에 저장되는 라스터-시퀀스 화상 신호들을 제공하기 위한 적합한 폭의 데이터 버스를 포함한다. 그러나 다른 형태들의 입력이 사용될 수도 있다. 라스터-시퀀스 화상 신호들은 라인 단위의 시퀀스 화상 데이터를 포함할 수 있으며, 시퀀스 데이터의 각 라인을 라스터 라인이라 한다. 라스터-시퀀스 화상 신호들의 라스터 라인들은 입력(106)을 통해 버퍼 메모리(102)에 연속적으로 기록 또는 저장된다.
저장된 라스터-시퀀스 화상 신호들은 어드레스 생성부(104)에 의해 생성된 어드레스들에 기반하여 출력(108)을 통해 블록 순으로 버퍼 메모리(102)로부터 판독될 수 있다. 출력(108)은 변환된 화상 신호들을(즉, 블록 화상 데이터) 판독 동작 또는 일련의 판독 동작들에서 외부 장치에 제공하는 임의의 적합한 형태의 출력을 포함할 수 있다. 예를 들어, 출력(108)은 버퍼 메모리(102)에 결합된 임의의 회부 장치들(도시 않음)에 블록 화상 신호들을 제공하기 위해 적합한 폭의 데이터 버스를 포함할 수 있다. 그러나 다른 형태들의 출력이 또한 사용될 수 있다.
어드레스 생성부(104)는 버퍼 메모리(102)의 판독 및 기록 동작들을 위한 어드레스들을 생성하는 임의의 적합한 형태의 논리 장치 또는 제어 장치를 포함할 수 있다. 어드레스 생성부(104)는 또한 버퍼 메모리(102)의 동작 상태에 기반하여 판독 및/또는 기록을 위한 어드레스들을 동적으로 결정하도록 어드레스 계산 알고리즘들을 실시하기 위한 적합한 논리를 포함할 수 있다. 어드레스 생성부(104)는 또한 버퍼 메모리(102)의 판독 및/또는 기록 동작들을 위한 어드레스들을 생성하도록 프로세스 등의 외부 제어기(도시 않음)로 제어될 수도 있다. 또한 어드레스 생성 부(104)는 버퍼 메모리(102)의 기록 동작중 판독 동작을 위한 어드레스들을 생성하거나 버퍼 메모리(102)의 판독 동작중 기록 동작을 위한 어드레스들을 생성할 수 있다.
버퍼 메모리(102)는 화상 처리 분야에 사용을 위한 임의의 적합한 형태의 메모리를 포함할 수 있다. 도 2는 버퍼 메모리(102)의 대표적인 구성을 도시한다. 도 2에 도시한 바와 같이, 버퍼 메모리(102)는 라인 단위의 구조로 될 수 있다. 예를 들어 버퍼 메모리(102)는 총 8개의 화소 라인용 화소 라인들(201, 202, 203,...및 208)을 포함하도록 구성될 수 있다. 그러나 다른 수들의 화소 라인들이 사용될 수 있다. 각 화소 라인들(201-208)은 화소 셀들의 시퀀스를 포함할 수 있다. 화소 셀은 한 바이트(예를 들어, 8비트) 메모리일 수 있다. 화소 셀들의 시퀀스는 어드레스 생성부(104)에 의해 생성된 어드레스들에 기반하여 기록 및/또는 동작들을 위해 액세스될 수 있다.
예를 들어, 화소 셀들의 시퀀스(예를 들어, 기록 및/또는 판독)를 액세스하기 위한 어드레스들은 도 2에 도시한 바와 같이 단일 화소 라인의 화소 셀들 중에서 좌에서 우로 및/또는 위에서 아래로 순차적으로 증가될 수 있다. 그러나 다른 형태의 어드레싱 구성이 사용될 수도 있다.
화소 라인들(201-208) 각각은 또한 화소 세그먼트의 시퀀스로 나타낼 수 있으며, 각각의 화소 세그먼트는 소정수의 화소 셀들(예를 들어, 8화소 셀들)을 포함한다. 예를 들어 화소 라인(201)은 총 n 화소 세그먼트들을 위한 화소 세그먼트들(201-1, 201-2, 201-3,..., 201-m,..., 및 201-n)을 포함할 수 있다. 또한 도 3 에 도시한 바와 같이, 각 화소 세그먼트(예를 들어 화소 세그먼트(201-1)는 화소 셀들(301,302,303,304,305,306,307 및 308)과 같은 8 화소 셀들을 포함할 수 있다.
또한 수 "n"은 화소 라인(n)의 화소 세그먼트들의 총수 또는 화소 셀들(n×8)의 총수로 화소 라인들의 길이를 나타낸다. 한편, 숫자 "m"은 화상 처리 분야에 있어서 화상의 특정 프레임의 라스터-시퀀스 화상 신호들의 라스터 라인의 길이를 나타낸다. 라스터 라인은 화소 라인(화소 세그먼트들(201-1 내지 201-m)에 기록될 수 있다. 라스터 라인의 길이는 또한 한 화소 라인의 화소 세그먼트들의 총수(m) 또는 화소 셀들의 총수(m×8)로 나태낼 수도 있다. 간략화를 위해, n은 화소 라인이 특정 화상 프레임의 라스터 라인을 유지하기에 충분한 길이로 되도록 m보다 크거나 같을 수 있다.
버퍼 메모리(102)의 총 크기는 화소 라인당 화소 셀들의 총수와 곱해진 화소 라인들의 총수로서 계산될 수 있다(예를 들어, 8×n×8 = 64×n 화소 셀들). 한편, 실제 사용된 메모리의 총 크기는 라스터 라인당 화소 셀들의 총수와 곱해진 화소 라인들의 총수로서 계산될 수 있다(예를 들어, 8×m×8 = 64×m 화소 셀들) 어드레스 생성부(104)는 버퍼 메모리의 총 크기 및/또는 실제 사용된 메모리의 총 크기에 기반하여 동작들을 판독 및/또는 기록하기 위한 적절한 어드레스들을 결정할 수 있다.
버퍼 메모리(102)가 화상 신호 부호화 시스템 등의 화상 신호 처리 시스템에 사용될 때, 라스터-블록 변환이 버퍼 메모리(102)를 사용하여 실행될 수 있다. 예를 들어, 화상 신호 처리 부호화 시스템은 2D 이산 코사인 변환(2D-DCT) 등의 화상 변환 알고리즘을 이용하여 블록 단위 화상 데이터에 기반한 MPEG 비디오 압축 또는 JPEG 비디오 압축을 실행한다. 화상 데이터 프레임의 연속적인 라스터-시퀀스 화상 데이터를 변환하기 위하여 화상 프레임의 라스터-시퀀스 화상 신호들이 라인 단위로 버퍼 메모리(102)에 저장될 수 있고, 저장된 화상 신호들은 블록 단위로 버퍼 메모리(102)로부터 판독될 수 있다. 화상 신호들의 각각의 블록을 화소 블록이라 하고, 장방형, 정방형 또는 임의의 형상을 될 수 있다.
화소 블록의 크기는 특정 화상 처리 어플리케이션에 따라 미리 정해질 수 있다. 일 실시예에 있어서, 화소 블록 크기는 8 화소×8 화소로 될 수 있다. 화소 블록은 메모리 블록 내의 버퍼 메모리(102)에 저장된다. 예를 들어, 도 2에 도시한 바와 같이, 메모리 블록들(200-1, 200-2, 200-3,...,200-m) 각각은 라스터-시퀀스 화상 신호들의 각 화소 라인들로부터 대응의 화소 세그먼트를 포함한다. 메모리 블록(200-1)은 각 화소 라인들(201, 202, 203,..., 및 208)의 제1 화소 세그먼트들(201-1, 202-1, 203-1,...및 208-1)을 포함하고; 메모리 블록(200-2)은 각 화소 라인들(201, 202, 203,...,및 208)의 제2 화소 세그먼트(201-2, 202-2, 203-2, 및 208-2)을 포함하고, 이런식으로 계속된다. 예시의 목적을 위해, 각 화소 세그먼트는 8 화소 셀들을 포함하고, 라스터-시퀀스의 8 라인들은 버퍼 메모리(102)에 기록되고, 메모리 블록들(200-1, 200-2, 200-3,..., 및 200-m은 8 화소×8 화소의 크기이고, 화상 신호들의 화소 블록을 유지한다.
메모리 블록에 저장된 라스터-시퀀스 화상 신호들은 라스터-블록 변환을 위해 화소 블록으로서 판독될 수 있다. 예를 들어, 도 2는 한 화소 블록의 데이터를 저장하기 위한 대응의 장방형 (8×8) 형상 메모리 블록을 나타낸다. 그러나 화소 블록의 데이터는 화소 블록의 데이터를 판독할 때 화소 블록이 형성되는한은 버퍼 메모리(102)의 어디에도 저장될 수 있다.
라스터-블록 변환 동작중, 라스터-시퀀스 화상 신호들은 예를 들어 화소 라인들(201, 202, 203,..., 및 208)내의 버퍼 메모리(102)내에 기록될 수 있다. 이어서 라스터-시퀀스 화상 신호들은 메모리 블록(200-1, 200-2, 200-3,..., 및 200-m)의 순으로 블록 단위 순으로 판독되거나, 출력(108)에 제공될 수 있다. 이러한 기록 및/또는 판독 동작들은 어드레스 생성부(104)에서 생성된 어드레스들에 기반한다.
도 4에 도시한 바와 같이, 라스터-블록 변환의 개시시 라스터-시퀀스 화상 신호들은 어드레스 생성부(104)에 의해 생성된 어드레스들에 기반하여 제1 기록 시퀀스에서 버퍼 메모리(102)내에 기록될 수 있다(단계 402). 라스터-시퀀스 화상 신호들은 라인 단위 순으로 버퍼 메모리(102)에 기록될 수 있다. 예를 들어, 라스터-시퀀스 화상 신호들의 제1 라인은 화소 세그먼트들(201-1. 201-2, 201-3,..., 및 201-m)(전술한 바와 같이 라인의 길이가 m이라고 가정) 내에 순서적으로 기록될 수 있다. 유사하게, 라스터-시퀀스 화상 신호들의 제2 라인은 화소 세그먼트들(202-1, 202-2, 202-3,..., 및 202-m)에 기록되고, 이런식으로 계속된다. 라스터-시퀀스 화상 신호들의 제1 8라인들에 대한 기록 동작은 라스터-시퀀스 화상 신호들의 8 라인이 세그먼트들(208-1. 208-2, 208-3,...,208-8-m)내에 연속적으로 기록된 후, 완전하게 될 수 있다.
라스터-시퀀스 화상 신호들의 제1의 8라인들이 버퍼 메모리(102)에 기록된 후, 라스터-블록 변환을 위한 판독 동작이 개시될 수 있다. 버퍼 메모리(102)에 저장된 라스터-시퀀스 화상 신호들은 제1 판독 시퀀스에서 판독되거나 출력(108)으로 제공될 수 있다(단계 404). 예를 들어, 화소 블록들은 메모리 블록(200-1)로부터 시작하여 이어서 메모리 블록(200-2), 그리고 최종 메모리 블록(200-m)이 판독될 때까지 계속해서 연속적으로 판독된다.
라스터-시퀀스 화상 신호들의 제1의 8라인들의 판독 동작중 메모리 블록이 판독된후, 이 메모리 블록은 처리중의 화상 프레임의 라스터-시퀀스 화상 신호들의 제2의 8 라인들을 위한 기록 동작을 시작할 수 있다. 어드레스 생성부(104)는 제2 기록 시퀀스에서 라스터-시퀀스 화상 신호들을 기록하기 위한 어드레스들을 생성할 수 있다(단계 406).
제2 기록 시퀀스에서, 라스터-시퀀스 화상 신호들의 제2 8 라인들의 각 라인은 활용가능한 메모리 블록들에 기반하여 버퍼 메모리(102)에 기록될 수 있다. 예를 들어, 메모리 블록(200-1)의 판독 동작이 라스터-시퀀스 화상 신호들의 제1 8 라인들에 대해 완료된 후, 라스터-시퀀스 화상 신호들의 제2의 8 라인들의 제1 라인이 메모리 블록(200-1)에 기록될 수 있다. 즉, 라스터-시퀀스 화상 신호들의 제1 라인이 화소 세그먼트들(201-1, 202-1, 203-1,..., 및 208-1)에 기록될 수 있다. 설명의 편의를 위해, m이 8의 값을 갖는다고 가정하면, 라스터-시퀀스 화상 신호들의 제1 라인은 메모리 블록(200-1)에 완전하게 기록될 수 있다. 유사하게 버퍼 메모리(102)의 판독 동작중, 라스터-시퀀스 화상 신호들의 제2의 8 라인들의 나머지 는 다른 메모리 블록들에 기록될 수 있다. 예를 들어, 라스터-시퀀스 화상 신호들의 제2의 8 라인들의 제2 라인은 화소 세그먼트들(201-2, 202-2, 203-2,...,및 208-2) 등에 기록될 수 있다.
라스터-시퀀스 화상 신호들의 제2의 8 라인들을 위한 기록 동작들중 또는 기록 동작들후(단계 406), 어드레스 동작부(104)는 제2 판독 시퀀스에서 라스터-시퀀스 화상 신호들의 제2의 8 라인들을 판독한다(단계 408). 라스터-시퀀스 화상 신호들의 제2의 8 라인들은 라스터-시퀀스 화상 신호들의 각 라인들의 대응 세그먼트들이 연속적으로 판독되어 화소 블록들을 형성하도록 특정 순서로 판독될 수 있다. 전술한 예에 있어서, m을 8이라 할 때, 화소 세그먼트들(201-1, 201-2, 201-3,..., 및 201-8)(즉, 라스터-시퀀스 화상 신호들의 제2의 8개의 각 라인들의 제1 세그먼트들)이 판독되어 제1 화소 블록을 형성하고; 화소 세그먼트들(201-1, 202-2, 202-3,..., 및 202-8)이 판독되어 제2 화소 블록을 형성하고, 이런식으로 계속된다.
또한, 라스터-시퀀스 화상 신호들의 제2 라인들의 판독 동작중 또는 그 후, 어드레스 생성부(104)는 자동적으로 또는 외부 제어기들의 제어하에 변환될 라스터-시퀀스 화상 신호들의 많은 라인들이 있는지를 판단한다(단계 410). 변환될 라스터-시퀀스 화상 신호들의 많은 라인들이 있는 경우, 어드레스 생성부(104)는 단계 402로부터 많은 라스터-블록 변환 동작들(예를 들어, 기록 및 판독 동작들 등)을 위한 어드레스들을 계속하여 생성할 수 있다. 한편, 화상 프레임의 라스터-시퀀스 화상 신호들의 모든 라인들이 변환되면, 어드레스 생성부(104)는 기록 및 판독 동작들을 완료할 수 있다.
전술한 바와 같이, 어드레스 생성부(104)는 기록 및/또는 판독 동작들을 위한 어드레스들을 생성한다. 어드레스 생성부(104)는 소정의 어드레스 계산 알고리즘들에 기반하여 어드레스들을 생성할 수 있다. 예를 들어, 어드레스 생성부(104)는 다음과 같은 기록 동작들을 위해 어드레스들을 계산하거나 갱신한다.
temp_addr_w = addr_w + incr_w: 및
addr_w = (temp_addr_w%hpix) + (temp_addr_w/hpix) (1);
여기서 addr_w는 기록 동작을 위해 생성된 기록 어드레스이고; hpix는 입력 셀들의 수 당(in terms of) 화소 라인들의 길이이고; incr_w는 다음 또는 갱신된 기록 어드레스를 구동하기 위한 현재의 기록 어드레스에 부가될 증분 값이고; 그리고 temp_addr_waddr_w 업데이트하기 위해 사용된 중간 변수이고; "%"는 정수 모듈로 연산자(integer modulo operator)이고; "/"는 정수 나눗셈 연산자(integer division operator)이다.
또한, 어드레스 생성부(104)는 다음과 같이 판독 동작을 위한 어드레스들를 계산 또는 갱신한다.
temp_addr_r = addr_r + incr_r: 및
addr_r = (temp_addr_r%hpix) + (temp_addr_r/hpix) (2);
여기서 addr_r은 판독 동작을 위해 생성된 어드레스이고, temp _ addr _raddr _r을 업데이트하기 위한 중간 변수이고, 그리고 incr_r은 다음 즉 갱신된 판독 어드레스를 유도하도록 현재의 판독 어드레스에 부가될 증분 값이다.
어드레스 생성부(104)는 전술한 방정식들의 항들을 초기화한다. 예를 들어 어드레스 생성부(104)는 a ddr_w = 0; addr_r = 0; incr_w = 1 그리고 incr _r = hpix/8로 초기화한다.
어드레스 생성부(104)는 버퍼 메모리(102) 내의 라스터-시퀀스 화상 신호들의 제1 소정의 라인들(예를 들어 8 라인들)(예를 들어 화소 라인들(201-208)을 저장하기 위해 기록 어드레스들을 생성할 수 있다. 전술한 바와 같이, 이 기록 시퀀스를 또한 제1 기록 시퀀스라 할 수 있다. 화상 신호들의 모든 8라인들이 버퍼 메모리(102)에 기록된 후, 어드레스 생성부(104)는 제2 기록 시퀀스에서 화상 신호들의 다음 8 라인들을 기록하기 위해 준비되는 add_r과 같은 증분 값 incr _w를 변화시킬 수 있다. 동시에 제1 판독 시퀀스가 저장된 화상 데이터를 블록 단위로 판독하도록 개시될 수 있다.
화상 데이터의 제1 8 라인들이 판독된 후, 어드레스 생성부는 제2 판독 시퀀스내의 버퍼 메모리(102)에 저장된 화상 신호들의 다음 8 라인들을 판독하기 위한 준비되는 다음과 같은 증분 값 incr _r을 변화시킬 수 있다.
temp_incr = incr _r×hpix /8 (3); 및
incr_r = (temp_incr%hpix) + (temp_incr/hpix) (4);
여기서 temp_incrincr_r을 업데이트하는데 사용된 중간 값이다.
또한, 상기 방정식들 (1)-(4)는 임의의 하드웨어 장치들 또는 논리들에 보다 적합하게 되도록 간략하게 될 수 있다. 예를 들어, 기록 어드레스가 hpix이하라 할 때, 방정식 (1)은 다음과 같이 간략화될 수 있다.
(temp_addr_w<hpix) 이면,
{addr_w = temp_addr_w}
그렇지 않으면,
{addr_w = temp_addr_w-hpix + 1}
방정식 (2)는 다음과 같이 간략화될 수 있다.
(temp_addr_r<hpix) 이면,
{addr_r = temp_addr_r}
그렇지 않으면,
{addr_r = temp_addr_r-hpix + 1}
또한 증분 값 incr_r도 간략화될 수 있다. 예를 들어, 방정식 (3)과 (4)를 결합함으로써 증분 값 incr_r은 다음과 같이 계산될 수 있다.
incr_r = ((incr_r×hpix/8)%hpix) + ((incr_r×hpix/8)/hpix)
= ((incr_r×hpix/8)%hpix) + ((incr_r/8) (5)
또한 incr_r는 다음과 같이 계산될 수 있다.
incr_r×hpix = hpix×{(incr_r%8) + (incr_r/8)<<3}
= hpix×(incr_r%8) + hpix ×{(incr_r/8)<<3}
= hpix×(incr_r%8) + {hpix ×{(incr_r/8)}<<3
따라서,
incr_r×hpix/8 = hpix×(incr_r%8)/8 + hpix×(incr_r/8).
또한, hpix×(incr_r/8)이 hpix의 정수배이기 때문에,
(incr_r×hpix/8)%hpix는 다음과 같이 계산될 수 있다.
(incr_r×hpix/8)%hpix = hpix×(incr_r%8)/8
따라서, 방정식 (5)는 또한 다음과 같이 간략화될 수 있다.
incr_r = ((incr_r%8)×hpix/8) + (incr_r/8).
incr_r이 8과 나머지로 제산(除算)을 이용하여 계산될 수 있으므로, 계산은 다수의 계산 회로들을 갖지 않고 승산기 회로 및 가산기/감산기 회로를 이용한다. 즉, 어드레스 생성부(104)는 하나의 승산기 및 하나의 가산기/감산기로 구현될 수 있다. 명세서 및 실시예들은 예로서만 간주되고, 본 발명의 다른 실시예들이 가능함은 여기에 기술한 발명의 명세서 및 실시예로부터 명백할 것이다.
본 발명은 임의의 화상 처리 분야에 있어서, 이러한 대형 크기 및/또는 고 비용으로 인해 종래의 이중 버퍼 메모리 시스템들은 바람직하지 못하고 그리고/또는 비실용적인 문제를 해소하는 효과를 가질 수 있다.

Claims (13)

  1. 임의 화상 프레임의 화상 데이터를 처리하기 위해 적어도 하나의 버퍼 메모리를 구비하는 버퍼 메모리 시스템에 사용을 위한 방법으로서,
    상기 화상 데이터의 제1 복수의 라인들을 제1 기록 시퀀스로 상기 버퍼 메모리에 기록하는 단계;
    상기 화상 데이터의 제1 복수의 라인들을 제1 판독 시퀀스로 상기 버퍼 메모리로부터 판독하는 단계; 및
    상기 제1 복수 라인들의 판독을 완료하기 전에 상기 제1 기록 시퀀스와는 다른 제2 기록 시퀀스로 상기 버퍼 메모리에 상기 화상 데이터의 제2 복수 라인들을 기록하는 단계를 포함하는 버퍼 메모리 시스템에 사용을 위한 방법.
  2. 제2항에 있어서,
    상기 화상 데이터의 제2 복수의 라인들을 상기 버퍼 메모리로부터 상기 제1 판독 시퀀스와는 다른 제2 판독 시퀀스로 판독하는 단계를 추가로 포함하는 버퍼 메모리 시스템에 사용을 위한 방법.
  3. 제2항에 있어서,
    상기 제1 기록 시퀀스는 한 라인 단위 순의 상기 화상 데이터의 저장을 포함하고,
    상기 제1 판독 시퀀스는 한 블록 단위 순의 상기 화상 데이터의 판독을 포함하는 버퍼 메모리 시스템에 사용을 위한 방법.
  4. 제3항에 있어서,
    상기 제2 기록 시퀀스는 상기 제1 기록 시퀀스에 의해 판독된 메모리 블록내에 상기 화상 데이터의 제2 복수의 라인들중 한 라인의 저장을 포함하는 버퍼 메모리 시스템에 사용을 위한 방법.
  5. 제4항에 있어서,
    8 화소 단위의 크기를 갖기 위한 상기 메모리 블록을 제공하는 단계를 추가로 포함하는 버퍼 메모리 시스템에 사용을 위한 방법.
  6. 제2항에 있어서,
    addr_w 또는 addr_r은 기록 또는 판독 어드레스이고, hpix는 상기 제1 복수의 라인들과 상기 제2 복수의 라인들의 각 라인의 길이이고, incr_w 또는 incr_r은 상기 기록 또는 판독어드레스를 업데이트하기 위한 증분 값이고, 그리고 temp_addr_w 또는 temp_addr_r 정수이고,
    제1 기록 시퀀스 및 제2 기록 시퀀스는,
    temp_addr_w = addr_w + incr_w ; 및
    addr_w = (temp_addr_w%hpix) + (temp_addr_w/hpix)로 계산된 기록 어드레스 들을 이용하고; 또는
    상기 제1 판독 시퀀스 및 상기 제2 판독 시퀀스는,
    temp_addr_r = addr_r + incr_r ; 및
    addr_r = (temp_addr_r%hpix) + (temp_addr_r/hpix)로 계산된 기록 어드레스를 이용하는 버퍼 메모리 시스템에 사용을 위한 방법.
  7. 한 화상 프레임의 화상 데이터의 처리에 사용을 위한 버퍼 메모리 시스템으로서,
    상기 화상 데이터를 저장하도록 구성된 적어도 하나의 버퍼 메모리; 및
    상기 버퍼 메모리에 그리고 상기 버퍼 메모리로부터 화상 데이터를 기록 및 판독하기 위한 어드레스들을 생성하도록 구성된 제어 섹션을 구비하고:
    상기 어드레스들은,
    상기 화상 데이터의 제1 복수의 라인들을 제1 기록 시퀀스로 상기 버퍼 메모리에 기록하고;
    상기 화상 데이터의 제1 복수의 라인들을 제1 판독 시퀀스로 상기 버퍼 메모리로부터 판독하고; 그리고
    상기 제1 복수 라인들의 판독을 완료하기 전에 상기 제1 기록 시퀀스와는 다른 제2 기록 시퀀스로 상기 버퍼 메모리에 상기 화상 데이터의 제2 복수 라인들을 기록하도록 생성되는 화상 데이터 처리에 사용을 위한 버퍼 메모리 시스템.
  8. 제7항에 있어서,
    상기 제어 섹션은 상기 화상 데이터의 제2 복수의 라인들을 상기 버퍼 메모리로부터 상기 제1 판독 시퀀스와는 다른 제2 판독 시퀀스로 판독하기 위해 어드레스들을 생성하도록 추가로 구성되는 화상 데이터 처리에 사용을 위한 버퍼 메모리 시스템.
  9. 제8항에 있어서,
    상기 제1 기록 시퀀스는 한 라인 단위 순으로 상기 화상 데이터를 저장하고; 그리고
    상기 제1 판독 시퀀스는 한 블록 단위 순으로 상기 화상 데이터를 판독하기 위해 어드레스들을 생성하도록 구성되는 화상 데이터 처리에 사용을 위한 버퍼 메모리 시스템.
  10. 제9항에 있어서,
    상기 제어 섹션은 상기 제2 기록 시퀀스가 상기 제1 기록 시퀀스에 의해 판독된 메모리 블록내에 상기 화상 데이터의 제2 복수의 라인들중 한 라인을 저장하기 위해 어드레스들을 생성하도록 구성되는 화상 데이터 처리에 사용을 위한 버퍼 메모리 시스템.
  11. 제10항에 있어서,
    상기 메모리 블록은 8 화소 단위의 크기를 갖는 화상 데이터 처리에 사용을 위한 버퍼 메모리 시스템.
  12. 제8항에 있어서,
    addr_w 또는 addr_r은 기록 또는 판독 어드레스이고, hpix는 상기 제1 복수의 라인들과 상기 제2 복수의 라인들의 각 라인의 길이이고, incr_w 또는 incr_r은 상기 기록 또는 판독어드레스를 업데이트하기 위한 증분 값이고, 그리고 temp_addr_w 또는 temp_addr_r 정수이고,
    제1 기록 시퀀스 및 제2 기록 시퀀스는,
    temp_addr_w = addr_w + incr_w ; 및
    addr_w = (temp_addr_w%hpix) + (temp_addr_w/hpix)로 계산된 기록 어드레스들을 이용하고; 또는
    상기 제1 판독 시퀀스 및 상기 제2 판독 시퀀스는,
    temp_addr_r = addr_r + incr_r ; 및
    addr_r = (temp_addr_r%hpix) + (temp_addr_r/hpix)로 계산된 기록 어드레스를 이용하는 화상 데이터 처리에 사용을 위한 버퍼 메모리 시스템.
  13. 제7항에 있어서,
    상기 제어 섹션은 상기 화상 데이터를 기록 및 판독하기 위한 어드레스들을 생성하도록 구성된 승산기 회로 및 가산기/감산기 회로를 포함하는 화상 데이터 처리에 사용을 위한 버퍼 메모리 시스템.
KR1020060077188A 2005-08-17 2006-08-16 버퍼 메모리 시스템 및 방법 KR100779636B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020060077188A KR100779636B1 (ko) 2005-08-17 2006-08-16 버퍼 메모리 시스템 및 방법

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JPJP-P-2005-00236673 2005-08-17
KR1020060077188A KR100779636B1 (ko) 2005-08-17 2006-08-16 버퍼 메모리 시스템 및 방법

Publications (2)

Publication Number Publication Date
KR20070021072A KR20070021072A (ko) 2007-02-22
KR100779636B1 true KR100779636B1 (ko) 2007-11-26

Family

ID=41637763

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060077188A KR100779636B1 (ko) 2005-08-17 2006-08-16 버퍼 메모리 시스템 및 방법

Country Status (1)

Country Link
KR (1) KR100779636B1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07129756A (ja) * 1993-11-09 1995-05-19 Ricoh Co Ltd バッファメモリ装置
JPH07141500A (ja) * 1993-11-19 1995-06-02 Fujitsu Ltd 画像処理装置
JPH0844617A (ja) * 1994-07-29 1996-02-16 Sony Corp 画像処理装置
JP2001216194A (ja) 2000-01-28 2001-08-10 Sony Corp 演算処理装置
JP2005165592A (ja) 2003-12-02 2005-06-23 Matsushita Electric Ind Co Ltd データ転送装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07129756A (ja) * 1993-11-09 1995-05-19 Ricoh Co Ltd バッファメモリ装置
JPH07141500A (ja) * 1993-11-19 1995-06-02 Fujitsu Ltd 画像処理装置
JPH0844617A (ja) * 1994-07-29 1996-02-16 Sony Corp 画像処理装置
JP2001216194A (ja) 2000-01-28 2001-08-10 Sony Corp 演算処理装置
JP2005165592A (ja) 2003-12-02 2005-06-23 Matsushita Electric Ind Co Ltd データ転送装置

Also Published As

Publication number Publication date
KR20070021072A (ko) 2007-02-22

Similar Documents

Publication Publication Date Title
US5938763A (en) System for transposing data from column order to row order
US5781242A (en) Image processing apparatus and mapping method for frame memory
JP5359569B2 (ja) メモリのアクセス方法
KR100502413B1 (ko) 라스터 스캔 순서 화상 데이터와 블록 스캔 순서 화상데이터 사이의 변환을 위한 화상 처리 장치 및 방법
KR100601618B1 (ko) 계층적 움직임 추정기를 위한 최적의 데이터 공급장치 및 그방법
US20070040842A1 (en) Buffer memory system and method
KR100779636B1 (ko) 버퍼 메모리 시스템 및 방법
US20120294542A1 (en) Pixel data compression and decompression method
JP2000066950A (ja) 半導体記憶装置
US20110142128A1 (en) Method and apparatus interleaving pixel of reference image within single bank of frame memory, and video codec system having the same
KR950005061A (ko) 화상처리용 메모리 집적회로
JP3242788B2 (ja) 信号処理装置及び信号処理方法
US8922573B1 (en) Video non-buffered line memory
CN111882481A (zh) 数据传输方法及装置
US20060098012A1 (en) Apparatus and method for processing image with reduced memory capacity and power consumption
JP4135605B2 (ja) 画像処理装置
US20080246643A1 (en) Technique For Efficient Video Re-Sampling
JP4766288B2 (ja) 情報処理装置
JP3988522B2 (ja) データ処理装置及び半導体装置
KR100240005B1 (ko) 동영상 신호의 압축을 위한 프레임 메모리 제어방법 및 장치
JP2004120027A (ja) 画像処理装置
KR101586844B1 (ko) 영상 처리 장치 및 방법
GB2368695A (en) A video decompressing system with efficient memory access capability
KR100240329B1 (ko) 디지탈 영상의 움직임 보정 장치
JP2010004308A (ja) 撮像装置

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee