首页 / 专利库 / 图形技术 / 图像互换格式 / 화상 처리 장치 및 방법

화상 처리 장치 및 방법

阅读:764发布:2020-07-04

专利汇可以提供화상 처리 장치 및 방법专利检索,专利查询,专利分析的服务。并且라스터 포맷과 블록 포맷 사이의 화상 데이터를 상호 변환하는 화상 처리 장치는 휘도 성분 및 적어도 하나의 색상 성분을 포함하는 화상 데이터를 라스터 포맷으로 제공하는 화상 데이터 처리기와, 대응하는 화상 데이터 성분을 저장하기 위한 적어도 2 개의 FIFO 메모리들과, 상기 적어도 2 개의 FIFO 메모리들로부터 화상 데이터를 다중화하기 위한 다중화 수단과, 상기 다중화 수단의 출력을 선형적으로 저장하기 위한 라인 버퍼 메모리와, 상기 라인 버퍼 메모리로부터 블록 포맷의 화상 데이터 성분들을 연속적으로 전달받고 이를 압축하는 화상 압축기를 포함한다. 상기 화상 압축기는 또한 상기 라인 버퍼 메모리에 대한 공통 독출/기입 어드레스를 방생하는 어드레스 생성기와, v*h 블록 단위의 화상 데이터를 상기 라인 메모리로부터 받고 이를 압축하는 화상 압축기를 더 포함 할 수 있으며, 이때, v 라인의 화상 데이터는 상기 공통 독출/기입 어드레스를 참조하여 상기 라인 메모리로부터 블록 스캔 순서로 독출되고 다음 v 라인의 화상 데이터가 동일한 공통 독출/기입 어드레스를 참조하여 상기 라인 메모리에 기입된다.
라인 버퍼, JPEG, 라스터, 휘도, 색차,下面是화상 처리 장치 및 방법专利的具体信息内容。

  • 라스터 포맷 화상 데이터와 블록 포맷 화상 데이터의 상호 변환을 위한 화상 처리 장치에 있어서,
    휘도 성분과 2개의 색차 성분들을 포함하는 화상 데이터를 라스터 포맷으로 공급하는 화상 데이터 처리기;
    대응하는 화상 데이터 성분들을 저장하는 3개의 FIFO 메모리들;
    상기 FIFO 메모리들로부터 화상 데이터 성분들을 다중화하는 다중화 수단;
    상기 다중화 수단의 출력을 저장하는 라인 버퍼 메모리; 및
    상기 라인 버퍼 메모리로부터 블록 포맷으로 화상 데이터 성분들을 전달받고 이들을 압축하는 화상 압축기를 포함하는 화상 처리 장치.
  • 제1항에 있어서,
    상기 휘도 성분은 휘도 Y 이고, 상기 적어도 하나 이상의 색차 성분들은 색차 U 및 색차 성분 V 인 화상 처리 장치.
  • 제1항에 있어서,
    상기 다중화 수단은 2*h개의 휘도 성분, h개의 색차 성분, h 개의 색차 성분 순서로 다중화하며, 여기서 h는 블록 포맷에서 한 블록의 수평 해상도인 화상 처리 장치.
  • 제3항에 있어서,
    상기 휘도 성분을 저장하는 FIFO 메모리는 8개의 휘도 성분 Y를 저장할 수 있는 크기를 가지며,
    상기 색차 성분을 저장하는 첫 번째 FIFO 메모리는 8개의 색차 성분 U를 저장할 수있는 크기를 가지며,
    상기 색차 성분을 저장하는 두 번째 FIFO 메모리는 10개의 색차 성분 V를 저장할 수 있는 크기를 가지는 것을 특징으로 하는 화상 처리 장치.
  • 제1항 또는 제4항에 있어서,
    상기 다중화 수단은 2*h개의 휘도 성분 Y, h개의 색차 성분 U 그리고 h개의 색차 성분 V 순서로 다중화하며, 여기서 h는 블록 포맷에서 한 블록의 수평 해상도이고,
    상기 화상 압축기는 휘도 성분 Y블록, 휘도 성분 Y블록, 색차 성분 U블록 그리고 색차 성분 V블록 순서로 화상 데이터를 전달받는 화상 처리 장치.
  • 제1항 또는 제4항에 있어서,
    상기 라인 버퍼 메모리는 H*v*2 바이트의 크기를 가지며, 여기서 v는 블록 포맷에서 한 블록의 수직 해상도를 나타내며, H는 화상 데이터의 수평 해상도를 나타내는 화상 처리 장치.
  • 제4항에 있어서,
    h=8인 화상 처리 장치.
  • 제6항에 있어서,
    v=8인 화상 처리 장치.
  • 라스터 포맷 화상 데이터와 블록 포맷 화상 데이터의 상호 변환을 위한 화상 처리 장치에 있어서,
    휘도 성분 Y와, 두 개의 색차 성분 U 및 V를 포함하는 수평 해상도 H의 화상 데이터를 라스터 포맷으로 휘도 성분 Y, 색차 성분 U, 휘도 성분 Y, 색차 성분 V 순서로 공급하는 화상 처리기;
    8개의 상기 휘도 성분 Y를 저장할 수 있는 크기의 제1 FIFO 메모리;
    8개의 색차 성분 U를 저장할 수 있는 크기의 제2 FIFO 메모리;
    10개의 색차 성분 V를 저장할 수 있는 크기의 제3 FIFO 메모리;
    대응하는 Y, U 및 V 성분들을 저장하는 적어도 세 개의 FIFO 메모리들;
    상기 FIFO 메모리들로부터 16개의 Y 성분, 8개의 U 성분 및 8개의 V 성분 순서로 다중화하는 다중화 수단;
    상기 다중화 수단의 출력을 선형적으로 저장하는 통합 라인 버퍼 메모리; 및
    상기 통합 라인 버퍼 메모리로부터 Y 성분 두 블록, U 성분 한 블록 및 V 성 분 한 블록 순으로 블록 단위로 전달받아 이를 압축하는 화상 처리기를 포함하는 화상 처리 장치.
  • 제9항에 있어서,
    상기 블록 각각은 8*8 개의 성분들로 이루어지고, 상기 통합 라인 버퍼 메모리는 H*8*2 바이트의 크기인 화상 처리 장치.
  • 라스터 포맷 화상 데이터와 블록 포맷 화상 데이터의 상호 변환을 위한 화상 처리 방법에 있어서,
    휘도 성분, 제1 색차 성분 그리고 제2 색차 성분을 포함하는 화상 데이터를 라스터 포맷으로 제공하는 단계;
    휘도 성분, 제1 색차 성분 그리고 제2 색차 성분 순으로 8개의 휘도 성분을 저장할 수 있는 제1 FIFO 메모리에 상기 휘도 성분을, 8 개의 제1 색차 성분을 저장할 수 있는 제2 FIFO 메모리에 상기 제1 색차 성분을, 그리고 10개의 제2 색차 성분을 저장할 수 있는 제3 FIFO 메모리에 상기 제2 색차 성분을 저장하는 단계;
    상기 FIFO 메모리들에 저장된 화상 데이터를 하나의 통합 라인 버퍼 메모리에 저장하는 단계; 및
    상기 화상 데이터를 블록 포맷으로 출력하는 단계를 포함하는 화상 처리 방법.
  • 제11항에 있어서,
    상기 통합 라인 버퍼 메모리는 16개의 휘도 성분, 8개의 제1 색차 성분 및 8개의 제2 색차 성분 순서로 상기 화상 데이터를 저장하는 화상 처리 방법.
  • 제12항에 있어서,
    상기 화상 데이터를 블록 포멧으로 출력하는 단계는,
    두 블록의 휘도 성분, 한 블록의 제1 색차 성분 및 한 블록의 제2 색차 성분 순서로 블록 포맷으로 출력하는 화상 처리 방법.
  • 라스터 포맷 화상 데이터와 블록 포맷 화상 데이터의 상호 변환을 위한 화상 처리 방법에 있어서,
    휘도 성분, 제1 색차 성분 그리고 제2 색차 성분을 포함하는 라스터 포맷의 화상 데이터를 제공하는 단계;
    상기 휘도 성분, 제1 색차 성분 그리고 제2 색차 성분 순으로 8개의 휘도 성분을 저장할 수 있는 제1 FIFO 메모리, 8 개의 제1 색차 성분을 저장할 수 있는 제2 FIFO 메모리 그리고 그리고 10개의 제2 색차 성분을 저장할 수 있는 제3 FIFO 메모리에 대응하는 화상 데이터를 저장하는 단계;
    상기 FIFO 메모리들로부터 화상 데이터 성분들을 다중화하여 하나의 통합 라인 버퍼 메모리에 저장하는 단계; 그리고
    상기 화상 데이터를 블록 포맷으로 출력하는 단계를 포함하는 화상 처리 방 법.
  • 제14항에 있어서,
    상기 휘도 성분은 Y이고, 두 개의 색차 성분은 U 및 V인 화상 처리 방법.
  • 제14항에 있어서,
    상기 화상 데이터는 16개의 휘도 성분, 8개의 제1 색차 성분 및 8개의 제2 색차 성분 순서로 상기 통합 라인 버퍼 메모리에 저장되고,
    상기 통합 라인 버퍼 메모리에 저장된 화상 데이터는 2블록의 휘도 성분, 한 블록의 제1 색차 성분 및 한 블록의 제2 색차 성분 순서로 출력되는 화상 처리 방법.
  • 제14항에 있어서,
    상기 FIFO 메모리들에 저장된 화상 데이터를 하나의 통합 라인 버퍼 메모리에 저장하는 단계는,
    상기 FIFO 메모리들로부터 화상 데이터를 16개의 휘도 성분, 8개의 제1 색차 성분 및 8개의 제2 색차 성분 순서로 독출하고 독출한 순서로 상기 통한 라인 버퍼 메모리에 선형적으로 기입하는 것에 의해 수행되는 화상 처리 방법.
  • 제17항에 있어서,
    상기 화상 데이터가 상기 FIFO 메모리에서 독출되어 상기 통합 라인 버퍼 메모리에 기입 될 때, 새로운 화상 데이터가 상기 FIFO 메모리에 저장되는 화상 처리 방법.
  • 제17항에 있어서,
    휘도 성분을 저장하는 FIFO 메모리로부터의 초기 휘도 성분의 독출은 8개의 휘도 성분이 상기 휘도 성분을 저장하는 FIFO 메모리에 저장된 이후에 시작되는 화상 처리 방법.
  • 제17항에 있어서,
    휘도 성분을 저장하는 FIFO 메모리로부터의 초기 휘도 성분의 독출은 16개의 휘도 성분이 상기 휘도 성분을 저장하는 FIFO 메모리에 저장된 이후에 시작되는 화상 처리 방법.
  • 제15항에 있어서,
    상기 휘도 성분은 Y이고, 두 개의 색차 성분은 U 및 V인 화상 처리 방법.
  • 제14항에 있어서,
    상기 FIFO 메모리에 저장된 화상 데이터가 상기 통합 라인 버퍼 메모리에 저장될 때, 새로운 화상 데이터가 상기 FIFO 메모리에 저장되는 화상 처리 방법.
  • 제22항에 있어서,
    상기 FIFO 메모리로부터 상기 통합 라인 버퍼 메모리로의 휘도 성분의 저장은 8개의 휘도 성분이 상기 휘도 성분을 저장하는 FIFO 메모리에 저장된 이후에 시작되는 화상 처리 방법.
  • 라스터 포맷 및 블록 포맷 사이의 화상 데이터 변환을 위한 라인 버퍼 시스템에 있어서,
    휘도 성분 및 적어도 하나의 색차 성분들을 포함하는 화상 데이터를 라스터 포맷으로 받아 각 성분에 대응하는 적어도 두 개의 FIFO 메모리들;
    상기 적어도 두 개의 FIFO 메모리들에 저장된 화상 데이터 성분들을 다중화하는 다중화 수단;
    상기 다중화 수단의 출력을 저장하는 통합 라인 버퍼 메모리;
    상기 적어도 두 개의 FIFO 메모리들에 대한 독출 및 기입 동작을 제어하는 FIFO 제어기를 포함하는 것을 특징으로 하는 라인 버퍼 메모리.
  • 说明书全文

    화상 처리 장치 및 방법{IMAGE PROCESSING APPARATUS AND METHOD}

    도1a는 라인 메모리에 라스터 스캔 순서로 화상 데이터가 기입되는 것을 도시한다.

    도 1b는 라스터 스캔 순서로 라인 메모리에 저장된 화상 데이터를 블록 스캔 순서로 독출하는 것을 도시한다.

    도 2는 색성분 각각에 대하여 독립적인 라인 메모리를 사용하는 통상적인 화상 데이터 처리 장치의 라인 버퍼 시스템을 개략적으로 도시하는 블록도이다.

    도 3a는 각 색성분에 대하여 한 쌍의 라인 메모리를 사용하는 통상적인 화상 데이터 처리 장치의 라인 버퍼 시스템을 개략적으로 도시하는 블록도이다.

    도 3b는 디지털 스틸 카메라의 화상 데이터 처리기로부터 출력되는 픽셀 순서를 도시한다.

    도 3c는 각각의 라인 메모리에 저장되는 색성분을 도시한다.

    도 3d는 640*480 VGA 영상을 도시한다.

    도 4는 본 발명의 일 실시예에 따른 색성분들을 모두 하나의 통합 라인 버퍼 메모리에 저장하는 화상 데이터 처리 장치의 라인 버퍼 시스템을 개략적으로 도시한 블록도이다.

    도 5는 도 4의 화상 데이터 처리 장치의 통합 라인 버퍼 메모리에 색성분들 이 저장되는 방식을 보여주는 타이밍도이다.

    도 6a 내지 도 6e는 도 5의 타이밍도에서 시간 t0 ~ t4 시점에서의 각 FIFO 메모리들에 저장된 색성분들을 나타내는 도면들이다.

    도 7은 본 발명의 일 실시예에 따라 화상 데이터가 통합 라인 버퍼 메모리에 라스터 스캔 순서로 저장된 형태를 개략적으로 도시한 도면이다.

    도 8은 본 발명의 일 실시예에 따른 단일 라인 메모리를 사용하는 화상 처리 장치를 개략적으로 도시한 블록도이다.

    도 9a 내지 도 9d는 본 발명의 일 실시예에 따라 8*80 픽셀의 화상 데이터가 단일 라인 메모리에 저장되는 형태를 보여주기 위한 예시적인 도면이다.

    도 10a 내지 도 10d는 본 발명의 일 실시예에 따라 어드레스 버퍼에 앵커 어드레스가 저장되는 형태를 보여주기 위한 예시적인 도면이다.

    도 11은 본 발명의 일 실시예에 따른 어드레스 생성기를 보여주는 블록도이다.

    도 12a 및 도 12b는 본 발명의 일 실시예에 따른 단일 라인 메모리에 대한 독출 어드레스 포맷 및 어드레스 버퍼들에 저장되는 앵커 어드레스 포맷을 개략적으로 도시한 도면들이다.

    도 13a 및 도 13b는 본 발명의 일 실시예에 따른 앵커 어드레스 및 앵커 어드레스로부터 합성되는 단일 라인 메모리에 대한 공통 독출/기입 어드레스 포맷을 개략적으로 도시한 도면들이다.

    도 14는 본 발명의 일 실시예에 따른 초기 동작 절차를 도시하는 타이밍도이 다.

    도 15는 본 발명의 일 실시예에 따른 초기 동작 절차 이후의 어드레스 버퍼(1142)의 저장 내용을 도시하는 도면이다.

    도 16은 본 발명의 일 실시예에 따른 어드레스 버퍼에 주소를 기입하기 위한 기입 동작 절차를 도시하는 타이밍도이다.

    도 17은 본 발명의 일 실시예에 따른 기입 동작 이후의 어드레스 버퍼(1144)의 저장 내용을 도시하는 도면이다.

    도 18은 본 발명의 일 실시예에 따른 도 16의 어드레스 버퍼(1142)의 다음 행(row)의 픽셀의 내용을 도시하는 도면이다.

    도 19는 본 발명에 있어서 VGA 표준 첫 번째 8라인의 화상 데이터가 단일 라인 메모리에 저장될 때, 어드레스 제어기에서 발생되는 여러 신호들을 도시하는 타이밍도이다.

    도 20은 본 발명에 있어서, VGA 표준 두 번째 8라인의 화상 데이터가 단일 라인 메모리에 저장될 때, 어드레스 제어기에서 발생되는 여러 신호들을 도시하는 타이밍도이다.

    도 21은 도 4 및 도 11에 도시된 실시예의 조합을 도시한다.

    * 도면의 주요 부분에 대한 부호의 설명

    100 : 화상 데이터 처리기 150 : 라인 버퍼 시스템

    152 : FIFO 제어기 154, 156, 158 : FIFO 메모리

    160 : 다중화 수단 180 : 통합 라인 메모리

    200 : JPEG 압축기 8100 : 화상 데이터 처리기

    8120 : 단일 라인 메모리 8140 : 어드레스 발생기

    *8160 : JPEG 압축기 8142, 8144 : 어드레스 버퍼

    8146 : 다중화 수단 8148 : 어드레스 제어기

    1148 : 제어기 1120 : 단일 라인 메모리

    1142, 1144 : 어드레스 버퍼

    1150, 1152, 1154, 1150', 1152', 1146 : 다중화기

    1000 : 제어기

    본 발명은 화상 처리 장치 및 방법에 관한 것으로서, 더욱 상세하게는 라스터 포맷의 화상 데이터와 블록 포맷의 화상 데이터 사이의 상호 변환을 위한 화상 처리 장치 및 방법에 관한 것이다.

    JPEG(Joint Photogarphic Experts Group)은 사진과 같은 정지 화상 정보를 통신하기 위하여 압축하는 기술의 표준으로서, JPEG은 풀 컬러(full-color)와 그레이 스케일(gray-scale)의 압축을 위하여 고안되었으며, 사진이나 예술분야의 작업에서 장점을 나타낸다. GIF(Graphics Interchange Format)는 256색을 표시할 수 있는데 반해 JPEG은 1,600만 색상을 표시할 수 있어 고해상도 표시장치에 적합하다. 또 한 가지 JPEG의 유용한 점은 이미지를 만드는 사람이 이미지의 질과 파일의 크기를 조절할 수 있다는 것이다. 예를 들어, 이미지가 큰 파일을 아주 작은 크기의 파일로 압축하려 하면 이미지의 질이 그만큼 떨어지게 된다. 그러나 JPEG 압축기술을 이용하면 이를 적절히 조절하여 이미지에 손상에 가지 않도록 이미지를 압축할 수 있다.

    상기와 같은 여러 장점들로 인해 JPEG은 정지 화상을 압축하는 분야, 예컨대, 디지털 스틸 카메라(Digital Still Camera) 등에 널리 사용되고 있다. 잘 알려진 바와 같이, JPEG은 데이터 압축을 위해 이산 코사인 변환(Discrete Cosine Transform:DCT)을 사용한다. DCT 압축 기술은 데이터를 8픽셀*8픽셀 단위의 블록으로 나누어 데이터를 처리한다. 하지만 DCT 압축 이전에 작동하는 디지털 스틸 카메라의 화상 데이터 처리기는 화상 데이터(image data)를 라인 단위로, 즉, 라스터 포맷(raster format)(라스터 스캔 순서:한 화상 전체에 대해서 좌에서 우로, 위에서 아래로)으로 연속적으로 출력한다. 도 1a는 디지털 스틸 카메라의 영상 데이터 처리기가 출력하는 라스터 스캔 순서의 화상 데이터를 도시한다.

    라인 버퍼에 상기와 같은 라스터 포맷(도 1a에 도시된 바와 같이 카메라의 화상 데이터 처리기(image data processor)로부터 출력되는 데이터 포맷)으로 저장된 JPEG 화상 데이터를 이용하기 위해서, 이러한 라스터 포맷 데이터는 JPEG 압축기에 전달되기 전에 도 1b에 도시된 바와 같이 블록 포맷으로 독출되어야 한다. 도 1b는 JPEG 압축기에 입력되는 블록 순서 포맷의 화상 데이터를 도시한다. 라스터 스캔 순서에서 블록 스캔 순서로의 전환은 적어도 8라인의 화상 데이터를 저장할 수 있는 라인 메모리를 필요로 한다. 또한 화상 데이터는 하나의 휘도 성분 Y와 두 개의 색차 성분 U, V로 이루어지기 때문에 각 색성분별로 독립적인 라인 메모리가 필요하다.

    도 2는 JPEG 압축을 위해 8*8 블록을 생성하는 전형적인 VGA(Variable Graphics Array) 표준에서의 통상적인 라인 메모리 시스템을 도시한다. 영상 데이터 처리기(10)는 화상 데이터의 휘도 성분 Y, 색차 성분 U 및 V를 라스터 포맷(예컨대, Y:U:V=4:2:2 라스터 포맷)으로 생성한다. 영상 데이터 처리기(10)에서 생성되는 화상 데이터 성분들 Y, U 및 V 는 메모리 제어기(memory controller)에 의해 대응하는 라인 메모리들(12, 14, 16)의 셀 어레이들에 각각 저장된다. 메모리 제어기에 의해 각 라인 메모리들에 저장된 화상 데이터 성분들 Y, U 및 V 는 8*8 블록 단위로 독출되어 다중화 수단(Multiplexer:MUX, 18)을 통해 JPEG 압축기(20)에 전달된다.

    각각의 라인 메모리(12, 14, 16)는 대응하는 라인 메모리들의 셀 어레이들을 구동하기 위한 추가적인 주변회로들, 예컨대, 어드레스 디코더(address decoder)를 더 포함할 수 있다. 따라서, 다수의 라인 메모리들을 사용하는 것은 상당한 하드웨어 중복을 야기한다. 이는 설계 비용을 증가시키고, 시스템의 저전력화를 위해 라인 메모리를 칩에 내장할 경우 칩 크기 또한 증가해야 한다. 또한, 화상 데이터의 크기가 증가할 수록 라인 메모리 크기 역시 증가해야 한다. 결과적으로, 이와 같은 문제점들은 더욱 심각해질 것이다.

    상술한 바와 같이, JPEG은 데이터 압축을 위해서 DCT를 사용하고 DCT는 8픽 셀*8 픽셀의 블록을 단위로 하여 데이터를 처리하고, 카메라의 화상 데이터 처리기는 화상 데이터를 라스터 스캔 순서로 생성한다. 따라서, 라스터 스캔 순서의 화상 데이터를 블록 스캔 순서의 화상 데이터로 전환하기 위해서는 적어도 8 라인의 화상 데이터를 저장할 수 있는 라인 메모리가 필요하다. 8 라인이 저장된 라인 메모리로부터 8*8 픽셀의 화상 블록이 생성되는 동안 카메라의 화상 데이터 처리기는 새로운 화상 데이터를 출력한다. 따라서, 연속적인 처리를 위해서는 8 라인의 라인 메모리가 더 필요하다. 즉, 한 쌍의 라인 메모리들(하나는 독출을 위해서 다른 하나는 기입을 위해서)이 필요하다. 하나의 라인 메모리에 화상 데이터가 라스터 스캔 순서로 기입되는 동안 다른 라인 메모리에 저장된 화상 데이터가 8*8 블록 단위로 독출된다. 화상 데이터는 휘도 성분 Y와 색차 성분 U 및 V 로 구성되기 때문에 이들 각각의 성분들에 대해서 두 개의 라인 메모리들이 필요하다.

    도 3a는 통상적인 VGA 표준 화상 처리 장치를 개략적으로 도시한 블록도로서, 단지 휘도 성분 Y에 대한 한 쌍의 라인 메모리 시스템을 도시한다(이와 마찬가지로 색차 성분 U 및 V 에 대해서도 각각 한 쌍의 라인 메모리 시스템이 필요하다). 화상 데이터 처리기(10)에서 첫 번째 8 라인의 휘도 성분 Y 가 출력되어 제 1 라인 메모리 Y1(121)에 순차적으로 저장된다. 두 번째 8 라인의 휘도 성분 Y 가 제 2 라인 메모리 Y2(122)에 순차적으로 저장됨과 동시에 제 1 라인 메모리 Y1(121)에 대한 블록 단위 독출이 이루어진다. 이를 위해서, 다중화 수단(18)의 스위치(181)가 닫혀지고 제 1 라인 메모리 Y1(121)로 부터 독출된 8*8 화상 데이터 블록이 JPEG 압축기(20)로 전달된다.

    도 3b는 화상 데이터 처리기(10)로부터 발생되는 픽셀 순서를 개략적으로 도시하고, 도 3c는 각각의 라인 메모리들(12, 14,1 6)에 저장된 컬러 성분 Y, U, 및 V 를 도시한다. 제 1 라인 메모리 Y1(121) 및 제 2 라인 메모리 Y2(122)에 대한 기입(WRITE) 및 독출(READ) 어드레스는 어드레스 생성기(24)에 의해서 발생된다. 도 3d에 도시된 바와 같은 640*480 VGA 휘도 화상의 경우, 라인 메모리들(121, 122)에 대한 기입 어드레스 wr_addrline 는 0 부터 640*480-1 까지 순차적으로 증가한다. 블록 단위 독출을 위한 라인 메모리들(121, 122)에 대한 독출 어드레스 rd_addrline은 아래 수식 1에 따라 정해진다.

    수식 1

    for(i=0;i<640/8;i++){

    for(vv=0;vv<8;vv++){

    for(hh=0;hh<8;hh++){

    rd_addrline=vv*640 + i*8+hh = (vv*80+i)*8+hh

    }

    }

    }

    여기서 640은 VGA 표준에서의 수평 방향 픽셀 수를 나타내며, i는 블록 순서를, vv는 한 블록에서 수직 방향 픽셀(라인)을, hh는 한 블록에서 수평 방향 픽셀을 나타내는 변수이이고, (vv*8+i)는 8 사이클 동안 그 값을 유지하는 앵커 어드레스이다.

    세 번째 8 라인의 휘도 성분 Y 가 기입 어드레스 wr_addrline 를 참조하여 제 1 라인 메모리 Y1(121)에 저장될 때, 다중화 수단(18)의 스위치(181)는 열리고 스위치(182)는 닫혀진다. 독출 어드레스 rd_addrline 를 참조하여 제 2 라인 메모리 Y2(122)에 대한 블록 단위 독출이 이루어져 독출된 블록이 JPEG 압축기(20)에 전달된다.

    이상에서 설명한 바와 같이, 통상적인 화상 처리 방법은 각 컬러 성분에 대해서 최소한 하나 이상의 라인 메모리를 사용하고 가능한 한 쌍의 라인 메모리들을 사용한다. 예컨대, VGA 표준의 경우, 휘도 성분 Y에 대해서 680*8 바이트의 한 쌍의 라인 메모리들이 사용되고, 각 색차 성분 U 및 V에 대해서는 320*8 바이트의 한 쌍의 메모리들이 각각 사용된다. 따라서, 시스템의 저전력화를 위해 이와 같은 라인 메모리들을 칩에 내장할 경우, 칩의 크기는 증가하게 된다. 또한 화상 데이터의 크기가 증가하면, 라인 메모리들의 크기가 더욱 증가하고 이에 따라 칩의 크기도 더욱 더 증가하게 된다.

    본 발명은 라인 버퍼 메모리의 크기가 감소된 라스터 포맷과 블록 포맷 사이의 화상 데이터를 상호 변환하는 화상 처리 장치를 제공한다.

    본 발명은 라인 버퍼 메모리의 크기를 감소시킬 수 있는 라스터 포맷과 블록 포맷 사이의 화상 데이터를 상호 변환하는 화상 처리 방법을 제공한다.

    본 발명의 화상 처리 장치는, 수가 감소된 라인 메모리를 구비하는 것을 일 특징으로 한다. 예컨대, 하나의 통합된 라인 메모리에 각각의 화상 데이터 성분들, 즉, 색성분들이 저장된다. 이 경우, 주소 해독기 등과 같은 부가회로의 수가 감소하기 때문에, 라인 메모리 크기를 감소시킬 수 있다.

    또 통합 라인 메모리로부터 블록 단위의 독출을 용이하게 하기 위해 각 색성분들 별로 소용량의 FIFO(First In Firt Out:선입선출) 메모리를 사용하는 것을 다른 특징으로 한다. 각 FIFO 메모리로부터 블록 단위 독출이 용이하도록 화상 데이터 성분들이 통합 라인 메모리에 저장된다.

    본 발명의 일 실시예에 따른 본 발명의 화상 처리 장치는, 휘도 성분과 적어도 하나 이상의 색차 성분들을 포함하는 화상 데이터를 라스터 포맷으로 공급하는 화상 데이터 처리기와, 대응하는 화상 데이터 성분들을 저장하는 적어도 2 개 이상의 FIFO 메모리들과, 상기 FIFO 메모리들로부터 화상 데이터 성분들을 다중화하는 다중화 수단과, 상기 다중화 수단의 출력을 선형적으로 저장하는 통합 라인 버퍼 메모리와, 상기 통합 라인 버퍼 메모리로부터 블록 포맷으로 화상 데이터 성분들을 전달받고 이들을 압축하는 압축기를 포함한다.

    일 실시예에 있어서, 상기 휘도 성분은 휘도 성분 Y 이고, 상기 색차 성분들은 색차 성분 U 및 V 이다.

    일 실시예에 있어서, 상기 통합 라인 버퍼 메모리로부터 블록 단위의 독출이 용이하도록, 상기 다중화 수단은 2*h개의 휘도 성분, 2*h개의 색차 성분들 순서로 다중화한다. 여기서 h는 블록 포맷 하나의 수평 해상도, 즉 수평 방향 픽셀 수이다. JPEG 표준의 경우, 블록의 수평 해상도 h, 즉, 블록을 구성하는 수평 방향 픽 셀의 수는 8 이다.

    일 실시예에 있어서, 상기 화상 처리기는 휘도 성분 Y, 색차 성분 U 및 색차 서분 V 순서로 화상 데이터를 공급한다. 즉, YUYVYUYV... 순서로 공급한다. 상기 다중화 수단은 2*h개의 휘도 성분 Y, h개의 색차 성분 U 그리고 h개의 색차 성분 V 순서로 다중화하며, 여기서 h는 블록 포맷 하나의 수평 해상도이이다. 상기 압축기는 블록 포맷의 화상 데이터를 Y블록, Y블록, U블록 그리고 V블록 순서로 전달받는다. 즉, 상기 압축기는 Y,Y,U,V,Y,Y,U,V.... 순서로 블록 포맷의 화상 데이터를 전달받아 이를 압축한다.

    일 실시예에 있어서, 상기 통합 라인 버퍼 메모리는 H*v*2 바이트의 크기를 가지며, 여기서 H는 화상 데이터의 수평 해상도로서, v는 블록 포맷 하나의 수직 해상도이다. 예컨대, JPEG 압축의 경우, v=8이고 화상의 수평 해상도는 VGA(Variable Graphics Array) 표준의 경우 640이 될 것이다.

    본 발명의 다른 실시예에 따른 화상 처리 장치는, 휘도 성분 Y 와 색차 성분 U 및 V 를 포함하는 수평 해상도 H 의 화상 데이터를 라스터 포맷으로 Y,U,Y,V,... 순서로 공급하는 화상 처리기와, 대응하는 색성분 Y, U 및 V 들을 저장하는 FIFO 메모리들과, 상기 FIFO 메모리들로부터 16개의 색성분 Y, 8개의 색성분 U 및 8개의 색성분 V 순서로 다중화하는 다중화 수단과, 상기 다중화 수단의 출력을 선형적으로 저장하는 통합 라인 버퍼 메모리와, 상기 통합 라인 버퍼 메모리로부터 휘도 성분 Y 두 블록, 색차 성분 U 한 블록 및 색차 성분 V 한 블록 순서로 전달받아 블록 단위로 압축하는 영상 압축기를 포함한다.

    일 실시예에 있어서, 상기 블록 각각은 8*8 개의 색성분들로 이루어지고, 상기 통합 라인 버퍼 메모리는 H*8*2 바이트의 크기이다. 즉, 화상 데이터 한 프레임이 N개의 블록으로 분할된다면, 상기 통합 라인 버퍼 메모리는 N 블록의 색성분 Y, N/2 블록의 색성분 U 및 N/2 블록의 색성분 V 를 저장할 수 있는 용량을 가진다.

    상기 본 발명의 화상 처리 장치에 따르면, 하나의 통합 라인 버퍼 메모리를 사용하기 때문에, 라인 버퍼 메모리에 포함되는 부가회로, 예컨대, 어드레스 디코더 등이 하나만이 필요하게 되어 메모리 크기를 감소시킬 수 있다. 또 FIFO 메모리를 사용하여 블록 단위 독출이 용이하도록, 즉, 16개의 색성분Y, 8개의 색성분 U 및 8개의 색성분 V 순서로 통합 라인 버퍼 메모리에 저장된다. 이에 따라, 어드레스 디코더를 용이하게 구현할 수 있게 된다.

    본 발명의 일 상태에 따른 화상 데이터 처리 방법은, 라스터 포맷으로 제공된 서로 다른 색성분들을 포함하는 화상 데이터를 하나의 통합된 라인 버퍼 메모리에 저장하는 것을 일 특징으로 한다. 또 각 색성분을 소량의 FIFO 메모리에 저장하고 이를 블록 단위의 독출이 용이한 형태로 다중화하여 통합 라인 버퍼 메모리에 저장한다.

    본 발명의 일 상태에 따른 화상 데이터 처리 방법은, 휘도 성분 및 두 색차 성분들을 포함하는 화상 데이터를 라스터 포맷으로 제공하고, 상기 화상 데이터를 각 색성분별로 대응하는 FIFO 메모리들에 저장하고, 상기 FIFO 메모리들에 저장된 화상 데이터를 하나의 통합 라인 버퍼 메모리에 저장하고, 상기 화상 데이터를 블록 포맷으로 출력한다.

    일 실시예에 따른 화상 데이터 처리 방법에서, 상기 화상 데이터는 16개의 휘도 성분, 8개의 제1 색차 성부 및 8개의 제2 색차 성분 순서로 상기 통합 라인 버퍼 메모리에 저장된다. 이와 같은 순서로 상기 통합 라인 버퍼 메모리에 저장된 화상 데이터는 2블록의 휘도 성분, 한 블록의 제1 색차 성분 및 한 블록의 제2 색차 성분 순서로 출력된다. 바람직하게, 휘도 성분은 Y이고, 제1 색차 성분은 U, 제2 색차 성분은 V이다.

    일 실시예에 따른 화상 데이터 처리 방법에서, 상기 FIFO 메모리들에 저장된 화상 데이터를 하나의 통합 라인 버퍼 메모리에 저장하는 것은, 상기 FIFO 메모리들로부터 화상 데이터를 16개의 휘도 성분, 8개의 제1 색차 성분 및 8개의 제2 색차 성분 순서로 독출하고 독출한 순서로 상기 통한 라인 버퍼 메모리에 선형적으로 기입하는 것에 의해 이루어진다. 일 실시예에 있어서, 상기 화상 데이터가 상기 FIFO 메모리에서 독출되어 상기 통합 라인 버퍼 메모리에 기입 될 때, 새로운 화상 데이터가 상기 FIFO 메모리에 저장된다.

    일 실시예에 따른 화상 데이터 처리 방법에서, 휘도 성분을 저장하는 FIFO 메모리로부터의 초기 휘도 성분의 독출은 8개의 휘도 성분이 상기 휘도 성분을 저장하는 FIFO 메모리에 저장된 이후에 시작된다.

    일 실시예에 따른 화상 데이터 처리 방법에서, 휘도 성분을 저장하는 FIFO 메모리로부터의 초기 휘도 성분의 독출은 16개의 휘도 성분이 상기 휘도 성분을 저장하는 FIFO 메모리에 저장된 이후에 시작될 수 있다.

    본 발명의 일 상태에 따른 화상 데이터 처리 장치는, 수평 해상도 H 및 수직 해상도 V 를 가지는 라스터 스캔 순서의 화상 데이터를 공급하는 화상 데이터 처리기와, 화상 데이터 v 라인을 저장하기 위한 단일 라인 메모리와, 상기 단일 라인 메모리에 대한 공통 독출/기입 어드레스를 발생하는 어드레스 발생기와, 상기 단일 라인 메모리로부터 v*h 블록 포맷의 화상 데이터를 전달받는 압축기를 포함하며, 상기 공통 독출/기입 어드레스를 참조하여 상기 단일 라인 메모리로부터 블록 포맷으로 상기 v 라인의 화상 데이터가 독출될 때, 상기 공통 독출/기입 어드레스를 참조하여 다음 v 라인의 화상 데이터가 상기 단일 라인 메모리에 기입되는 것을 특징으로 한다.

    상기 공통 독출/기입 어드레스 발생기는, 앵커 어드레스를 저장하는 두 개의 어드레스 버퍼들 및 상기 앵커 어드레스를 토대로 하여 상기 공통 독출/기입 어드레스를 합성하는 어드레스 제어기를 포함한다. 상기 앵커 어드레스는 v 라인의 화상 데이터 v*H 픽셀들의 매 h 픽셀마다 증가하는 0 ~ H*v/h-1 값을 가지며, 어느 한 어드레스 버퍼의 앵커 어드레스는 다른 하나의 어드레스 버퍼에 저장된 앵커 어드레스의 순서에 대해서 블록 스캔 순서로 저장된다.

    상기 어느 한 어드레스 버퍼의 앵커 어드레스가 저장되는 순서는 f[n]이며, 여기서 f[n]은 상기 다른 하나의 어드레스 버퍼의 n 번째 어드레스에 저장되어 있는 앵커 어드레스이며, n=(H/h)*vv+i 이고, 이때 i는 v 라인의 화상 데이터의 블록 순서를 표시하는 것으로서, 0 부터 (H/h)-1 까지 순차적으로 증가하고, vv는 블록의 라인 수를 표시하는 것으로서 i에 대하여 0 부터 v-1 까지 순차적으로 증가한다. 즉, 상기 다른 하나의 어드레스 버퍼의 주소 0, H/h, H/h*2, H/h*3, ..., H/h*(v-1), 1, H/h+1, H/h*2+1, H/h*3+1, ..., H/h*(v-1)+1,...에 저장된 앵커 어드레스는 상기 어느 한 어드레스 버퍼에 선형적으로 즉, 주소 0, 1, 2, 3, ..., (v-1), v, v+1, v+2, v+3, ..., v+7, ...에 저장된다.

    일 실시예에 있어서, 상기 어드레스 제어기는, 상기 어느 한 어드레스 버퍼로부터 상기 앵커 어드레스를 독출하기 위한 독출 어드레스와, 상기 독출 어드레스를 참조하여 독출된 앵커 어드레스를 상기 다른 하나의 어드레스 버퍼에 기입하기 위한 기입 어드레스를 제공한다. 상기 어드레스 제어기는 상기 어느 한 어드레스 버퍼로부터 독출된 앵커 어드레스에 h를 곱한 후 hh(0~h-1까지 순차적으로 증가)를 더하여 상기 공통 독출/기입 어드레스를 합성한다.

    일 실시예에 있어서, 상기 어드레스 제어기는 상기 어느 한 어드레스 버퍼에 대한 상기 독출 어드레스로서 n=(H/h)*vv+i 을 제공하고, 상기 독출 어드레스 n=(H/h)*vv+i에 의해 독출된 앵커 어드레스를 상기 다른 하나의 어드레스 버퍼에 기입하기 위한 0 ~ H-1까지 순차적으로 증가하는 기입 어드레스를 제공한다.

    상기 다음 v 라인의 화상 데이터가 상기 단일 라인 메모리로부터 독출되고 다다음 v 라인의 화상 데이터가 상기 단일 라인 메모리에 기입될 때, 상기 어드레스 제어기는 상기 어느 하나의 어드레스 버퍼의 앵커 어드레스를 독출하기 위한 독출 어드레스로 n=(H/h)*vv+i 을 제공하고, 상기 독출 어드레스 n=(H/h)*vv+i 을 참조하여 상기 어느 한 어드레스 버퍼로부터 독출된 앵커 어드레스를 상기 다른 하나의 어드레스 버퍼에 기입하기 위한 상기 0 ~ H-1까지 순차적으로 증가하는 기입 어드레스를 제공한다.

    본 발명의 일 상태에 따른 하나의 라인 메모리를 사용하여 해상도 V*H를 갖는 라스터 스캔 순서의 화상 데이터와 v*h 픽셀의 블록 스캔 순서의 화상 데이터의 상호 변환을 위한 어드레스 발생기는 한 쌍의 어드레스 버퍼와 어드레스 제어기를 포함한다. 한 쌍의 어드레스 버퍼를 구성하는 어드레스 버퍼 각각은, 독출 및 기입 두 동작 모우드 사이를 반복적으로 전환하되 서로 상보적인 동작 모우드를 가지며, 앵커 어드레스를 저장한다. 상기 어드레스 제어기는 상기 독출 동작 모우드를 위한 상기 어드레스 버퍼들에 대한 독출 어드레스 및 상기 기입 동작 모우드를 위한 상기 어드레스 버퍼들에 대한 기입 어드레스를 제공하고, 어드레스 버퍼로부터 독출된 앵커 어드레스로부터 상기 라인 메모리에 대한 공통 독출/기입 어드레스를 합성한다.

    상기 앵커 어드레스는 상기 라인 메모리에 기입되는 v*H 픽셀들의 매 h픽셀들마다 증가하는 0 ~ v*H/h-1 값을 가진다. 상기 독출 어드레스를 참조하여 어느 한 어드레스 버퍼로부터 독출된 앵커 어드레스는 상기 기입 어드레스를 참조하여 다른 하나의 어드레스 버퍼에 기입된다. 이때, 상기 독출 어드레스는 블록 포맷에 대응하도록 (H/h)*vv+i 로 주어지고(여기서, i는 v 라인의 화상 데이터의 블록 순서를 표시하는 것으로서, 0 부터 (H/h)-1 까지 순차적으로 증가하고, vv는 블록의 라인 수를 표시하는 것으로서 i에 대하여 0 부터 v-1 까지 순차적으로 증가하며), 상기 기입 어드레스는 0 부터 v*H/h-1 까지 순차적으로 증가한다.

    상기 공통 독출/기입 어드레스는 상기 독출 어드레스에 의해 독출된 앵커 어드레스에 h를 곱한 후 상기 vv에 대하여 0 ~ h-1 까지 순차적으로 증가하는 hh를 더하여 합성된다.

    일 실시예에 있어서, h=8, v=8이다. 바람직하게, 상기 독출 및 기입 모우드 사이의 전환은 상기 어드레스 버퍼의 내용이 완전히 갱신될 때 이루어진다.

    본 발명의 일 상태에 따른 단일 라인 메모리를 사용하여 라스터 스캔 순서의 화상 데이터와 v*h 블록 스캔 순서의 화상 데이터 사이의 상호 변환을 위한 화상 데이터 처리 방법은, 제1 어드레스 버퍼 및 제2 어드레스 버퍼를 제공하고, 상기 어드레스 버퍼들에 대한 독출 어드레스 및 기입 어드레스를 생성하고, v 라인의 화상 데이터를 상기 단일 라인 메모리에 저장하는 동시에 매 h 픽셀마다 발생하는 앵커 어드레스를 상기 기입 어드레스를 참조하여 상기 제1 어드레스 버퍼에 저장하고, 상기 독출 어드레스를 참조하여 상기 제1 어드레스 버퍼에 저장된 앵커 어드레스를 독출하여 상기 기입 어드레스를 참조하여 상기 제2 어드레스 버퍼에 저장하고, 상기 독출 어드레스에 의해 독출된 앵커 어드레스를 토대로 하여 상기 라인 메모리에 대한 공통 독출/기입 어드레스를 생성하고, 상기 공통 독출/기입 어드레스를 참조하여 상기 v 라인의 화상 데이터를 독출하는 동시에 새로운 v 라인의 화상 데이터를 기입하고, 앵커 어드레스를 독출하고 공통 독출/기입 어드레스를 생성하는 것을 반복하여 화상 전체를 처리하며, 앵커 어드레스를 독출하고, 공통 독출/기입 어드레스를 생성하고 v 라인의 영상 데이터를 독출하는 것을 반복할 때, 매번 번갈아 가며 어드레스 버퍼들이 상기 독출 어드레스 및 기입 어드레스에 의해 참조되고, 상기 기입 어드레스는 순차적으로 증가하고, 상기 독출 어드레스는 블록 스캔 순서에 대응하는 것을 특징으로 한다.

    상기 데이터 처리 방법에 있어서, 처리하고자 하는 화상 데이터가 V*H 해상도를 가진다면, 상기 앵커 어드레스는 0 ~ v*H/h-1 의 값을 가지고, 상기 기입 어드레스는 매 h 픽셀마다 0 부터 v*H/h-1 까지 순차적으로 증가하고, 상기 앵커 어드레스는 H/h*vv+i(여기서 i는 상기 단일 라인 메모리에 기입되는 v*H 화상 데이터의 블록 순서를 나타내는 변수로서 0 부터 ~ H/h-1 까지 순차적으로 증가하고, vv는 블록의 라인 순서를 표시하는 변수로서, i에 대하서 0 부터 v-1 까지 증가하며)로서 매 h 픽셀 동안 값을 유지한다. 상기 공통 독출/기입 어드레스는 f[(H/h*vv+i)]*h + hh(여기서, hh는 블록의 수평 방향 픽셀 순서를 나타내는 변수로서 i에 대해서 0 부터 h-1 까지 증가하며, f[H/h*vv+i]는 독출 어드레스 H/h*vv+i 에 의해 독출된 앵커 어드레스이며)이다.

    일 실시예에 있어서, v=8, h=8이다.

    본 발명의 일 상태에 따른 해상도 V*H를 갖는 라스터 스캔 순서의 화상 데이터와 8*8 픽셀의 블록 스캔 순서의 화상 데이터의 상호 변환을 위한 화상 데이터 처리 방법은, 8*H 픽셀들을 선형적으로 단일 라인 메모리에 기입하는 동시에 0 부터 8*H/8-1 까지 순차적으로 증가하는 기입 어드레스를 참조하여 매 8 픽셀마다 증가하는 0 ~ 8*H/8-1 값을 갖는 앵커 어드레스를 제1 어드레스 버퍼에 기입하고, (H/8)*vv+i 로 주어지는 독출 어드레스(여기서, i는 8 라인의 화상 데이터의 블록 순서를 표시하는 것으로서, 0 부터 (H/8)-1 까지 순차적으로 증가하고, vv는 블록의 라인 수를 표시하는 것으로서 i에 대하여 0 부터 8-1 까지 순차적으로 증가하며)를 참조하여 상기 제1 어드레스 버퍼로부터 상기 앵커 어드레스를 독출하여 상 기 기입 어드레스를 참조하여 상기 제2 어드레스 버퍼에 기입하는 동시에 독출된 앵커 어드레스에 8을 곱한 후 vv에 대하여 0 ~ 8-1 까지 순차적으로 증가하는 hh를 더하여 제1 공통 독출/기입 어드레스를 생성하고, 상기 공통 독출/기입 어드레스를 참조하여 상기 단일 라인 메모리로부터 상기 8*H 픽셀의 화상 데이터를 독출하고 상기 라인 메모리에 새로운 8*H 픽셀의 화상 데이터를 기입하고, V*H 픽셀을 모두 처리할 때까지 앵커 어드레스 독출, 저장 및 8*H 픽셀의 화상 데이터 독출을 반복하되, 이때, 매번 번갈아 가며 어드레스 버퍼들이 상기 독출 어드레스 및 기입 어드레스에 의해 참조되는 것을 특징으로 한다.

    본 발명은 라스터 스캔 순서의 화상 데이터와 블록 스캔 순서의 화상 데이터 사이의 상호 변환을 위한 화상 데이터 처리 장치 및 방법에 관한 것으로서, 본 발명은 개수수가 감소된 라인 메모리를 구비하는 것을 일 특징으로 한다. 즉, 각 색 성분에 대해서 단일 라인 메모리만을 사용하며, 한 라인 메모리에 대한 라스터 스캔 순서의 독출 및 블록 스캔 순서의 기입이 연속적으로 이루어지도록 두 개의 어드레스 버퍼를 사용한다. 첫 번째 8라인의 화상 데이터가 단일 라인 메모리에 주소 0에서 부터 마지막 주소까지 차례로 저장될 때, 각각의 어드레스 버퍼는 블록을 구성하는 8 픽셀들로 이루어진 각 라인들(이하 '세그먼트'라 함)의 첫 번째 어드레스를 8로 나눈 값(이하 '앵커 어드레스'라 함)을 저장한다. 각 세그먼트는 8개의 픽셀을 포함하고, 8개의 세그먼트가 한 블록을 구성한다. 예컨대, JPEG을 사용하는 VGA 표준의 경우, 앵커 어드레스는 0, 1, 2, 3, ...638, 639 이다. 한 어드레스 버퍼는 다른 어드레스 버퍼에 저장된 앵커 어드레스 순서와는 다른 순서로 앵커 어드 레스를 저장한다. 즉, 한 어드레스 버퍼는 상기 다른 어드레스 버퍼에 저장된 앵커 어드레스 순서(예컨대, 0, 1, 2, 3, ...638, 639)에 대해서 블록 스캔 순서로(예컨대, 0,80,160,..560, 1,81,..,561,2,82,162,...,78,..638,79,159,239,..,559,639 순서로) 저장한다. 처음 8라인의 화상 데이터가 단일 라인 메모리에 순차적으로 기입(저장)될 때, 8개의 픽셀 마다 발생하여 순차적으로 증가하는 앵커 어드레스(0, 1, 2, 3, ...638, 639 )가 순차적으로 제1 어드레스 버퍼의 주소 0, 1, 2, 3, ...638, 639 에 기입된다. 8*8 화상 블록을 생성하기 위해, 즉 8*8 블록 단위로 단일 라인 메모리에 저장된 첫 번째 8라인의 화상 데이터를 독출하기 위해, 공통 독출/기입 어드레스가 어드레스 제어기에 의해서 생성된다. 어드레스 제어기는 제1 어드레스 버퍼에 저장된 앵커 어드레스(0, 1, 2, 3, ...638, 639)를 블록 스캔 순서로 독출하여(즉, 주소 0,80,160,..560, 1,81,..,561,2,82,162,...,78,..638,79, 159,239,..,559,639 에 저장된 앵커 어드레스를 순차적으로 독출하여) 이를 제2 어드레스 버퍼에 순차적으로 즉, 주소 0 ~ 639에 저장한다. 독출된 블록 스캔 순서의 앵커 어드레스에 8을 곱하고 0 ~ 7까지 순차적으로 더하여 세그먼트 하나에 대한 공통 독출/기입 어드레스들을 합성한다. 공통 독출/기입 어드레스를 참조하여 첫 번째 8라인에 대한 블록 스캔 순서로 독출이 이루어지는 동시에 두 번째 8라인에 대한 기입이 이루어진다. 제1 어드레스 버퍼로부터 앵커 어드레스를 독출하기 위한 독출 어드레스는 (640/8)*vv+i 이며, 이때 i는 8라인 화상 데이터의 블록 순서를 표시하는 것으로서, 0~79까지 증가하며, vv는 각각의 i에 대해서 0~7까지 증가한다. 즉, 제1 어드레스 버퍼에서 어드레스 0, 80, 160,..., 1, 81,...,561,2,82,162,...,78,...,638,79, 159,239,...,559,639에 저장된 앵커 어드레스가 이와 같은 순서로 독출된다.

    두 번째 8라인에 대한 독출 및 세 번째 8라인에 대한 기입을 위한 공통 독출/기입 어드레스는 제2 어드레스 버퍼에 어드레스 0 ~ 639 까지 저장된 앵커 어드레스(0,80,160,...,560, 1,81,...,561,2,82,162,...,78,...,638,79, 159,239,...,559,639)를 토대로 하여 합성한다. 제2 버퍼 어드레스에 대한 독출 어드레스는 제1 어드레스 버퍼에 대한 독출 어드레스와 동일하다. 즉, 제2 어드레스 버퍼의 주소 0,80,160,...560, 1,81,...,561,2,82,162,...,78,...,638,79, 159,239,...,559,639(블록 스캔 순서) 에 저장된 앵커 어드레스를 독출하여 제1 어드레스 버퍼의 주소 0 ~ 639에 순차적으로 기입한다. 마찬가지로, 독출된 앵커 어드레스에 8을 곱하고 0~7까지 순차적으로 더하여 공통 독출/기입 어드레스를 합성한다.

    한 프레임의 화상(JPEG의 경우 680*480)이 처리될 때까지, 이와 같은 과정을 반복적으로 진행한다. 본 발명에 따르면, 어드레스 버퍼에 대한 독출 어드레스는 항상 일정한 패턴, (640/8)*vv+i, 으로 발생하고 기입 어드레스는 0에서 639까지 항상 순차적으로 증가한다. 8라인에 대한 처리가 완료되면, 어드레스 버퍼의 앵커 어드레스는 새로운 순서의 앵커 어드레스로 갱신된다. 어드레스 버퍼에 대한 기입 어드레스는 카운터를 이용하면 용이하게 구현할 수 있고, 마찬가지로 독출 어드레스 역시 일정한 패턴을 가지기 때문에 카운터, 곱셈기 그리고 덧뎀기를 이용하여 용이하게 구현할 수 있다.

    이상에서 살펴본 바와 같이, 본 발명에서 사용된 두 개의 어드레스 버퍼는 라인 메모리 크기의 1/8이다. 이와 같은 메모리 크기의 감소는 각 색성분들에 대하여 발생한다. 따라서 메모리 크기를 현저히 줄일 수 있다.

    구체적으로 첨부된 도면들을 참조하여 본 발명의 실시예를 상세히 설명한다. 이하에서 "H"는 화상 데이터의 수평 해상도, 즉 수평 방향의 픽셀 개수를 의미하고, "h"는 한 블록의 수평 해상도, 즉 한 블록에서 수평 방향의 픽셀 개수를 의미한다. 또, "V"는 화상 데이터의 수직 해상도, 즉 수직 방향의 픽셀 개수를 의미하고, "v"는 한 블록의 수직 해상도, 즉 한 블록에서 수직 방향 픽셀 개수를 의미한다. VGA 표준의 경우, 수평 해상도 "H"는 640이고, 수직 해상도 "V"는 480이다.

    도 4는 본 발명의 일 실시예에 따른 하나의 통합 라인 메모리를 포함하는 화상 처리 장치를 개략적으로 도시한 블록도이다. 본 발명의 화상 처리 장치는 라스터 포맷의 화상 데이터를 제공하는 화상 데이터 처리기(Image Data Processor, 100), 블록 단위, 예컨대, 8*8 블록을 단위로 화상 데이터를 압축하는 JPEG 압축기(200), 그리고 상기 화상 데이터 처리기(100) 및 JPEG 압축기(200) 사이에서 라스터 포맷과 블록 포맷 사이의 데이터 변환을 위한 라인 버퍼 시스템(150)을 포함한다. 화상 데이터 처리기(100)는 색성분으로 휘도 성분(또는 신호)과 색차 성분을 포함하는 디지털 데이터를 생성한다. 예컨대, 휘도 성분은 Y이고, 색차 성분은 U 및 V이다. 화상 데이터 처리기(100)는 휘도 성분 Y와 색차 성분 U 및 V를 4:2:2 포맷, 4:4:4 포맷 또는 이 분야에서 잘 알려진 어떠한 포맷으로도 출력한다. 4:4:2 포맷의 경우, 화상 데이터 처리기(100)는 휘도 및 색차 신호를 Y,U,Y,V,Y,U,Y,V,.... 순서로 해서 라스터 포맷으로 화상 데이터를 출력한다. 이하에서는 예시적으로 화상 데이터 처리기(100)가 4:2:2 포맷으로 휘도 신호 및 색차 신호를 출력하는 경우를 설명한다. 하지만, 이하에서 설명되는 내용으로부터 다른 포맷의 경우에도 적용될 수 있다.

    일 실시예에 따른 본 발명의 라인 버퍼 시스템(150)에 따르면, 화상 데이터 처리기(100)에서 생성된 휘도 및 색차 성분을 포함하는 화상 데이터가 단일의 통합 라인 버퍼 메모리(180)에 저장된다. 통합 라인 버퍼 메모리(180)는 색 스캔 포맷 변환(라스터 포맷과 8*8블록 포맷 사이의 변환)을 위해 최소 8라인의 화상 데이터를 저장할 수 있다. 화상 데이터 처리기(100)가 4:2:2 포맷의 화상 데이터를 생성하기 때문에, 통합 라인 버퍼 메모리(180)는 최소 H*8*2 바이트의 크기를 갖는다. 본 발명의 일 실시예에 따르면, 종래 각 색성분별로 라인 버퍼를 독립적으로 사용하는 것과 달리, 하나의 통합 라인 버퍼를 사용한다. 따라서, 종래 각 라인 버퍼에 포함된 메모리 셀 어레이를 구동하기 위한 주변 회로들이 하나로 통합되고, 이와 동일하게, 각 라인 버퍼로 부터 블록 단위로 독출하기 위한 어드레스 디코더들(주소 해독기)이 하나로 통합된다. 그 결과 통합 라인 버퍼 메모리(180)의 전체 크기를 감소시킬 수 있다. 또한 JPEG 압축기(200)가 필요로 하는 형식으로 통합 라인 버퍼 메모리(180)에 화상 데이터를 저장하기 위해 각 색성분들에 대응하는 소량의 크기를 갖는 FIFO 메모리들(154, 156, 158)이 사용된다. 각 FIFO 메모리들(154,156,158)은 화상 데이터 처리기(100)로 부터 발생된 화상 데이터를 색성분별로 분류하여 다중화 수단(160)을 통해 통합 라인 버퍼 메모리(180)에 전달한다. 이 때, JPEG 압축기(200)가 필요로 하는 형식으로 각 색성분이 통합 라인 버퍼 메모리(180)에 전달된다.

    구체적으로 설명을 하면, 화상 데이터 처리기(100)에서 출력되는 Y0U0Y1V0Y2U1Y3V1...., 화상 데이터가 FIFO 제어기(controller, 152)의 제어 하에 각 색성분별로 FIFO 메모리들(154,156,158)에 저장된다. 즉, 휘도 성분 Y는 FIFO_Y 메모리(154)에 Y0Y1Y2Y3..., 순으로 저장(기입)되고, 색차 성분 U는 FIFO_U 메모리(156)에 U0U1..., 순으로 저장되고, 색차 성분 V는 FIFO_V 메모리(158)에 V0V1...., 순으로 저장된다.

    FIFO 메모리들(154,156,158)에 저장된 색성분들이 FIFO 제어기(152)의 제어 하에 다중화 수단(160) 통해서 통합 라인 버퍼 메모리(180)에 저장(그리고 라인 버퍼 메모리로부터 독출 및 라인 버퍼 메모리에 기입)된다. 즉, 특정 FIFO 메모리에서 색성분이 독출되어 통합 라인 버퍼 메모리(180)에 기입된다. 이때, FIFO 제어기(152)는 다중화 수단(160)을 제어하여 JPEG 압축기(200)가 필요로 하는 형식으로 각 색성분이 통합 라인 버퍼 메모리(180)에 저장되도록 한다. 즉, 16개의 휘도 성분 Y, 8개의 색차 성분 U, 8개의 색차 성분 V 순서로 통합 라인 버퍼 메모리(180)에 순차적으로 저장되도록 한다. 따라서, 먼저, FIFO_Y 메모리(154)로부터 16개의 휘도 성분 Y가 독출되고, 이어서 FIFO_U 메모리(156)로부터 8개의 색차 성분 U가 독출되고, 이어서 FIFO_V 메모리(158)로부터 8개의 색차 성분 V가 독출된다. 이와 같은 과정을 반복하여 통합 라인 버퍼 메모리(180)에 8라인(8*H 픽셀)의 화상 데이터가 저장된다. 즉, 통합 라인 버퍼 메모리(180) 한 라인에는 H개의 휘도 성분 Y, H/2 개의 색차 성분 U 및 H/2 개의 색차 성분 V가 저장된다.

    도 4의 예시적인 라인 버퍼 시스템(150)의 동작을 도 5 및 도 6a 내지 6e를 참조하여 설명을 한다. 도 5는 4:4:2 포맷을 위한 예시적인 라인 버퍼 시스템의 타이밍도이다. 도 5 및 도 6a 내지 6e를 참조하여, 각 색생분을 하나의 통합 라인 버퍼 메모리(180)에 저장하는 방법 상세히 설명한다. 도 5는 화상 데이터 처리기(100)에서 출력되는 라스터 포맷의 화상 신호 Y0U0Y1V0Y2U1Y3V1..., 가 통합 라인 버퍼 메모리(180)에 (Y0Y1...Y15)(U0U1...U7)(V0V1...V7)(Y16Y17...Y31)(U8U9...U15)(V8V9...V15)..., 순서로 선형적으로 저장되는 것을 설명하기 위한 타이밍도이다. 도 6a 내지 도 6e는 FIFO 메모리들(154, 156, 158)에 각 색성분들이 저장되는 형태를 개략적으로 보여주는 도면이다.

    일 실시예에 있어서, FIFO_Y 메모리(154) 및 FIFO_U 메모리(156)는 8바이트이고, FIFO_V 메모리(158)는 10바이트 이다.

    도 5를 참조하면, 화상 데이터 처리기(100)에서 클록(CLK)이 발생한다. 이 클록(CLK)에 동기화되어 화상 데이터가 Y0U0Y1V0Y2U1Y3V1...,순서로, 즉, 라스터 포맷으로 출력된다. FIFO 제어기(152)는 화상 데이터 처리기(100)가 출력하는 화상 데이터를 색성분별로 각 FIFO 메모리에 저장하기 위해, 기입 신호들 WR_Y, WR_U, WR_V를 제어한다. 또, FIFO 제어기(152)는 각 FIFO 메모리로부터 색성분들을 다중화 수단(160)을 통해 통합 라인 버퍼 메모리(180)에 전달하기 위해, 독출 신호들 RD_Y, RD_U, RD_V를 제어한다. 기입 신호들 WR_Y, WR_U, WR_V 및 독출 신호들 RD_Y, RD_U, RD_V 는 해당 FIFO 메모리에 작용한다. 휘도 성분 Y를 FIFO_Y 메모리(154)에 기입하기 위한 기입 신호 WR_Y는 홀수 번째 클록(CLK) 마다 활성화되고, 색차 성분 U를 FIFO_U 메모리(156)에 기입하기 위한 기입 신호 WR_U 및 색차 신호 V를 FIFO_V 메모리(158)에 기입하기 위한 기입 신호 WR_V는 짝수 번째 클록(CLK) 마다, 즉, 기입 신호 WR_Y의 비활성화 구간에서, 번갈아 가면서 활성화된다. 이에 따라, 휘도 성분 Y0가 첫 번째 클록 C0에서 FIFO_Y 메모리(154)에 저장되고, 색차 성분 U0가 두 번째 클록 C1에서 FIFO_U 메모리(156)에 저장되고, 휘도 성분 Y1이 세 번째 클록 C2에서 FIFO_Y 메모리(154)에 저장되고, 색차 성분 V0가 네 번째 클록 C3에서 FIFO_V 메모리(158)에 저장되고, 휘도 성분 Y2가 다섯 번째 클록 C4에서 FIFO_Y 메모리(154)에 저장되고, 색차 성분 U1가 여섯 번째 클록 C5에서 FIFO_U 메모리(156)에 저장되고, 휘동 성분 Y3이 일곱 번째 클록 C6에서 FIFO_Y 메모리(154)에 저장되고, 색차 성분 V1이 여덟 번째 클록 C7에서 FIFO_V 메모리(158)에 저장된다.

    FIFO_Y 메모리(154)가 모두 차게 되면, 다음 새로운 휘도 성분 Y가 기입되기 전에 FIFO_Y 메모리(154)에 대한 독출 동작이 개시된다. 예컨대, 8바이트의 FIFO_Y 메모리(154)를 사용하게 되면, 즉, 15번째 클록 C14이 발생하면 8번째 휘도 성분 Y7이 FIFO_Y 메모리(154)에 저장되기 때문에, 17번째 클록 C16 발생 때 첫 번째 독출 신호 RD_Y가 활성화 된다. 독출 신호 RD_Y는 매 16 클록 동안 활성화되며(예컨대, 17번째 클록 C16 부터 32번째 클록 C31 동안) 이때 16개의 휘도 신호 Y0~Y15가 통합 라인 버퍼 메모리(180)에 메모리 주소가 선형적으로 증가하면서 저장(기입)된 다. 한편, 독출 신호 RD_U 및 RD_V는 독출 신호 RD_Y가 불활성화인 구간 동안, 즉, RD_Y가 활성화된 16 클록의 다음 16 클록동안 번갈아 가면서 활성화 된다. 예컨대, 클록 C32~C39 동안은 독출 신호 RD_U가 활성화 되고, 다음 클록 C40~C47 동안 독출 신호 RD_V가 활성화되어 8개의 색차 신호 U 및 8개의 색차 신호 V가 각 FIFO 메모리들(156, 158)로부터 독출되어 통합 라인 버퍼 메모리(180)에 기입된다. 이어서 다음 16 클록 동안(클록 C48~C63) 휘도 성분 Y에 대한 독출이 수행되고, 그 다음 8 클록 동안(C64~C71) 색차 신호 U에 대한 독출 동작이, 그 다음 8 클록 동안(C72~C79) 색차 신호 V에 대한 독출 동작이 수행된다. 이와 같은 독출 동작이 반복되어 통합 라인 버퍼 메모리(180)에 주소가 선형적으로 증가하면서(예컨대, 주소 0 에서부터 H*8*2-1까지 순차적으로 증가하면서) 총 H*8*2개의 색성분이 저장된다. 통합 라인 버퍼 메모리(180)에 대한 기입 주소는 순차적으로 증가하기 때문에, 카운터를 이용하여 용이하게 구현할 수 있다.

    여기서, 각 FIFO 메모리들로부터 색성분들이 독출되는 동안, 화상 데이터 처리기(100)는 클록(CLK)에 동기화되어 화상 데이터를 계속 해서 출력한다. 따라서, 각 FIFO 메모리들(154,156,158)에 새로운 색성분들이 기입된다. 결과적으로, FIFO 메모리에 대한 독출 동작과 기입 동작이 동시에 일어나며 이점에 대해서는 도 6a 내지 도 6e를 참조하여 설명한다.

    도 6a 내지 도 6e는 각각 도 5의 t0, t1, t2, t3, t4 시점에서의 각 FIFO 메모리에 저장된 색성분을 나타낸다.

    도 6a를 참조하여 t0시점, 즉, 17번째 클록(C16) 직전에는, FIF0_Y 메모리 (154)에는 8개의 휘도 성분 Y(Y0~Y7)이, FIFO_U 메모리(156) 및 FIFO_V 메모리(158)에는 각각 4개의 색차 성분 U(U0~U3) 및 V(V0~V3)이 저장되어 있다. 8 바이트의 FIFO_Y 메모리(154)는 8개의 휘도 성분 Y로 완전히 채워져 있다. 8 바이트의 FIFO_U 메모리(156) 및 10 바이트의 FIFO_V 메모리(158)는 일부만이 채워져 있다. 상술한 바와 같이 독출 동작이 17번째 클록(C16)에서 발생한다. 17번째 클록 C16에서 첫 번째 휘도 성분 Y0가 FIFO_Y 메모리(154)에서 독출되어 통합 라인 버퍼 메모리에(예컨대, 주소 0번지) 기입된다. 이때 화상 데이터 처리기(100)에서 9번째 휘도 성분 Y8이 FIFO_Y 메모리(154)의 첫 번째 휘도 성분 Y0 가 저장되었던 곳에 기입된다. 18번째 클록(C17)에서 두 번째 휘도 성분 Y1이 FIFO_Y 메모리(154)에서 독출되어 통합 라인 버퍼 메모리에(예컨대, 주소 1번지)에 기입되고, 이때, FIFO_U 메모리(156)에 5번째 색차 성분 U4가 기입된다. 19번째 클록(C18)에서 3번째 휘도 성분 Y2가 FIFO_Y 메모리(154)에서 독출되어 통합 라인 버퍼 메모리(예컨대, 주소 2번지)에 기입되고, 이때, 10번째 휘도 성분 Y9가 FIFO_Y 메모리(154)에 기입된다. 20번째 클록(C19)에서 4번째 휘도 성분 Y3가 FIFO_Y 메모리(154)에서 독출되어 통합 라인 버퍼 메모리(예컨대, 주소 3번지)에 기입되고, 이때, FIFO_V 메모리(158)에 5번째 색차 성분 V4가 기입된다.

    이에 따라 도 6b에 도시된 바와 같이, t1시점, 즉, 25번째 클록(C24) 직전에 FIFO_Y 메모리에서 8개의 휘도 성분 Y(Y0~Y7)이 독출되어 통합 라인 버퍼 메모리에 저장되고, 4개의 새로운 휘도 Y(Y8~Y11) 및 이전의 휘도 Y(Y4~Y7)가 존재하고, FIFO_U 메모리 및 FIFO_V 메모리에는 각각 6개의 색성분들이 존재한다. 이와 같은 방법으로 FIFO 메모리들로부터 색성분이 독출되는 동시에 기입된다. FIFO 메모리들로부터 독출된 색성분은 통합 라인 버퍼 메모리에 저장된다.

    도 6c에 도시된 바와 같이, 시간 t2시점 즉, 독출 신호 RD_Y가 불활성화 되는 33번째 클록(C32) 직전에서, FIFO_Y 메모리에서 8개의 휘도 성분 Y(Y8~Y15)에 대한 독출(t1 ~ t2 사이)이 완료되고 결국 16개의 휘도 성분 Y(Y0~Y15)가 통합 라인 버퍼 메모리에 기입 완료된다. 이때, FIFO_Y 메모리(154)에는 휘도 성분 Y8~Y15가 존재한다. FIFO_U 메모리(156)에는 색차 성분 U0~U7으로 완전히 채워져있다. FIFO_V 메모리(158)는 색차 성분 V0~V7을 저장하고 있으며, 다음 8 클록(33번째 클록 ~ 40번째 클록) 동안 색차 성분 V 2개(V8,V9)를 더 저장할 수 있다.

    다음 도 6d를 참조하면, 시간 t3(41번째 클록 C40) 직전에 색차 신호 U0 ~ U7이 FIFO_U 메모리(156)로부터 독출이 완료되어 통합 라인 버퍼 메모리(예컨대, 주소 16~23)에 저장되고, FIFO_U 메모리(156)에는 색차 신호 U8, U9가 기입된다. 한편, FIFO_Y 메모리(154)에는 4개의 휘도 성분 Y16~Y19가 기입 완료되고, FIFO_V 메모리(158)에는 색차 신호 V8, V9가 기입되어 FIFO_V 메모리(158)도 색성분으로 완전히 채워지게 된다.

    다음 도 6e를 참조하면, 시간 t4 시점(49번째 클록 C8) 직전에서 색차 신호 V0~V7에 대한 독출이 완료되어 통합 라인 버퍼 메모리(예컨대, 주소 24~31)에 기입되고, FIFO_V 메모리(158)에는 색차 신호 V10~V11이 기입된다. 한편, FIFO_Y 메모리(154)에는 4개의 휘도 신호 Y20~Y23이 기입되어 결과적으로 Y16~Y23의 휘도 신호가 존재한다. FIFO_U 메모리(156)에는 색차 신호 U10~U11이 새로이 기입된다.

    이와 같은 방법으로 FIFO 메모리로부터 색성분들이 독출되는 동안 화상 데이터 처리기가 제공하는 새로운 색성분들이 해당 FIFO 메모리에 독출된 색성분이 저장된 자리에 기입된다.

    상술한 통합 라인 버퍼 메모리(180)에 모든 색성분들을 저장하는 방법에서, FIFO_Y 메모리(154)에 8개의 색성분 Y 가 저장된 이후에 색성분 Y에 대한 최초 독출 동작이 개시되었다. 하지만, 실시예에 따라서 다양하게 변형이 가능하다. 즉, FIFO_Y 메모리(154)로 16 바이트를 사용하면 16개의 색성분 Y가 FIFO_Y 메모리(154)에 저장된 이후에 최초 색성분 Y에 대한 독출 동작을 개시할 수도 있다. 이 경우, FIFO_Y 메모리(154)는 16바이트, FIFO_U 메모리(156)는 12 바이트, FIFO_V 메모리(158)는 14 바이트의 크기를 가질 것이다. 이 경우에도 8개의 색성분 Y가 FIFO_Y 메모리(154)에 저장된 이후에 초기 색성분 Y에 대한 독출 동작을 개시할 수 도 있다.

    또, 화상 데이터 처리기가 제공하는 화상 데이터 형태가 변하더라도 FIFO 메모리 크기를 조절하면, 블록 단위 독출이 용이하도록 통합 라인 버퍼 메모리에 화상 데이터를 저장할 수 있을 것이다.

    도 7은 화상 데이터가 저장된 통합 라인 버퍼 메모리(180)를 개략적으로 도시하고 있다. 통합 라인 버퍼 메모리(180)는 H*8*2 바이트의 크기를 가지며 메모리 주소는 라스터 스캔 순서로 (즉, 좌측에서 우측으로 그리고 위에서 아래로) 순차적으로 증가한다. 각 라인에 대해서 16개의 휘도 성분 Y, 8개의 색차 성분 U, 8개의 색차 성분 V 순서로 해서 이들을 단위로 하여 반복적으로 저장된다. 따라서 8*8 블 록 단위의 독출을 위한 독출 회로를 용이하게 구현할 수 있다.

    독출되는 8*8 픽셀 블록 순서는 휘도 블록 BY0, 휘도 블록 BY1, 색차 블록 BU0, 색차 블록 BV0, 휘도 블록 BY2, 색차 블록 BU1, 색차 블록 BV1,....... 휘도 블록 BY(N-2), 휘도 블록 BY(N-1), 색차 블록 BU(N/2-1), 색차 블록 BV(N/2-1) 순서이다. 여기서 N=H/8이다. 즉, 화상 데이터의 수평 해상도(H)를 8로 나누었을 때의 값이다.

    구체적으로 통합 라인 버퍼 메모리(180)로부터 독출되는 화상 데이터 순서는 다음과 같다. 주소 0~7, 주소 2*H~2*H+7, 주소 4*H~4*H+7, ...주소 14*H~14*H+7에 저장된 화상 데이터를 독출하여 휘도 블록 BY0을 형성하고, 주소 8~15, 2*H+8~2*H+15, 주소 4*H+8~4*H+15, ...주소 14*H+8~14*H+15에 저장된 화상 데이터를 독출하여 휘도 블록 BY1을 형성한다. 이와 같은 방법으로 통합 라인 버퍼 메모리(180)로부터 블록 단위로 2*N개의 블록들을 독출한다.

    통합 라인 버퍼 메모리(180)로부터 8*8 블록 단위로 독출하기 위한 독출 주소(Add_R)는 아래와 같은 수식 2에 의해 생성되며 이는 카운터를 이용하여 용이하게 구현할 수 있다.

    수식 2

    for(i=0;i<(H*2)/8;i++){

    for(vv=0;vv<8;vv++){

    for(hh=0;hh<8;hh++){

    Add_R=vv*H*2+i*8+hh;

    }

    }

    }

    상기 수식 2에서 i는 통합 라인 버퍼 메모리의 블록 개수를 표시하는 변수이고, vv 및 hh는 8*8 블록의 수직 및 수평 방향 변수를 표시한다.

    단위 시간당 처리량(throughput)을 높이기 위해 통합 라인 버퍼 메모리가 하나 더 사용될 수 있다. 즉, 제1 통합 라인 버퍼 메모리에 8라인의 영상 데이터를 상술한 바와 같은 방법으로 기입하는 동안 제2 통합 라인 버퍼 메모리로부터 블록 단위로 독출할 수 있다. 8라인의 영상 데이터에 대한 기입 및 독출이 끝나면, 제2 통합 라인 버퍼에 새로운 8라인의 영상 데이터가 기입되고 이전에 제1 통합 라인 버퍼에 기입된 영상 데이터는 블록 단위로 독출된다.

    이제까지는 라스터 포맷의 데이터를 블록 포맷의 데이터로 변환하는 방법을 설명하였으나, 역변환, 즉 블록 포맷의 데이터를 라스터 포맷의 데이터로 변환하는 것에도 동일하게 적용된다.

    이상에서 설명한 본 발명의 라인 버퍼 시스템과 각 색성분별로 독립적인 라인 버퍼 메모리를 사용하는 통상적인 라인 버퍼 시스템을 VGA 표준에 적용했을 때, 필요한 등가 게이트 수를 비교하면 아래 표 1과 같다.

    표 1

    통상적인 라인 버퍼 시스템 본 발명의 라인 버퍼 시스템
    메모리 비트수 81920 81920
    메모리 구현을 위한 등가 게이트 수 162280 128352
    FIFO 구현을 위한 등가 게이트 수 0 2200
    총 게이트 수 162280 130552

    통상적인 라인 버퍼 시스템 및 본 발명의 라인 버퍼 시스템의 메모리 비트수는 동일하다. 각 색성분에 대해 독립적인 라인 메모리를 사용하는 통상적인 방법의 경우, 라인 메모리의 비트수는 640*8*8+(640/2)*8*8=81902 비트 이다. 그리고 본 발명에 따른 하나의 통합 라인 버퍼 메모리의 경우, 메모리 비트수는 640*8*8*2=81920 비트 이다. 하지만, 세 개의 라인 메모리를 사용하는 통상적인 방법의 경우, 각 라인 메모리에 대해서 주변회로가 필요하지만 본 발명의 경우 하나의 통합 라인 버퍼 메모리를 사용하기 때문에 하나의 주변회로가 필요하다. 따라서 라인 메모리 구현을 위한 게이트 수는 통상의 경우, 162280개이고 본 발명의 경우 128352개이다. 이는 단일 포트 SRAM으로 구현한다고 할 때, 시뮬레이션을 통해 얻은 결과이다. 한편, 본 발명은 FIFO 메모리(8바이트 FIFO_Y, 8바이트 FIFO_U, 10바이트 FIFO_V)를 포함하고 있기 때문에 이를 레지스터로 구현했을 경우 2200 개의 게이트가 필요하다. 하지만, 총 필요되는 게이트 수는 통상적인 라인 메모리 시스템의 경우162280 개이고, 본 발명의 경우 130552 개이다. 본 발명의 경우, 통상적인 라인 메모리 시스템과 비교해서, 약 31728개의 게이트 수가 감소됨을 알 수 있다.

    도 8은 본 발명의 다른 실시예에 따른 단일 라인 메모리 시스템을 구비한 화상 처리 장치를 개략적으로 도시한 블록도 이다. 본 실시예의 발명의 화상 처리 장 치는 화상 데이터 처리기(프로세서,8100), 단일 라인 메모리(8120), 어드레스 생성기(8140)와 JPEG 압축기(8160)를 포함한다. 화상 데이터 처리기(8100)는 화상 데이터를 출력한다. 화상 데이터는 휘도 성분 Y와 색차 성분 U,V를 포함한다. 도 8에는 단지 휘도 성분 Y를 위한 단일 라인 메모리(8120)를 도시하였다. 화상 데이터 처리기(8100)는 클록에 동기화하여 화상 데이터를 출력하며, 출력된 휘도 성분 Y는 단일 라인 메모리(8120)에 저장된다. 처리하고자 하는 화상 데이터가 V*H의 해상도를 가지며, v*h 블록 단위로 JPEG 압축기(8160)가 화상 데이터를 처리한다면, 단일 라인 메모리(8120)는 v*H 바이트의 크기를 가진다. 예컨대, JPEG 압축 방식의 경우, v=h=8이다. 이하에서는 VGA 표준에서 v와 h가 8인 경우를 일 예로 들어 설명한다.

    어드레스 생성기(8140)는 단일 라인 메모리(8120)에 대한 독출 및 기입 어드레스를 발생한다. 본 발명에 따르면 단일 라인 메모리(8120)에 대한 독출 어드레스와 기입 어드레스가 동일하다. 즉, 독출 동작을 위한 어드레스를 인가한 메모리 셀에 기입 동작을 동시에 수행한다. 이를 위해 본 발명의 어드레스 생성기(8140)는, 두 개의 어드레스 버퍼들(8142, 8144), 이들 어드레스 버퍼들(8142, 8144)을 선택적으로 출력하는 다중화 수단(8146) 및 어드레스 제어기(8148)를 포함한다. 어드레스 버퍼들(8142, 8144)은 각각 단일 라인 메모리(8120)의 크기의 1/8에 해당하며 전체 어드레스 퍼버의 크기는 단일 라인 메모리의 1/4에 해당한다.

    어드레스 제어기(8148)는 어드레스 버퍼들에 저장된 앵커 어드레스를 독출하거나 앵커 어드레스를 어드레스 버퍼에 기입하기 위한 어드레스 버퍼들에 대한 독출 및 기입 어드레스를 발생한다. 어드레스 제어기(8148)는 또한 앵커 어드레스에 기초하여 단일 라인 메모리(8120)에 대한 공통 독출/기입 어드레스를 합성한다. 공통 독출/기입 어드레스를 참조하여 화상 데이터가 단일 라인 메모리(8120)로부터 독출되거나 그곳에 저장된다. 어드레스 버퍼들(8142, 8144)은 화상 데이터 처리기(8100)로부터 단일 라인 메모리(8120)에 저장되는 8*H 픽셀들에 대한 앵커 어드레스를 저장한다. 앵커 어드레스는 매 8 픽셀 마다 일정한 값을 유지하는, 즉, 매 8픽셀 마다 그 값이 증가한다. 따라서, 앵커 어드레스는 0, 1, 2, 3,.. ...H/8-3, H/8-2, H/8-1이다. VGA 표준의 경우, 0, 1, 2, 3, ..., 637, 638, 639이며, 각 어드레스 버퍼는 640 픽셀을 저장한다. 각 어드레스 버퍼는 상술한 바와 같이, 서로 다른 순서로 앵커 어드레스를 저장한다.

    어드레스 제어기(8148)는 어드레스 버퍼들(8142, 8144)에 대한 독출 및 기입 어드레스를 발생하여 어드레스 버퍼들로부터 앵커 어드레스를 독출하고 이를 토대로 단일 라인 메모리(8120)에 대한 공통 독출/기입 어드레스를 발생하여 단일 라인 메모리(8120)에 대한 독출 동작을 수행하는 동시에 새로운 화상 데이터를 동일한 어드레스에 저장한다. 즉, 독출 어드레스에 의해 독출된 앵커 어드레스에 8을 곱하여 화상 데이터의 세그먼트의 첫 번째 픽셀에 대한 어드레스를 구하고 여기에 순차적으로 0 ~ 7을 더하여 세그먼트를 구성하는 8개의 픽셀들에 대한 공통 독출/기입 어드레스를 얻는다.

    독출 어드레스에 의해 어느 한 어드레스 버퍼로부터 독출된 앵커 어드레스는 기입 어드레스에 의해 다른 어드레스 버퍼에 저장된다. 독출 어드레스는 블록 단위 독출에 대응하는 (640/8)*vv+i 이며, 이때 i는 8라인 화상 데이터의 블록 순서를 표시하는 것으로서, 0 ~ 79(=640/8-1) 까지 증가하며, vv는 각 블록의 라인 수를 표시하는 변수로서, 각각의 i에 대해서 0 ~ 7까지 증가한다. 즉, 어드레스 버퍼에서 어드레스 0, 80, 160,..., 560, 1, 81,...에 저장된 앵커 어드레스가 독출된다. 반면 기입 어드레스는 항상 0 부터 639까지 순차적으로 증가한다.

    구체적으로, 공통 독출/기입 어드레스 crw_addr 는 아래 수식 3에 의해서 독출 어드레스 rd_addr에 의해 얻어진 앵커 어드레스를 토대로 하여 생성되며 이는 카운터를 이용해서 용이하게 구현할 수 있다.

    수식 3

    for(i=0;i<640/8;i++){

    for(vv=0;vv<8;vv++){

    for(hh=0;hh<8;hh++){

    rd_addr=vv*640/8+i;

    crw_addr=f[rd_addr]*8+hh

    }

    }

    }

    여기서 vv*640/8+i 는 독출 어드레스 rd_addr 이며, f[rd_addr]는 독출 어드레스 rd_addr가 가리키는 곳의 어드레스 버퍼의 주소에 저장된 앵커 어드레스이다.

    상기 수식 3에서 640 대신 다른 값을 사용하여 처리하고자 하는 화상의 크기에 부합하는 공통 독출/기입 어드레스를 생성할 수 있다.

    예컨대, 3 개의 색성분 Y, U, V를 가지는 VGA 화상이 처리될 때, 640이 1280으로 대체될 것이다.

    8 라인의 화상 데이터, 즉, 8*640 픽셀들이 처리되는 동안 각 어드레스 버퍼(8142, 8144)는 어느 하나의 동작 모우드를 가진다. 예컨대, 어느 한 어드레스 버퍼0(8142)에 독출 어드레스를 인가하여 그곳에 저장된 앵커 어드레스를 독출하고 독출된 앵커 어드레스를 순차적으로 다른 어드레스 버퍼1(8144)에 기입 어드레스를 참조하여 기입(저장)한다. 8라인의 화상 데이터 처리가 완료되면, 다중화 수단(8146)에 대한 선택 신호가 변경되어 각 어드레스 버퍼는 동작 모우드가 변경된다. 기입 어드레스가 인가된 어드레스 버퍼1(8144)에는 독출 어드레스가 인가되고 독출 어드레스가 인가된 어드레스 버퍼0(8142)에는 기입 어드레스가 인가된다.

    본 발명의 또 다른 실시예에 따르면, 어드레스 제어기(8148)는 어드레스 버퍼들(8142, 8144)로부터 앵커 어드레스를 독출하거나 어드레스 버퍼들(8142, 8144)에 앵커 어드레스를 기입(저장)하기 위한 독출 어드레스 및 기입 어드레스를 생성한다. 예컨대, VGA 휘도 성분의 경우, 어드레스 제어기(8148)는 아래 식 4와 같이 독출 어드레스를 생성한다.

    수식 4

    x=0; x'=1;

    waddr_anchor=0;

    for(i=0;i<60/8;i++){

    for(vv=0;vv<8;vv++){

    raddr_anchor=vv*80+i;

    ABUFx'[waddr_anchor]=ABUFx[raddr_anchor];

    addr1=ABUFx[raddr_anchor]*8+hh;

    }

    waddr_anchor++;

    }

    }

    x=~x; x'=~x';

    상기 식 4에서 "i"는 블록 인덱스(0≤i<80)를 나타내고, "vv"는 블록에서 수직 인덱스(0≤vv≤7)를 타나내고, "hh"는 블록의 수평 인덱스(0≤hh≤7)를 나타내고, x, x'는 서로 상보적인 값을 가지며 0 또는 1(루프의 끝에서 토글함)을 가진다.

    도 9a 내지 도 9d 및 도 10a 내지 도 10d를 참조하여 예로서 본 발명의 동작을 설명한다. 예시적으로 8*80 픽셀을 저장하는 단일 라인 메모리에 대해서 설명을 한다.

    도 9a 내지 도 9d는 단일 라인 메모리(8120)에 화상 데이터의 세그먼트(블록을 구성하는 수평 방향의 8개 픽셀들로 이루어진 라인)가 저장되는 형태를 보여주는 도면이다. 도 10a 내지 도 10d는 어드레스 버퍼들(8142, 8144)에 앵커 어드레스가 저장되는 형태를 보여주는 도면이다. 도면들에서, 단일 라인 메모리 및 어드레 스 버퍼의 어드레스(주소)는 좌에서 우로, 위에서 아래로 갈수록 증가한다.

    화상 데이터 처리기(8100)에서 출력되는 8*80 픽셀 화상 데이터(라스터 H1)가 단일 라인 메모리(8120)에 어드레스 0 부터 시작하여 639번지까지 순차적으로 기입된다. 즉 80개의 세그먼트(세그먼트 0 ~ 세그먼트 79)가 도 9a에 도시된 바와 같이 순차적으로 저장된다. 예컨대, 세그먼트 0은 픽셀 0 ~ 7로 이루어지고, 세그먼트 1은 픽셀 8 ~ 15 로 이루어지고, 세그먼트 10은 픽셀 80 ~ 87 로 이루어진다. 이때, 매 8개의 픽셀마다 발생하는(즉, 매 8 픽셀 동안 일정한 값을 유지하는) 앵커 어드레스 0 ~ 79가 도 10a에 도시된 바와 같이, 어드레스 버퍼0(8142)에 순차적으로 어드레스 0 번지에서 어드레스 79번지에 저장된다. 앵커 어드레스 0 ~ 79는 최초의 8라인의 화상 데이터(8*80 픽셀)가 단일 라인 메모리(8120)에 순차적으로 저장될 때, 각 세그먼트의 첫 번째 픽셀이 저장되는 어드레스를 8로 나눈 값에 해당한다. 따라서, 앵커 어드레스에 8을 곱하면 세그먼트의 첫 번째 픽셀이 저장되는 단이 라인 메모리(8120)의 어드레스를 얻을 수 있다. 앵커 어드레스가 어드레스 버퍼0(8142)에 저장되는 순서는 그와 같은 순서로 앵커 어드레스에 대응되는 단일 라인 메모리(8120)의 어드레스에 화상 데이터가 저장됨을 의미한다.

    640개의 픽셀들이 모두 단일 라인 메모리(8120)에 저장되면, 어드레스 버퍼0(8142)에 대한 독출 어드레스가 어드레스 제어기(8148)에 의해 생성된다. 독출 어드레스는 상술한 수식 3 또는 수식 4에서 주어진다. 즉, 어드레스 버퍼(8142, 8144)에 대한 독출 어드레스는 0, 10, 20, 30, 40, 50, 60, 70, 1, 11,21,31,.... 순으로 발생하며 여기에 8을 곱하면 블록 스캔 순서에서 각 세그먼트의 첫 번째 픽 셀 값이 된다.

    이어서, 8*8 블록을 생성하기 위해 단일 라인 메모리에 대한 공통 독출/기입 어드레스가 어드레스 제어기(8148)에 상기 수식 3 또는 수식 4에 따라 합성된다. 즉, 독출 어드레스를 참조하여 어드레스 버퍼0(8142)에 저장된 앵커 어드레스를 독출하고, 여기에 8을 곱하여 세그먼트의 첫 번째 픽셀 값을 구한 후 0 ~ 7을 더하여 세그먼트의 각 픽셀들에 대한 공통 독출/기입 어드레스를 합성한다.

    공통 독출/기입 어드레스를 참조하여 단일 라인 메모리(8120)에 대한 블록 단위 독출이 수행된다. 이때, 화상 데이터 처리기(8100)에서 출력되는 새로운 8라인의 화상 데이터 8*80 픽셀들(라스터 H2)이 도 9b에 도시된 바와 같이 공통 독출/기입 어드레스를 참조하여 단일 라인 메모리(8120)에 기입된다. 이때 독출된 앵커 어드레스를 도 10b에 도시된 바와 같이 어드레스 버퍼1(8144)에 0 부터 79까지 순차적으로 증가하는 기입 어드레스를 참조하여 순차적으로 저장한다. 여기서 먼저 상기 수식 3 또는 수식 4에 따라 공통 독출/기입 어드레스를 생성한 후, 라인 메모리에 대한 독출 및 기입 동작을 수행하면서, 매 8 픽셀마다 발생하는 공통 독출/기입 어드레스를 어드레스 버퍼1(8144)에 저장하여 앵커 어드레스로 사용할 수도 있다.

    상술한 바와 같이, 단일 라인 메모리(8120)의 어드레스 0번지 ~ 7번지(라스터 H1의 0번째 세그먼트가 저장된 어드레스)에 라스터 H2의 0번째 세그먼트가 저장되고, 단일 라인 메모리 어드레스 10*8 ~ 10*8+7 번지(라스터 H1의 10번째 세그먼트가 저장된 어드레스)에 라스터 H2의 두 번째 세그먼트가 저장되고, 단일 라인 메 모리 어드레스 20*8 ~ 20*8+7 번지(라스터 H1의 20번째 세그먼트가 저장된 어드레스)에 라스터 H2의 세 번째 세그먼트가 저장된다. 이때, 어드레스 버퍼1(8144)의 0 번지부터 순차적으로 앵커 어드레스 0, 10, 20,..이 저장된다. 따라서 어드레스 버퍼1(8144)에 대하여 동일한 독출 어드레스를 참조하면 라스터 H2에 대한 블록 단위 독출이 가능할 것이다.

    같은 방법으로 라스터 H2에 대한 블록 단위 독출 및 새로운 8라인의 화상 데이터(라스터 H3)에 대한 기입 동작이 수행된다. 즉, 독출 어드레스 vv*80/8+i 를 참조하여 도 10b에 나타난 어드레스 버퍼1(8144)로 부터 주소 0, 10, 20, 30, 40, 50, 60, 70, 1번지..에 저장된 앵커 어드레스(0, 21, 42,63,5,26,47,68,10,...)를 독출하여 이를 토대로 하여 공통 독출/기입 어드레스를 생성한다. 생성된 앵커 어드레스는 도 9b의 라인 메모리를 참조하면, 라스터 H2의 세그먼트 0, 10, 20, 30, 40, 50, 60, 70, 1... 에 대응함을 알 수 있다. 이는 블록 스캔 순서와 일치한다. 생성된 공통 독출/기입 어드레스를 사용하여 단일 라인 메모리(8120)로부터 라스터 H2에 대한 블록 단위 독출을 수행하는 동시에 새로운 8라인의 화상 데이터(라스터 H3)를 기입한다(도 9c 참조). 이때 어드레스 버퍼1(8144)로부터 독출된 앵커 어드레스 0, 21, 42, 63,...을 어드레스 버퍼0(8142)에 순차적으로 기입한다(도 10c) 참조).

    이어서, 독출 어드레스를 참조하여 어드레스 버퍼0(8142)로부터 앵커 어드레스 0, 52, 25..., 를 독출하고 이를 토대로 공통 독출/기입 어드레스를 발생한 후 라스터 H3에 대한 독출 동작 및 새로운 8라인의 화상 데이터(라스터 H4)에 대한 기 입 동작을 수행한다(도 9d 참조). 어드레스 버퍼0(8142)로부터 독출된 앵커 어드레스를 어드레스 버퍼1(8144)에 주소 0 에서 부터 79 번에 순차적으로 저장한다(도 10d 참조).

    화상 전체(한 프레임의 화상)가 처리될 때까지 이와 같은 과정을 반복한다. 마지막 8라인의 경우, 독출 동작만이 개시될 것이다. 즉, 마지막에서 두 번째 8라인에 대한 독출과 동시에 마지막 8라인에 대한 기입이 이루어지고, 마지막 8라인에 대한 독출 동작만이 수행된다. 화상 전체가 처리되면, 또 다른 프레임의 화상에 대하여 같은 방법으로 진행된다.

    도 11은 본 발명의 다른 실시예에 따른 어드레스 생성기(8140)를 개략적으로 도시한 블록도 이다. 휘도 VGA 표준의 경우를 예로 설명한다. VGA 표준의 경우 수평 해상도가 640 이므로, 단일 라인 메모리(1120)는 640*8*8 비트의 크기를 가진다. 최초 8라인(8*640 픽셀=5120픽셀)의 화상 데이터가 단일 라인 메모리(1120)에 순차적으로 즉, 주소 0 번지에서 주소 5119 번지에 저장될 때, 매 8 픽셀마다 0 부터 639까지 증가하는 앵커 어드레스가 발생한다. 따라서, 단일 라인 메모리는 5120 개의 픽셀을 저장하므로 단일 라인 메모리의 어드레스를 나타내기 위해서는 13비트가 필요하며, 앵커 어드레스는 10 비트가 필요하다. 따라서, 앵커 어드레스를 저장하는 어드레스 버퍼들(1142, 1144)은 각각 640*10 비트의 크기를 갖는다.

    시스템 클록, 수평 동기신호, 수직 동기신호, 프레임 스타트 신호 등이 어드레스 제어기(1148)에 인가되며, 어드레스 제어기(1148)는 이에 응답하여 어드레스 버퍼0(1142), 어드레스 버퍼1(1144), 다중화 수단들(1146, 1150, 1150', 1152, 1152', 1154), 단일 라인 메모리(1120)를 제어하는 각종 제어 신호, 예컨대, 앵커 어드레스, 기입 어드레스, 독출 어드레스, 공통 독출/기입 어드레스 등을 생성한다.

    앵커 어드레스는 3비트 카운터를 이용하여 얻을 수 있다. 또는 앵커 어드레스는, 최초 8라인의 화상 데이터가 순차적으로 증가하는 13 비트의 어드레스를 참조하여 단일 라인 메모리에 입력될 때, 13비트의 어드레스를 3비트 이동시킴으로써 얻을 수 있다. 즉, 단일 라인 메모리에 기입하기 위한 기입 어드레스가 도 12a에 도시된 바와 같이 오른쪽이 최하위 비트로 주어진다면, 단일 라인 메모리에 대한 기입 어드레스를 오른쪽으로 3비트 이동시키면 도 12b와 같이 앵커 어드레스가 구해진다. 즉, 앵커 어드레스는 매 8픽셀 동안 동일한 값을 유지하며, 0 부터 639 까지 증가한다.

    한편, 공통 독출/기입 어드레스는 앵커 어드레스에 8을 곱하고 0~7(세그먼트의 수평 픽셀들을 나타내기 위해 필요)을 더하여 얻어지기 때문에, 공통 독출/기입 어드레스는 13비트가 된다. 앵커 어드레스에 8을 곱하는 것은 앵커 어드레스를 3비트 이동시키는 것과 동일하고, 0 ~ 7을 더하는 것은 3비트를 더해주면 된다. 즉, 도 13a에 도시된 바와 같이 오른쪽이 최하위 비트인 앵커 어드레스 10비트를 왼쪽으로 3비트 이동시키면 8을 곱한 것과 동일하다. 이는 앵커 어드레스를 얻기 위해 단일 라인 메모리에 대한 기입 어드레스 13비트를 오른쪽으로 3비트 이동시킨 것을 보상한다. 따라서 앵커 어드레스에 8을 곱하게 되면 각 블록의 첫 번째 픽셀의 어드레스를 가리키게 된다. 여기에 도 13b에 도시된 바와 같이 3비트를 더하면 블록 의 각 세그먼트의 수평 성분들을 얻을 수 있다. 따라서 블록의 모든 픽셀들에 대한 공통 독출/기입 어드레스를 얻을 수 있다.

    어드레스 제어기(1148)는, 어드레스 버퍼들(1142,1144)에 대한 독출 어드레스 raddr_anchor 와 기입 어드레스 waddr_anchor 를 생성한다. 독출 어드레스 raddr_anchor 는 카운터, 곱셈기, 덧셈기 등을 이용하여 용이하게 구현할 수 있다. 기입 어드레스 waddr_anchor 는 순차적으로 증가하도록 즉, 입력되는 8*640 픽셀들에 대해서 매 8 픽셀마다 발생하여 0 부터 639까지 순차적으로 하나씩 증가한다. 기입 어드레스는 단순히 카운터를 이용하여 용이하게 구현 할 수 있다. 어드레스 버퍼들(1142,1144)에 대한 독출 동작은 비동기식으로 수행될 수 있다. 즉, 독출 어드레스 raddr_anchor 가 어드레스 버퍼들(1142,1144)에 인가되면 인가된 독출 어드레스 raddr_anchor의 주소에 대응하는 어드레스에 저장된 앵커 어드레스가 어드레스 버퍼들(1142,1144)의 출력단(DOUT)에서 출력된다. 한편, 어드레스 버퍼들(1142, 1144)에 대한 기입 동작은 동기식으로 진행될 수 있다. 즉, 기입을 위한 제어 신호인 기입 인에이블 신호 wen 가 논리 로우 상태일 때 클록의 상승 에지 또는 하강 에지에서 인가된 기입 어드레스 waddr_anchor 에 대응하는 주소에 앵커 어드레스가 기입된다. 동기식으로 독출 동작을 구현할 수도 있다. 이 경우, 독출 동작을 위한 제어 신호가 인가되고, 클록의 상승 에지 또는 하강 에지에서 인가된 독출 어드레스에 저장된 앵커 어드레스가 출력된다.

    어드레스 버퍼0(1142)가 독출 모우드로 작동할 때(기입 인에이블 신호가 하이 일때), 어드레스 버퍼1(1144)은 기입 모우드로 작동한다. 어드레스 버퍼0(1142) 가 기입 모우드로 작동할 때(기입 인에이블 신호가 로우 일때), 어드레스 버퍼1(1144)은 독출 모우드로 작동한다. 8라인의 화상 데이터(8*640 픽셀)에 대한 처리가 끝이 나면 각 어드레스 버퍼들은 그 동작 모우드가 전환된다. 이를 위해 어드레스 생성기(8140)는 다중화 수단들(1150, 1150', 1152, 1152', 1154, 1146)을 포함한다.

    다중화 수단(1150)은 기입 인에이블 신호 wen 와 논리 하이 신호('1')를 다중화하여 어드레스 버퍼0(1142)의 입력단 WEN에 전달한다. 다중화 수단(1150')은 기입 인에이블 신호 wen 와 논리 하이 신호('1')를 다중화하여 어드레스 버퍼1(1144)의 입력단 WEN에 전달하되, 다중화 수단 (1150)에 대해서 상보적으로 동작한다.

    다중화 수단(1152)은 독출 어드레스 raddr_anchor 및 기입 어드레스 waddr_anchor 를 다중화하여 어드레스 버퍼0(1142)의 어드레스 입력단 A에 어드레스를 인가한다. 다중화 수단(1152')은 독출 어드레스 raddr_anchor 및 기입 어드레스 waddr_anchor를 다중화하여 어드레스 버퍼1(1144)의 어드레스 입력단 A 에 어드레스를 인가하되, 다중화 수단(1152)과는 상보적으로 동작한다. 따라서 어느 한 어드레스 버퍼가 기입 모우드로 동작하면 다른 하나의 어드레스 버퍼는 동작 모우드로 동작하게 된다.

    첫 번째 화상 데이터(PixelM[7:0])가 도 8의 화상 데이터 처리기(100)로 부터 단일 라인 메모리(1120)에 입력될 때, 어드레스 제어기는 초기화된다. 도 14는 본 실시예에 따른 초기화 과정을 도시하는 타이밍도이다.

    어드레스 제어기(1148)는 어드레스 버퍼0(1142)에 대한 초기 신호(init), 기입 인에이블 신호(wen) 및 기입 어드레스 waddr_anchor 를 발생한다. 기입 어드레스 waddr_anchor 는 도 14에 도시된 바와 같이, 0부터 639 까지 순차적으로 하나씩 증가한다. 기입 인에이블 신호(wen)는 매 8 클록 중 한 클록(첫 번째 클록) 동안 논리 로우 상태를 나타낸다.

    초기화 과정 중에, 어드레스 버퍼0(1142)의 데이터 입력단(DI)은 다중화 수단(1154)을 통해 기입 어드레스 wadd_anchor 에 연결되며, 따라서, 어드레스 버퍼0(1142)는 기입 어드레스를 저장한다. 즉, 초기화 과정 중에 어드레스 버퍼0(1142)는 0부터 639까지 순차적으로 하나씩 증가하는 기입 어드레스 waddr_anchor 를 주소 0 부터 마지막 주소까지 순차적으로 저장한다. 동시에, 화상 데이터 처리기로부터 단일 라인 메모리(1120)에 순차적으로 즉, 어드레스 0 에서부터 마지막 어드레스까지 화상 데이터가 저장된다.

    초기화 과정 이후, 어드레스 버퍼0(1142)의 내용물이 도 15에 도시되어져 있다. 또한, 초기화 과정 이후에, 초기 신호(init)는 디스에이블되고, 따라서 어드레스 버퍼0(1142)의 데이터 입력단은 다중화 수단(1154)을 통해서 다중화 수단(1146)의 출력단과 연결된다.

    어드레스 제어기(1148)는 기입 인에이블 신호 wen, 독출 어드레스 raddr_anchor, 기입 어드레스 waddr_anchor 를 출력한다. 기입 어드레스 waddr_anchor 는 전술한 바와 같이 초기화 과정 중과 동일하게 발생한다. 기입 인에이블 신호 wen는 어드레스 버퍼1(1144)을 기입 가능하게 한다. 수식 3 및 수식 4 에 의해 결정되는 앵커 어드레스, 즉, 어드레스 버퍼의 내용물은 vv*80+i이다. 앵커 어드레스가 결정되면, 어드레스 버퍼1(1144)에 저장된 어드레스는 어드레스 제어기(1148)에 입력된다.

    *어드레스 제어기(1148)는 아래 수식에 의해서 단일 라인 메모리의 어드레스를 계산한다.

    addr1=ABUFx[vv*80+i]*8 + hh, (ABUFx[vv*80+i] 값이 앵커 어드레스임)

    도 15에는 어드레스 버퍼0(1142)에 순차적으로 저장된 앵커 어드레스들을 간략히 도시하고 있다. 도 17은 15의 어드레스 버퍼0(1142)에 저장된 앵커 어드레스들이 어드레스 버퍼1(1144)에 기입되는 것을 개략적으로 보여준다. 독출 및 기입 동작에 대한 타이밍도가 도 16에 나타나 있다.

    도 18은 다음 8라인의 픽셀들을 위한 어드레스 버퍼0(1142)의 내용물을 도시한다.

    다중화 수단(1146)은 어드레스 버퍼들의 출력단 DOUT으로부터 출력되는 앵커 어드레스를 어드레스 제어기(1148) 및 어드레스 버퍼들(1142, 1144)에 전달한다. 어드레스 버퍼로부터 발생된 앵커 어드레스는 다른 어드레스 버퍼의 입력단 DI을 통해서 순차적으로 다른 어드레스 버퍼에 기입되고 또 어드레스 제어기(1148)에 입력되어 공통 독출/기입 어드레스를 생성하는데 사용된다.

    만약 선택 신호가 논리 로우('0') 상태이면, 다중화 수단(1150)은 기입 인에이블 wen 을 어드레스 버퍼0(1142)의 기입 모우드 입력단 WEN 에 전달한다. 반면 다중화 수단(1150')은 논리 하이('1')를 어드레스 버퍼1(1144)의 기입 모우드 입력단 WEN에 전달한다. 따라서, 기입 모우드 입력단 WEN은 로우 액티브이기 때문에 어드레스 버퍼1(1144)은 기입 모우드로 동작하지 않는다. 반면, 어드레스 버퍼0(1142)는 기입 인에이블 wen이 논리 로우로 인가되면 기입 모우드로 동작한다. 또, 다중화 수단(1152)은 기입 어드레스 waddr_anchor 를 어드레스 버퍼0(1142)에 전달하고, 다중화 수단(1152')은 독출 어드레스 raddr_anchor 를 어드레스 버퍼1(1144)에 전달한다. 다중화 수단(1146)은 어드레스 버퍼1(1144)의 출력을 선택한다.

    도 19에 도시된 바와 같이, 화상 데이터 처리기(8100)에서 출력되는 8라인의 화상 데이터가 클록의 상승 에지에 동기화되어 단일 라인 메모리(1120)에 순차적으로 저장된다. 이때, 다중화 수단의 선택 신호는 논리 로우('0') 상태이다. 따라서, 어드레스 버퍼0(1142)는 기입 모우드로 동작하고 어드레스 버퍼1(1144)은 독출 모우드로 동작하며, 다중화 수단(1146)은 어드레스 버퍼1(1144)의 출력 선택한다.

    8라인의 화상 데이터가 화상 데이터 처리기(8100)에서 출력되어 단일 라인 메모리(1120)에 순차적으로 저장될 때, 매 8 픽셀마다 발생하여 0 부터 639 까지 증가하는 앵커 어드레스 및 기입 어드레스 waddr_anchor 가 발생한다. 또 발생한 앵커 어드레스 0 ~ 639가 기입 어드레스 waddr_anchor 를 참조하여 어드레스 버퍼0(1142)에 어드레스 0번지에서 부터 639번지까지 순차적으로 저장된다. 이때, 독출 어드레스 raddr_anchor 가 발생하지 않기 때문에, 어드레스 버퍼1(1144)로부터는 출력이 발생하지 않는다.

    도 20은 본 발명에 있어서, VGA 표준 두 번째 8라인의 화상 데이터가 단일 라인 메모리에 저장될 때, 어드레스 제어기에서 발생되는 여러 신호들을 도시하는 타이밍도이다.

    8라인의 화상 데이터 8*640 픽셀이 단일 라인 메모리(1120)에 모두 기입되면, 다중화 수단들의 선택 신호가 논리 로우에서 논리 하이('1')로 바뀐다. 따라서, 어드레스 버퍼0(1142)의 기입 모우드 입력단 WEN에는 논리 하이가 입력된다. 이에 따라, 어드레스 버퍼0(1142)는 더 이상 기입 모우드로 동작하지 않으며, 독출 어드레스 raddr_anchor 는 다중화 수단(1152) 을 통해 어드레스 버퍼0(1142)에 전달된다. 즉, 어드레스 버퍼0(1142)는 독출 모우드가 된다. 한편, 어드레스 버퍼1(1144)의 기입 모우드 입력단 WEN 은 논리 로우의 기입 인에이블 신호 wen 를 입력받기 때문에 활성화 상태가 되고, 기입 어드레스 waddr_anchor 가 다중화 수단(1152')을 통해 어드레스 버퍼1(1144)에 전달된다. 즉 어드레스 버퍼1(1144)은 기입 모우드가 된다. 한편, 다중화 수단(1146)은 어드레스 버퍼0(1142)의 출력을 선택하여 어드레스 제어기(1148) 및 어드레스 버퍼1(1144)에 전달한다.

    어드레스 제어기(1148)는 독출 어드레스 raddr_anchor 를 생성하고 이를 어드레스 버퍼0(1142)에 인가하여 어드레스 버퍼0(1142)로부터 앵커 어드레스를 독출 한다. 독출 어드레스 raddr_anchor 는 vv*640/8+i 를 만족하도록 발생된다. 즉, 독출 어드레스 raddr_anchor 는 0, 80, 160, 240,..560, 1, 81, ... 순으로 발생한다. 따라서 어드레스 버퍼0(1142)의 어드레스 0, 80, 160, 240,..560, 1, 81, ... 에 저장된 앵커 어드레스가 순차적으로 출력된다. 출력된 앵커 어드레스는 다중화 수단(1146)을 통해 어드레스 버퍼1(1144) 및 어드레스 제어기(1148)에 입력된다.

    앵커 어드레스는 매 8픽셀 동안 일정한 값을 유지하고 있기 때문에, 앵커 어드레스를 어드레스 버퍼1(1144)에 기입하기 위한 기입 인에이블 신호 wen 는 8 클록 중 어느 때라도 활성화(로직 로우)될 수 있다. 도 20에 도시된 바와 같이 8 클록 중 매 첫 번째 클록에서 활성화 될 수 있다. 기입 인에이블 신호 wen 가 활성화 되면(논리 로우가 되면) 어드레스 버퍼0(1142)로부터 독출된 앵커 어드레스 0, 80, 160, 240, ,,,560, 1, 81...이 순차적으로 증가하는 기입 어드레스 waddr_anchor 를 참조하여 어드레스 버퍼1(1144)에 어드레스 0번지부터 639번지까지 순차적으로 저장된다.

    한편, 어드레스 버퍼0(1142)에서 출력된 앵커 어드레스를 토대로 하여 수식 3 및 수식 4에 따라 공통 독출/기입 어드레스가 어드레스 제어기(1148)에 의해 생성된다. 예컨대, 공통 독출/기입 어드레스 0 ~ 7, 640 ~ 646, 1280 ~ 1287, 1920 ~ 1927, ..., 4480 ~ 4487, ..., 8 ~ 15, 648 ~ 655,..가 이와 같은 순서로 생성된다.

    생성된 공통 독출/기입 어드레스에 따라 단일 라인 메모리(1120)에 대한 독출 동작이 진행되는 동시에 새로운 8라인의 화상 데이터가 단일 라인 메모리(1120)에 기입된다.

    이와 같은 방법으로, 새로운 8라인이 단일 라인 메모리(1120)에 모두 기입되면, 다중화 수단들의 선택 신호가 다시 로우 상태가 된다. 이에 따라 어드레스 버퍼0(1142)는 다시 기입 모우드로 동작하고 어드레스 버퍼1(1144)는 독출 모우드로 동작한다. 다중화 수단(1146)은 어드레스 버퍼1(1144)로 출력되는 앵커 어드레스를 선택하며, 출력된 앵커 어드레스가 어드레스 버퍼0(1142) 및 어드레스 제어기(1148)에 입력된다.

    어드레스 버퍼1(1144)에 독출 어드레스 raddr_anchor 가 인가되어 앵커 어드레스를 출력되고, 출력된 앵커 어드레스가 어드레스 버퍼0(1142)에 기입 어드레스 waddr_anchor 를 참조하여 순차적으로 저장된다. 어드레스 버퍼1(1144)로부터 출력된 앵커 어드레스를 토대로 하여 어드레스 제어기(1148)는 공통 독출/기입 어드레스를 생성한다. 생성된 공통 독출/기입 어드레스를 참조하여 단일 라인 메모리(1120)에 대한 독출과 동시에 새로운 8라인의 화상 데이터가 저장된다.

    단일 라인 메모리(1120)에 대한 독출/기입이 완료되면 다시 다중화 수단의 선택 신호가 하이 상태가 된다.

    한 프레임의 화상 데이터 전체(480*640 픽셀)가 처리될 때까지 이와 같은 동작을 반복적으로 실시한다. 마지막 8라인이 단일 라인 메모리(1120)에 기입된 후에는, 생성된 공통 독출/기입 어드레스를 참조하여 단일 라인 메모리(1120)에 대한 독출 동작만이 수행된다.

    도 21은 본 발명의 또 다른 한 실시예에 따른 화상 처리 장치를 개략적으로 도시한다.

    도 21에 따르면 상기 화상 처리 장치는 화상 데이터 처리기(100), 라인 메모리(180), 화상 압축기(200), 상기 라인 메모리(180)에 대한 어드레스를 생성하기 위한 두 개의 어드레스 버퍼들(1142, 1144) 및 다중화 수단들(1150, 1151, 1152, 1153, 1154, 1146), 상기 화상 데이터 처리기(100)에서 출력되는 화상 데이터를 임시로 저장하여 라인 메모리(180)에 저장하기 위한 FIFO 메모리들(154, 156, 158) 및 다중화 수단(160), 그리고 이들의 동작을 제어하기 위한 제어기(1000)를 포함한다.

    구체적으로 설명을 하면, 상기 화상 데이터 처리기(100)에서 출력되는 라스트 포맷의 화상 데이터(YOU0Y1V0Y2U1Y3V1...)는 제어기(1000)의 제어하에 각 색 성분별로 FIFO 메모리들(154, 156, 158)에 저장된다. FIFO 메모리들(154, 156, 158)에 저장된 색 성분들이 제어기(1000)의 제어하에 다중화 수단(160)을 통해서 라인 메모리(180)에 저장된다. 즉, 특정 FIFO 메모리에서 색 성분이 독출되어 라인 메모리(180)에 기입된다. 라인 메모리(180)에 기입되는 어드레스는 제어기(1000)에서 지정된다.

    첫 번째 화상 데이터(PixelM[7:0])가 화상 데이터 처리기(100)로 부터 입력될 때, 제어기(1000)는 초기화 된다.

    제어기(1000)는 어드레스 버퍼0(1142)에 대한 초기 신호(init), 기입 인에이블 신호(wen) 및 기입 어드레스 waddr_anchor 를 발생한다. 기입 어드레스 waddr_anchor는 0 부터 639까지 순차적으로 하나씩 증가한다. 기입 인에이블 신호 wen 는 매 8 클록 중 한 클록(예컨대, 첫 번째 클록) 동안 논리 로우 상태를 나타낸다.

    초기화 과정 중에, 어드레스 버퍼0(1142)의 데이터 입력단(DI)은 다중화 수단(1154)을 통해 기입 어드레스 waddr_anchor 에 연결되며, 따라서, 어드레스스 버퍼0(1142)는 기입 어드레스를 저장한다. 동시에, 화상 데이터 처리기(100)로부터 라인 메모리(180)에 순차적으로, 즉, 어드레스 0 에서 부터 마지막 어드레스까지 화상 데이터가 저장된다.

    초기화 과정 이후에, 초기 신호(init)는 디스에이블되고, 따라서 어드레스 버퍼0(1142)의 데이터 입력단(DI)은 다중화 수단(1154)을 통해서 다중화 수단(1146)과 연결된다.

    제어기(1000)는 기입 인에이블 신호 wen, 독출 어드레스 raddr_anchor, 기입 어드레스 waddr_anchor를 출력한다. 기입 어드레스 waddr_anchor는 초기화 과정 중과 동일하게 발생한다. 기입 인에이블 신호 wen 는 어드레스 버퍼1(1144)을 기입 가능하게 한다. 상기 수식 3 및 수식 4에 의해 결정되는 앵커 어드레스, 즉, 어드레스 버퍼의 내용물은 vv*80+i 이다. 앵커 어드레스가 결정되면, 어드레스 버퍼1(1144)에 저장된 어드레스는 제어기(1000)에 입력된다.

    제어기(1000)는 아래 수식에 의해서 라인 메모리(180)의 어드레스를 계산한다.

    addr1=ABUFx[vv*80+i]*8 +hh, 여기서 ABUFx[vv*80+i] 값이 앵커 어드레스이다.

    상술한 바와 같이 화상 데이터 처리기(100)에서 출력되는 화상 데이터는 제어기(1000)의 제어에 의해 계산된 라인 메모리의 어드레스에 기입되며, 하나의 프레임 또는 전체 프레임 중에서 화상 데이터를 기초로 기입할 때 마지막 8 라인의 활상 데이터를 독출할 때를 제외하면, 기입 어드레스는 화상 압축기(200)로 출력되 는 독출 어드레스로 이용된다.

    상술한 본 발명의 실시예에 따르면, 제1 어드레스 버퍼에 순차적으로 저장된 앵커 어드레스를 미리 정해진 독출 어드레스에 의해(블록 단위 독출) 독출하여 다시 순차적으로 제2 어드레스 버퍼에 저장한다. 제2 어드레스 버퍼에 저장된 앵커 어드레스를 다시 미리 정해진 독출 어드레스에 의해 독출하여 순차적으로 제1 어드레스에 저장한다. 이와 같이, 라인 메모리 보다 크기가 1/8 작은 두 개의 어드레스 버퍼들에 앵커 어드레스를 저장함으로써, 라스터 포맷 및 블록 포맷 사이의 화상 데이터 전환을 단일 메모리를 사용하여 용이하게 구현할 수 있다. 어드레스 버퍼에 대한 독출 어드레스는 항상 일정한 패턴 즉, H/8*vv+i 으로 나타나며, 기입 어드레스 역시 일정한 패턴, 즉 순차적으로 증가한다(0 ~ H-1). 기입 어드레스 패턴은 단순히 카운터를 이용하여 아주 용이하게 구현할 수 있으며, 독출 어드레스 패턴 역시 쉬프트 레지스터, 덧셈기 등을 이용하여 용이하게 구현할 수 있다. 한편, 공통 독출/기입 어드레스는 어드레스 버퍼로부터 독출된 앵커 어드레스를 쉬프트 레지스터를 이용하여 3비트 이동시키고 3비트를 더함으로써 용이하게 구현할 수 있다.

    상술한 방법에서, 첫 번째 8라인의 화상 데이터가 단일 라인 메모리에 저장될 때, 세그먼트의 첫 번째 픽셀이 저장되는 어드레스를 8로 나누어 앵커 어드레스로 정하였으나, 앵커 어드레스를 다르게 정할 수 도 있다. 즉, 세그먼트의 첫 번째 픽셀이 저장되는 어드레스를 앵커 어드레스로 정할 수 있다. 이 경우, 어드레스 버퍼들에 대한 독출 어드레스 및 기입 어드레스는 변함이 없다. 하지만, 공통 독출/기입 어드레스의 경우, 상기 수식 3에서, 독출 어드레스 rd_addr에 의해 독출된 앵 커 어드레스 f[rd_addr] 에 단지 세그먼트의 수평 방향 픽셀을 나타내는 hh 만을 더하면 된다. 즉 공통/독출 어드레스 crw_adr = f[rd_addr] + hh 이며, 독출 어드레스 rd_addr = vv*640/8+i 이다.

    이제까지는 라스터 포맷의 데이터를 블록 포맷의 데이터로 변환하는 방법을 설명하였으나, 역변환, 즉 블록 포맷의 데이터를 라스터 포맷의 데이터로 변환하는 것에도 동일하게 적용될 것이다.

    이상에서 설명한 단일 라인 메모리 및 어드레스 버퍼 두개를 사용하는 본 발명의 라인 메모리 시스템과 두 개의 라인 메모리를 사용하는 통상적인 라인 메모리 시스템을 VGA 표준에 적용했을 때, 휘도 성분 Y에 대한 라인 메모리 구현에 필요한 등가 게이트 수를 비교하면 아래 표 2와 같다.

    표 2

    통상적인 라인 메모리 시스템 본 발명의 라인 메모리 시스템
    메모리 비트 81920 52480
    메모리 구현을 위한 게이트 수 79170 64471

    두 개의 라인 메모리를 사용하는 통상적인 라인 메모리 시스템의 메모리 비트는 640*8*8*2=81920 비트이다. 반면 본 발명에 따른 라인 메모리 시스템은 640*8*8+640*10*2=52480 비트이다. 이와 같은 라인 메모리를 단일 포드 SRAM으로 구현할 경우, 통상적인 방법은 79170개의 게이트가 필요하고, 본 발명의 경우 64471개의 게이트가 필요하다.

    이제까지 본 발명에 대하여 그 바람직한 실시예(들)를 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본 질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 본 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.

    상술한 본 발명에 따르면, 색성분을 하나의 라인 메모리에 저장하기 때문에, 라인 메모리 크기가 감소된다.

    따라서, 칩에 내장시 작은 크기의 칩을 얻을 수 있으며, 또한 시스템의 저전력화를 도모할 수 있다.

    또 본 발명에 따르면, 종래 각 색성분들에 대하여 독립적으로 필요한 주소 해독기 등을 하나로 통합함으로써, 필요한 하드웨어의 양을 줄일 수 있고 장치의 설계를 간단히 하고 또한 비용을 절감할 수 있다.

    高效检索全球专利

    专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

    我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

    申请试用

    分析报告

    专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

    申请试用

    QQ群二维码
    意见反馈