[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

KR101127962B1 - 영상 처리 장치 및 영상 처리를 위한 프레임 메모리 관리 방법 - Google Patents

영상 처리 장치 및 영상 처리를 위한 프레임 메모리 관리 방법 Download PDF

Info

Publication number
KR101127962B1
KR101127962B1 KR1020080131607A KR20080131607A KR101127962B1 KR 101127962 B1 KR101127962 B1 KR 101127962B1 KR 1020080131607 A KR1020080131607 A KR 1020080131607A KR 20080131607 A KR20080131607 A KR 20080131607A KR 101127962 B1 KR101127962 B1 KR 101127962B1
Authority
KR
South Korea
Prior art keywords
address
color difference
frame
signal
frame memory
Prior art date
Application number
KR1020080131607A
Other languages
English (en)
Other versions
KR20100073029A (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 KR1020080131607A priority Critical patent/KR101127962B1/ko
Priority to US12/579,630 priority patent/US20100156917A1/en
Publication of KR20100073029A publication Critical patent/KR20100073029A/ko
Application granted granted Critical
Publication of KR101127962B1 publication Critical patent/KR101127962B1/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/02Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the way in which colour is displayed
    • 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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G3/00Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes
    • G09G3/20Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes for presentation of an assembly of a number of characters, e.g. a page, by composing the assembly by combination of individual elements arranged in a matrix no fixed position being assigned to or needed to be assigned to the individual characters or partial characters
    • 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
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2360/00Aspects of the architecture of display systems
    • G09G2360/12Frame memory handling
    • G09G2360/123Frame memory handling using interleaving
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2360/00Aspects of the architecture of display systems
    • G09G2360/12Frame memory handling
    • G09G2360/128Frame memory using a Synchronous Dynamic RAM [SDRAM]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

본 발명은 영상 처리 장치 및 영상 처리를 위한 프레임 메모리 관리 방법에 관한 것으로, 메모리 구성 정보와 영상 처리 정보를 참조하여 프레임 메모리 구조를 결정하는 단계; 상기 프레임 메모리 구조에 따라 각 페이지에 다수개의 영상 신호가 저장되도록 프레임 메모리를 구성하는 단계; 및 영상 획득 정보를 비트단위로 결합하여 신호 저장 주소를 계산하고 프레임 메모리 맵에 액세스하여 영상 신호를 페이지 단위로 기입 또는 독출하는 단계를 포함하여 구성된다.
영상 처리, 프레임 메모리 구조, 프레임 메모리 관리, 지연

Description

영상 처리 장치 및 영상 처리를 위한 프레임 메모리 관리 방법{Apparatus for image processing and method for managing frame memory in image processing}
본 발명은 블록 단위로 프레임 메모리를 액세스하는 영상 처리 장치에 있어서 효율적으로 프레임 메모리를 관리하는 기술에 관한 것으로, 특히 DRAM(Embedded DRAM, SDR 및 DDR SDRAM 등)을 프레임 메모리로 사용하는 영상 처리 장치에 있어서 프레임 메모리가 제공하는 전체 대역폭을 손실 없이 사용하기 위한 영상 처리 장치 및 영상 처리를 위한 프레임 메모리 관리 방법에 관한 것이다.
본 발명은 정보통신부 및 정보통신연구진흥원의 IT성장동력기술개발사업의 일환으로 수행한 연구로부터 도출된 것이다[과제관리번호: 2007-S-026-02, 과제명: MPCore 플랫폼 기반 다중 포맷 멀티미디어 SoC].
최근에 네트워크, 저장 장치 및 디스플레이 장치의 발달로 인해 멀티미디어 데이터의 양이 급속도로 팽창하고 있으며, 동영상의 경우, 종래에는 SD급(480p) 이하의 해상도를 가지는 동영상이 주류를 이루고 있었으나, 현재는 HD급(720p)을 넘 어서 Full-HD(1080p)의 해상도를 가지는 동영상이 보편화되고 있는 추세이다.
Full HD 동영상은 1920 ×1080의 해상도를 가지는 동영상이지만, 내부적으로는 매크로 블록(16 ×16)의 배수인 1920 ×1088로 처리되므로 1920 ×1088 화소를 저장할 프레임 메모리가 필요하다.
프레임당 데이터양이 가장 적어서 영상 압축 또는 복원에서 주로 사용하는 YCbCr 4:2:0 포맷으로 저장할 경우, 한 프레임당 약 24Mbit의 프레임 메모리가 필요하며, 압축 또는 복원을 위해서는 1장 이상의 참조메모리와 1장의 재구성 메모리를 포함하여 최소 2장 또는 그 이상의 프레임 메모리가 필요하므로, 외부 메모리 사용이 필수적이다.
현재 SRAM(Static Random Access Memory)보다는 작은 면적을 차지하며 가격이 저렴한 DRAM(Dynamic Random Access Memory)을 프레임 메모리로 사용하고 있다.
프레임 메모리에 사용되는 DRAM에 대해 상세한 설명은 생략한다. 일반적으로 DRAM은 2개 이상의 뱅크로 구성되며, 각 뱅크는 행(row)과 열(column)로 이루어진다. 같은 행 주소(row address)를 가지는 메모리 단위를 페이지(page)라 하며, 단품 메모리의 경우 페이지 크기가 1024byte 또는 2048byte를 가지는 메모리들이 생산되고 있으며, 단품 메모리를 조합한 모듈형 메모리의 경우 구성에 따라서 4096byte 이상의 페이지 크기를 가지는 메모리들이 생산되고 있다. 하나의 페이지 안에서는 연속으로 액세스 할 경우에는 지연(latency)이 없이 액세스가 가능하지만, 다른 페이지를 액세스 하려면 프리차지(precharge)를 위한 지연이 삽입된다.
상기의 지연은 2개 이상의 뱅크를 사용하여 프레임 데이터를 저장하고 뱅크 를 번갈아가며 액세스 하면 DRAM 액세스 명령을 중첩 시켜서 액세스하면 지연시간을 숨길 수 있다.
현재 가장 압축 효율이 좋은 H.264/AVC 영상 코덱(codec)의 경우 16×16 화소 크기의 매크로 블록(macro block)을 정의하고, 프로세싱(processing) 및 데이터 액세스를 매크로 블록 단위로 수행한다.
H.264/AVC 뿐만 아니라, 현재 사용되는 대부분의 동영상 코덱은 매크로 블록을 정의하고, 매크로 블록을 기반으로 압축 및 복원을 처리하고 있다.
대부분의 영상 처리 장치에서는 영상 입력 및 출력 장치와 연결하기 위한 인터페이스를 가지고 있으며, 영상 입출력 장치의 경우 대부분 주사 순서(raster scan order)에 따라 데이터가 입력 또는 출력되는 구조를 가지고 있다.
도1은 H.264/AVC 표준에서 사용하는 Full HD 영상의 매크로 블록 단위의 화면 구성을 도시한 도면이다.
Full HD 영상의 경우 16×16 화소로 구성되는 매크로 블록이 가로로 120개 세로로 68개 총 8160개의 매크로 블록으로 구성되며, 프레임 메모리에 저장되는 방식은 도2a 내지 도2c와 같이 다양한 방법이 존재한다.
도2a와 같이 주사 순서에 따라 주소를 증가시켜 가며 저장하는 방식과, 도2b와 같이 주사 순서에 따라 DRAM의 열 주소(column address)를 증가시켜 가다가 주사선(scan line)이 바뀌면 행 주소(row address)를 하나 증가시킨 후 다시 열 주소(column address)를 증가시켜 가며 데이터를 저장하는 방식이 프레임 메모리에 주로 사용되었다.
도2a의 방식은 메모리를 효율적으로 사용할 수 있지만, 주소계산에 곱셈기가 필요하고 직관적이지 못한 단점이 있다.
도2b는 낭비되는 메모리가 있지만 화소의 X 좌표가 열 주소 Y 좌표가 행 주소와 일치하므로, 주소 계산이 간단하고 직관적이어서 자주 사용된다.
도2a 및 도2b는 압축할 화면을 입력하거나 복원된 화면을 표시할 때에는 주사선 단위로 프레임 메모리를 액세스하기에 적합한 방법이다. 그러나 영상의 압축 또는 복원 시에는 대부분 블록 단위로 메모리 액세스가 발생하기 때문에 한 블록을 액세스하기 위해서 매크로 블록 하나를 액세스 하기 위해서 매 화면 표시라인마다 행 주소(row address)를 바꾸어 주어야 하므로, 열 주소를 바꾸기 위한 지연이 추가되어 영상 처리 장치에는 적합하지 않은 방법이다.
프레임 메모리에 저장된 각각의 화소는 8 bit로 구성되어 있고 행 주소 전환에 필요한 지연시간이 6 클럭(clock)이고 32bit 인터페이스를 가진 DRAM을 프레임 메모리로 사용할 경우, H.264/AVC에서 사용하는 16×16 화소 크기의 휘도(LUMA) 매크로 블록 액세스를 예로 설명하면, 다음과 같다.
매크로 블록 액세스를 위해서 16번의 행 주소 변경이 필요하므로 96(6×16) 클럭의 지연시간이 소요되고, 한 클럭에 4화소(4×8bit)의 데이터가 출력되므로 16x16 매크로 블록의 데이터 출력에 걸리는 시간은 64(16/4×16) 클럭이 소요된다. 매크로 블록 액세스에는 지연 및 데이터 전송시간을 포함해서 총 160클럭이 사용되며, 이는 DRAM이 제공할 수 있는 대역폭의 약 40%이다.
H.264/AVC에서 4×4 블록의 색차 신호움직임 보상을 위해서는 3×3 블록을 액세스 해야 된다.
상기의 문제를 보완하기 위한 방법으로 도2c와 같이 하나의 매크로 블록을 프레임 메모리에 저장할 때 하나의 열 주소에 순차적으로 저장하고 매크로 블록 단위로 액세스 방식이 제안되었으나, 이 또한 복잡한 주소계산과 매크로 블록 경계에 걸친 블록 액세스에서의 성능 저하 및 화면 표시를 위한 데이터의 재정렬이 필요한 단점을 가진다.
상기 매크로 블록 경계에 걸친 블록 액세스에서의 성능 저하를 해결하기 위하여 인접한 매크로 블록을 다른 뱅크에 저장하거나, 하나의 매크로 블록을 여러 개의 파티션으로 나누어 인접한 파티션을 다른 뱅크에 나누어 저장함으로써 멀티 뱅크 인터리빙을 가능하게 하는 프레임 메모리구조가 제안되었으나 주소 계산이 더욱 복잡해지고, 화면 표시를 위한 데이터 재정렬이 필요한 단점은 여전히 남아있다.
이에 본 발명에서는 화면 표시를 위해서 프레임 데이터 재정렬 할 필요가 없고, 블록단위의 프레임 메모리 액세스에 있어서 주소 계산 방법이 간단하며, 메모리 구조가 직관적이고, 지연 없이 연속적으로 블록 데이터를 액세스 할 수 있는 프레임 메모리 관리 방법과 그 장치를 제공하고자 한다.
또한, 격행 주사를 효율적으로 지원하기 위해서 프레임 메모리를 액세스 할 때 매크로블럭 단위로 프레임/필드를 선택해서 액세스 할 수 있는 프레임 메모리 관리 방법과 그 장치를 제공하고자 한다.
뿐 만 아니라, 영상 처리 장치 및 외부 메모리 설정을 참조하여 구성에 적합한 프레임 메모리 구조를 자동으로 생성하는 프레임 메모리 관리 방법 및 그 장치를 제공하고자 한다.
더 나아가, 분산되어 관리되는 프레임 메모리 관련기능을 통합하여 관리를 간단하게 한 프레임 메모리 관리 방법 및 그 장치를 제공하고자 한다.
본 발명의 제1측면에 따르면 상기와 같은 문제점을 해결하기 위한 수단으로서, 메모리 구성 정보와 영상 처리 정보를 참조하여 프레임 메모리 구조를 결정하는 단계; 상기 프레임 메모리 구조에 따라 각 페이지에 다수개의 영상 신호가 저장되도록 프레임 메모리를 구성하는 단계; 및 영상 획득 정보를 비트단위로 결합하여 신호 저장 주소를 계산하고 프레임 메모리 맵에 액세스하여 영상 신호를 페이지 단위로 기입 또는 독출하는 단계를 포함하는 영상 처리를 위한 프레임 메모리 관리 방법을 제공한다.
상기 프레임 메모리 구조를 결정하는 단계는 페이지 사이즈, 버스 폭, 뱅크수, 및 행수에 대한 정보를 가지는 메모리 구성 정보와 영상의 폭과 높이에 대한 정보를 가지는 영상 처리 정보를 참조하여, 상기 프레임 메모리의 최대 프레임수, 페이지당 영상 라인 수, 프레임 옵셋, 색차 신호 옵셋을 결정하는 것을 특징으로 한다.
상기 프레임 메모리 구조를 결정하는 단계는 최대 프레임수, 페이지당 영상 라인 수는 '1) 영상폭 = 매크로 블록 단위의 픽셀 폭 × 16, 2) 영상높이 = 매크로 블록 단위의 픽셀 높이 × 16, 3) 프레임 액세스 라인 디스턴스 =
Figure 112008088089128-pat00001
, 4) 필드 액세스 라인 디스턴스 = 프레임 액세스 라인 디스턴스 × 2, 5) 페이지당 영상 라인 수 = 페이지 사이즈 / 프레임 액세스 라인 디스턴스, 6) 최대 프레임 수 = floor(메모리 행 수 / 프레임 옵셋)'의 식에 따라 결정되는 것을 특징을 한다.
상기 프레임 메모리 구조를 결정하는 단계는 프레임 옵셋 및 색차 신호 옵셋은 '1) 색차 신호 옵셋 = 영상높이 / 페이지 당 영상 라인 / 뱅크 수, 2) 프레임 옵셋 = 색차옵셋 × 3 / 2'의 식에 따라 결정하거나 사용자로부터 입력받을 수 있는 것을 특징으로 한다.
상기 프레임 메모리를 구성하는 단계는 최대 프레임수에 따라 프레임 개수를 결정하고, 페이지당 영상 라인 수에 따라 한 개의 뱅크를 다수개의 서브 뱅크로 분할하고, 프레임 옵셋 및 색차 신호 옵셋에 따라 휘도신호와 색차 신호를 분리하여 저장하도록 하는 특징으로 한다.
그리고 상기 프레임 메모리를 구성하는 단계는 영상신호가 휘도신호, 제1색차 신호, 및 제2색차신호로 구성되는 경우, 프레임 옵셋에 따라 휘도신호를 저장할 행들의 시작 주소를 결정하고, 프레임 옵셋 및 색차 신호 옵셋에 따라 제1색차 신 호, 및 제2색차신호를 저장할 행들의 시작 주소를 결정하는 것을 특징으로 한다.
또한, 상기 프레임 메모리를 구성하는 단계는 영상신호가 휘도신호, 제1색차 신호, 및 제2색차신호로 구성되는 경우, 한 개의 페이지에 다수개의 휘도신호 또는 제1색차 신호 및 제2색차신호를 함께 저장되는 것을 특징으로 한다.
상기 기입 또는 독출하는 단계는 영상신호가 휘도신호, 제1색차 신호, 및 제2색차신호로 구성되고, 프레임 옵셋이 2n인 경우, '1) 휘도화소 주소 = {프레임 인덱스, 휘도화소, Y좌표, X좌표} = {행 주소, 뱅크 주소, 열 주소, 바이트주소}, 2) 제1색차화소 주소 = {프레임 인덱스, 색차화소, Y좌표, X좌표, 색차화소 종류} = {행 주소, 뱅크 주소, 열 주소, 바이트주소}, 3) 제2색차화소 주소 = 제1색차화소 주소 +1'의 식에 따라 프레임 인덱스, 신호 종류 및 X, Y좌표로 구성되는 영상 획득 정보로부터 휘도신호 주소와 제1색차 신호 주소 및 제2색차신호 주소를 획득하는 것을 특징으로 한다.
상기 기입 또는 독출하는 단계는 영상신호가 휘도신호, 제1색차 신호, 및 제2색차신호로 구성되고, 프레임 옵셋이 2n이 아닌 경우, '1)휘도화소 주소 = 프레임 인덱스×프레임 옵셋+{Y좌표, X좌표}= {행 주소, 뱅크 주소, 열 주소, 바이트주소}, 2)제1색차화소 주소 = 프레임 인덱스×프레임 옵셋+색차 옵셋+{Y좌표>>1, X좌표>>1, 색차화소 종류}= {행 주소, 뱅크 주소, 열 주소, 바이트주소}, 3)제2색차화소 주소 = 제1색차화소 주소 +1임'의 식에 따라 프레임 인덱스, 신호 종류 및 X, Y좌표로 구성되는 영상 획득 정보로부터 휘도신호 주소와 제1색차 신호 주소 및 제2색차신호 주소를 획득하는 것을 특징으로 한다.
그리고 상기 기입 또는 독출하는 단계는 뱅크 인터리빙 방식으로 액세스를 수행하되, 라인 디스턴스(Line Distance)를 수정하여 액세스 단위를 변경하며, 필드 액세스 라인 디스턴스는 프레임 액세스 라인 디스턴스의 두 배인 것을 특징으로 한다.
본 발명의 제2측면에 따르면 상기와 같은 문제점을 해결하기 위한 수단으로서, 호스트 시스템로부터 제공되는 영상 데이터 스트림을 해석하는 스트림 제어부; 상기 스트림 제어부로부터 제공되는 움직임 벡터에 해당하는 영역의 영상 신호를 프레임 메모리에서 읽어와 움직임보상 화면을 구성하고, 상기 스트림 제어부로부터 제공되는 데이터를 토대로 예측 화면과 차화면을 구성하는 스트림 처리부; 화면내 예측화면 또는 움직임보상 화면과 차화면을 더해서 원본 화면을 재구성하는 화면 재구성부; 상기 프레임 메모리에서 주변블록의 화면을 읽어들여서 상기 원본 화면과 함께 필터링한 후, 상기 프레임 메모리에 재저장하는 디블록킹 필터; 및 상기 프레임 메모리의 각 페이지에 다수개의 영상 신호가 동시 저장하도록 하며, 상기 스트림 처리부 또는 상기 디블록킹의 액세스 요청시에는 비트단위 결합 방식을 통해 영상 획득 정보로부터 신호 저장 주소를 획득하고 상기 프레임 메모리에 액세스하여 페이지 단위로 영상 신호를 기입 또는 독출하는 프레임 메모리 제어부를 포함하는 영상 처리 장치를 제공한다.
상기 프레임 메모리 제어부는 페이지 사이즈, 버스 폭, 뱅크수, 및 행수에 대한 정보를 가지는 메모리 구성 정보와 영상의 폭과 높이에 대한 정보를 가지는 영상 처리 정보를 참조하여, 상기 프레임 메모리의 최대 프레임수, 페이지당 영상 라인 수, 프레임 옵셋, 색차 신호 옵셋을 결정하는 것을 특징으로 한다.
그리고 상기 프레임 메모리 제어부는 최대 프레임수에 따라 프레임 개수를 결정하고, 페이지당 영상 라인 수에 따라 한 개의 뱅크를 다수개의 서브 뱅크로 분할하고, 프레임 옵셋 및 색차 신호 옵셋에 따라 휘도신호와 색차 신호를 분리하여 저장하도록 하는 특징으로 한다.
그리고, 상기 프레임 메모리 제어부는 영상신호가 휘도신호, 제1색차 신호, 및 제2색차신호로 구성되고, 프레임 옵셋이 2n인 경우, '1) 휘도화소 주소 = {프레임 인덱스, 휘도화소, Y좌표, X좌표} = {행 주소, 뱅크 주소, 열 주소, 바이트주소}, 2) 제1색차화소 주소 = {프레임 인덱스, 색차화소, Y좌표, X좌표, 색차화소 종류} = {행 주소, 뱅크 주소, 열 주소, 바이트주소}, 3) 제2색차화소 주소 = 제1색차화소 주소 +1'의 식에 따라 프레임 인덱스, 신호 종류 및 X, Y좌표로 구성되는 영상 획득 정보로부터 휘도신호 주소와 제1색차 신호 주소 및 제2색차신호 주소를 획득하는 것을 특징으로 한다.
또한, 상기 프레임 메모리 제어부는 영상신호가 휘도신호, 제1색차 신호, 및 제2색차신호로 구성되고, 프레임 옵셋이 2n이 아닌 경우, '1)휘도화소 주소 = 프레임 인덱스×프레임 옵셋+{Y좌표, X좌표}= {행 주소, 뱅크 주소, 열 주소, 바이트주소}, 2)제1색차화소 주소 = 프레임 인덱스×프레임 옵셋+색차 옵셋+{Y좌표>>1, X좌표>>1, 색차화소 종류}= {행 주소, 뱅크 주소, 열 주소, 바이트주소}, 3)제2색차화소 주소 = 제1색차화소 주소 +1임'의 식에 따라 프레임 인덱스, 신호 종류 및 X, Y좌표로 구성되는 영상 획득 정보로부터 휘도신호 주소와 제1색차 신호 주소 및 제2 색차신호 주소를 획득하는 것을 특징으로 한다.
상기 프레임 메모리 제어부는 뱅크 인터리빙 방식으로 액세스를 수행하되, 라인 디스턴스(Line Distance)를 수정하여 액세스 단위를 변경하며, 필드 액세스 라인 디스턴스는 프레임 액세스 라인 디스턴스의 두 배인 것을 특징으로 한다.
이와 같이 본 발명의 영상 처리 장치 및 영상 처리를 위한 프레임 메모리 관리 방법은 프레임 메모리 액세스시에, 화면 표시를 위한 데이터 재정렬이 필요없고 블록단위로 프레임 메모리 액세스할 때 주소 계산 방법이 간단하며, 메모리 구조가 직관적이고, 지연없이 연속적으로 블록단위의 프레임 데이터를 액세스 할 수 있도록 해준다.
그리고, 단일 프레임 메모리 구조에서 프레임 메모리를 액세스 할 때 라인 디스턴스를 수정하여 매크로블럭 단위로 프레임/필드를 선택해서 액세스 할 수 있으므로 격행 주사를 효율적으로 지원할 수 있도록 한다.
또한 영상 처리 장치 및 외부 메모리 설정을 참조하여 구성에 적합한 프레임 메모리 구조를 자동으로 생성할 수 있도록 한다.
뿐 만 아니라, 분산되어 관리되는 프레임 메모리 관련기능을 통합하여 보다 간단하고 효율적으로 관리할 수 있도록 한다.
이하 첨부된 도면을 참조하여 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있는 바람직한 실시 예를 상세히 설명한다. 다만, 본 발명의 바람직한 실시 예에 대한 동작 원리를 상세하게 설명함에 있어 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략한다.
도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
또한, 어떤 부분이 어떤 구성 요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
도3은 본 발명의 일실시예에 따른 영상 처리 장치의 개략적인 구성을 도시한 도면이다.
도3을 참조하면, 본 발명의 디코더는 호스트시스템(200)와 연결되는 호스트 인터페이스 버스(110), 스트림 버퍼(121), 스트림 제어부(122), 화면간 예측부(Inter Prediction)(130), 화면내 예측부(Intra Prediction)(140), 역변환/역양자화부(Inverse Transform/Inverse Quantization)(150), 화면재구성부(160), 디블로킹 필터(170), 프레임 메모리 제어부(180), 및 영상 출력부(Video Ouput)(190)를 포함하여 구성된다.
여기서 호스트 시스템(200)은 응용프로그램이 실행되는 프로세서 및 주변장치를 포함하며, H.264/AVC 코덱과 같은 코덱 장치에 포함되거나 외부 시스템일 수 있다. 또한, 프레임 메모리(400)은 2개 이상의 뱅크를 가지는 메모리 장치로 상기 코덱 장치에 포함되거나 외부 메모리일 수 있다. 일예로 코덱 장치에 포함될 경우에는 임베디드(embedded) DRAM으로 구현되며, 외부에 장착될 경우는 SDR(Single Data Rate) SDRAM 또는 DDR(Dual Data Rate) SDRAM으로 구현될 수 있다
이하에서는 각 구성요소의 기능을 살펴보기로 한다.
호스트 인터페이스 버스(110)는 호스트 시스템(200)로부터 제공되는 각각의 기능모듈에 대한 초기화 정보 및 영상 데이터 스트림을 전송하거나, 영상 출력부(190)로부터 출력되는 영상 데이터 스트림을 호스트 시스템(200)에 전송한다.
스트림 버퍼(121)는 호스트 인터페이스 버스(110)로부터 전송되는 영상 데이터 스트림을 획득 및 버퍼링한 후, 스트림 제어부(122)에 제공하고, 스트림 제어부(122)는 영상 데이터 스트림을 해석하여 각각의 모듈로 해석된 데이터를 분배한다.
화면간 예측부(130)는 스트림제어부(122)에서 받은 움직임 벡터에 해당하는 영역의 데이터를 프레임 메모리(400)에서 읽어와 움직임보상 화면을 구성한 후, 화면 재구성부(160)로 보낸다.
화면내 예측부(140)는 스트림제어부(122)에서 받은 데이터를 토대로 예측 화면을 구성하여 화면 재구성부(160)로 보낸다.
역변환/역양자화부(150)는 스트림 제어부(122)에서 받은 데이터를 토대로 차화면(residual)을 구성하여 화면 재구성부(160)로 보낸다.
화면 재구성부(160)는 모드에 따라서 화면내 예측화면 또는 움직임보상 화면과 차화면을 더해서 원본 화면을 재구성하여 디블록킹 필터(170)로 보낸다.
디블록킹 필터(170)는 프레임 메모리(400)에서 주변블록의 화면을 읽어들여서 재구성된 화면과 함께 필터링을 수행하여, 블록의 경계면에서 나타나는 블록 왜곡을 제거한 후 프레임 메모리(400)에 저장한다.
프레임 메모리 제어부(180)는 화면간 예측부(130), 디블록킹 필터(170), 및 영상 출력부(190)에서 독출 요청이 오는 경우에는 해당 데이터를 프레임 메모리(400)에서 읽어서 해당 모듈로 전송하거나, 디블록킹 필터(170)에서 기록 요청이 오는 경우에는 해당 데이터를 프레임 메모리(400)에 저장한다. 이때, 프레임 메모리에 대한 데이터 전송은 블록 단위로 이루어진다.
영상 출력부(190)는 프레임 메모리(400)에 저장된 화면을 읽은 후 RGB 형식으로 변환한 뒤 호스트 시스템(200)으로 보낸다.
호스트 시스템(200)은 영상 출력부(190)에서 받은 데이터를 화면표시장치(300)에 표시한다.
H.264/AVC에서는 화소라인들을 두 개의 필드(짝수라인과 홀수라인)로 나누어 주사하는 격행 주사를 지원하며, 픽쳐 단위로 프레임/필드를 선택하는 Picture-AFF(픽쳐 적응적 프레임/필드 부호화) 방식과, 매크로 블록 단위로 프레임/필드를 선택하는 MB-AFF(매크로 블록 적응형 프레임/필드 부호화) 방식이 있다.
따라서 격행 주사를 효율적으로 지원하기 위해서는 필드 및 프레임을 프레임 메모리에 기록 및 독출할 때 매크로블럭 단위로 프레임/필드를 액세스 할 수 있어야 한다.
H.264/AVC에서 사용되는 영상포맷은 색차(Croma)신호가 휘도(Luma)신호의 가로세로 각각 1/2의 해상도를 가지는 YCbCr4:2:0 포맷이 주로 사용된다.
도4는 프레임과 상위/하위 필드의 휘도 및 색차 샘플위치를 도시한 도면이다.
이때, Y는 휘도(Luma)를 나타내고 Cb는 휘도와 파랑의 색차를 나타내며 Cr은 휘도와 빨강의 색차를 나타낸다. 16×16 매크로 블록 하나는 16×16의 휘도신호와 8×8의 Cb신호와, 8×8의 Cr신호로 구성되며, 각각 독립적으로 처리된다.
도5는 W×H 해상도를 가지는 프레임 메모리 공간에서 전송될 영상 블록을 도시한 도면이다. 이때, 상기한 도 2b와 같이 주소계산을 간단하게 하기 위해서 프레임 메모리 공간에서 영상 폭(W)은 2n(n=1,2,3…)으로 제한한다.
실제 영상폭이 2n이 아닐 경우 실제 영상폭 다음 데이터부터 2n까지 사용하지 않는다. 각 화소가 N 바이트로 구성되어 있다면, WH 해상도의 원영상은 H개의 NW 바이트를 가지는 2차원 배열로 프레임 메모리에 저장된다.
따라서 원영상을 구성하는 각 라인(혹은 row)의 간격은 NW 바이트가 되며 이를 LD(Line Distance)로 정의한다. 전송될 블록의 수평해상도가 W1이라면, 전송될 블록의 한 라인에 대응하는 데이터양은 NW1 바이트가 되며, 전송될 블록의 수직해 상도는 IH(Image Height)로 정의할 수 있다.
이에 각 화소가 N 바이트로 구성된 WH 해상도의 프레임메모리에서 W1×IH 해상도를 가지는 임의의 영상블록을 정의하기 위해서 필요한 파라미터는 N, W, W1, IH 등이 된다.
도6은 1차원 및 2차원 메모리 전송 구조를 설명하기 위한 도면이다
도 6에서, 1차원 DMA(direct memory access)는 연속적인 주소를 가지는 BL(Burst Length) 개의 데이터 전송을 의미하고, 2차원 DMA는 반복적인 1차원 DMA를 나타낸다. 1차원 DMA에 의해서 전송되는 용량은 데이터 크기에 BL을 곱해서 계산되며, 각 1차원 DMA의 시작 주소는 일정한 간격을 가지고 있다.
본 발명에서는 영상 처리 장치 및 외부 메모리 설정을 참조하여 구성에 적합한 프레임 메모리 구조를 자동으로 생성하도록 한다.
본 발명에서는 영상 처리 장치 및 외부 메모리 설정을 참조하여 구성에 적합한 프레임 메모리 구조를 자동으로 파악할 수 있다.
즉, 메모리 구성 정보(페이지 사이즈, 버스 폭, 뱅크 숫자, 행 숫자) 및 영상 처리 정보(영상의 폭과 높이)에 따라서 도8에서와 같이 최적화된 프레임 메모리 구조(한 페이지에 저장되는 영상라인, 색차 신호옵셋, 프레임 옵셋, 라인 디스턴스, 최대 프레임수 등)를 생성한다. 이때, 프레임 옵셋 및 색차 신호옵셋은 자동으로 구성하거나 사용자가 입력할 수 있다.
메모리 구성 정보는 영상 처리 장치의 초기화시 입력되며, 영상 처리 정보는 디코딩시에는 호스트 시스템(200)에서 제공하는 스트림에서 추출하고 인코딩시에는 인코딩 파라미터에서 추출할 수 있다.
각각의 프레임 구성 정보는 수학식1에 따라 계산되어 내부 레지스터에 저장되며, 저장된 구성 정보는 외부에서 읽어서 메모리 액세스에 사용할 수 있다.
1) 영상폭 = 매크로 블록 단위의 픽셀 폭 × 16,
2) 영상높이 = 매크로 블록 단위의 픽셀 높이 × 16,
3)프레임 액세스 라인 디스턴스 =
Figure 112008088089128-pat00002
,
4)필드 액세스 라인 디스턴스 = 프레임 액세스 라인 디스턴스 × 2
5)페이지 당 영상 라인 수 = 페이지 사이즈 / 프레임 액세스 라인 디스턴스
6)색차 신호 옵셋 = 영상높이 / 페이지 당 영상 라인 / 뱅크 수
7)프레임 옵셋 = 색차옵셋 ×3 / 2
10)최대 프레임 수 = floor(메모리 행 수 / 프레임 옵셋)
상기 Ceil은 올림 값(이 숫자보다 크거나 같은 가장 가까운 정수), 상기 floor는 내림 값 (이 숫자보다 작거나 같은 가장 가까운 정수)이다.
도7은 본 발명의 일실시예에 따른 매크로 블록의 저장 주소 및 저장 위치를 나타낸 도면으로, 도7의 (a) 및 (b)에서는 32 bit 인터페이스를 가지며, 페이지 크기가 4096byte인 DRAM으로 구현되는 프레임 메모리를 일예로 들어 설명한다.
도7의 (a) 에서는 좌측 상단의 0번 매크로블럭(MB#0)의 X 좌표 및 Y 좌표를 표시하였으며, 하나의 화소는 8bit로 가정하고 16bit에 2개, 32bit에 4개의 화소가 들어있는 것으로 가정하여 첫번째 화소의 좌표만 도시하였다.
그리고 휘도 y0_x0는 y=0, x=0,1,2,3의 휘도화소 4개로 구성되어 있고, 색차 y0_x0는 y=0, x=0,1 의 색차화소 2개로 구성되어 있다.
도7의 (a) 와 같은 저장 주소를 가지는 0번 매크로 블록(MB#0)은 도7b에서와 같이 프레임 메모리에 저장된다.
도7의 (b) 을 참조하면, 0번 매크로 블록(MB#0)이 실제 프레임 메모리에 저장될 때는 휘도신호와 색차 신호가 분리되어 저장되며, 제1색차신호(Cb)와 제2색차신호(Cr)는 바이트(byte)단위로 인터리빙되어 저장된다.
도8은 본 발명의 일실시예에 따른 프레임 매모리 맵의 일예를 도시한 도면으로, 도8에서는 페이지 사이즈가 4096byte(1024word)이고, 4096개의 페이지로 이루어진 32bit(4 Byte) 인터페이스를 가지는 DRAM을 사용한 경우, 휘도 및 색차신호로 화소당 8bit를 사용하고, 화면 사이즈가 휘도 기준으로 2048×2048화소인 8장인 영상을 처리하기 위한 프레임 메모리 맵을 일예로 들어 설명한다.
이러한 프레임 메모리 맵은 앞서 설명한 프레임 메모리 구조를 참조하여 구성된다. 즉, 프레임 메모리 구조 파악시 계산된 최대 프레임수에 따라 프레임 개수를 결정하고, 페이지당 영상 라인 수에 따라 한 개의 뱅크를 다수개의 서브 뱅크로 분할하고, 프레임 옵셋 및 색차 신호 옵셋에 따라 휘도신호와 색차 신호를 분리하 여 저장하도록 한다.
예를 들어, 프레임 메모리 구조 파악시 최대 프레임수는 8이고, 페이지당 영상 라인 수는 2개이고, 프레임 옵셋은 2n 이고, 색차 신호옵셋은 26'h0400000라고 계산되면, 프레임 메모리 맵은 도8에서와 같은 형태로 구성된다.
계속하여 도8을 참조하면, 프레임 메모리 맵은 8개의 프레임으로 구성되고, 각 뱅크는 페이지당 영상 라인 (즉, DRAM의 페이지 사이즈와 프레임 액세스 라인 디스턴스(LD, Line Distance))에 따라 2개의 서브 뱅크로 분할된다. 프레임 옵셋은{행 주소[11:0]), 뱅크 주소[1:0], 열 주소[9:0], 바이트주소[1:0]} = {12'h200,2'h0,10'h0,2'b00} = 26'h0800000으로 2n이 되도록 지정되고, 색차 신호옵셋은 {행 주소[11:0]), 뱅크 주소[1:0], 열 주소[9:0], 바이트주소[1:0]} = {12'h100,2'h0,10'h0,2'b00} = 26'h0400000으로 지정된다.
도8에서는 하나의 뱅크가 2개의 서브뱅크로 분리되며 서브뱅크의 한 행에 영상의 한 라인이 저장되므로, DRAM의 한 페이지에 영상의 두 라인이 저장되며, 매 두 라인마다 뱅크가 변경된다.
도8에서 사용된 메모리가 가상의 메모리이며, 모바일용으로 사용되는 저해상도 영상의 경우(예를 들어 QVGA(320×240)의 경우), 페이지사이즈가 1KB인 상용화된 단품 메모리를 이용하여 두 라인 이상의 데이터를 하나의 페이지에 저장 가능하다. 그리고, 고해상도 영상의 경우, 8bit 인터페이스와 페이지사이즈가 1KB인 단품 메모리 4개를 병렬로 조합하거나 16bit 인터페이스와 페이지사이즈가 2KB인 단품 메모리 4개를 병렬로 조합하여, 페이지 사이즈가 4KB이고 32bit 인터페이스를 가지 는 메모리를 만들 수 있다. 또한 모듈형 메모리를 사용해서 두 라인 이상의 데이터를 하나의 페이지에 저장할 수도 있다.
본 발명에서는 라인 디스턴스를 조절함으로써 격행 주사를 지원하기 위한 프레임/필드 액세스를 수행하도록 한다. 프레임단위의 액세스를 할 경우 라인 디스턴스는 영상의 한라인 사이즈가 되며, 필드 액세스를 할 경우 라인 디스턴스는 영상의 두 라인 사이즈가 된다.
도8에서는 프레임 액세스시에는 라인 디스턴스가 0x200(512)이 되며, 필드 액세스 시에는 라인 디스턴스가 0x400(1024)이 된다.
도8에서와 같이 하나의 뱅크를 여러 개의 서브뱅크로 나누어 사용할 경우, 하나의 뱅크에 여러 영상 라인이 연속으로 저장되므로 블록 단위로 액세스시에 행전환 횟수가 줄어들어 행전환시 필요한 지연시간을 줄일 수 있으며, 필드 액세스(0,2,4,6,… 또는, 1,3,5,7,…) 시에도 매 번의 행전환 마다 4개의 뱅크를 순차적으로 사용하게 되므로 뱅크 인터리빙(Interleaving) 효율도 증대해줄 수 있다.
도8에서와 같이 구성되는 프레임 메모리 맵의 주소는 비트단위결합 방식을 통해 매운 간단하게 계산될 수 있다. 이때, 숫자표기는 Verilog HDL의 숫자표기 형식을 따른다.
먼저, 프레임 옵셋이 2n인 경우, 원하는 영상 신호가 저장된 주소는 수학식2에 따른 비트단위 결합을 통해서 간단하게 구해질 수 있다.
1) 휘도화소 주소 = {프레임 인덱스, 휘도화소, Y좌표, X좌표} = {행 주소, 뱅크 주소, 열 주소, 바이트주소},
2) 제1색차화소 주소 = {프레임 인덱스, 색차화소, Y좌표, X좌표, 색차화소 종류} = {행 주소, 뱅크 주소, 열 주소, 바이트주소},
3) 제2색차화소 주소 = 제1색차화소 주소 +1.
1번 프레임의 X좌표가 32, Y좌표가 15인 화소를 예로 들어 설명하면, 휘도신호의 저장 주소는 이하의 수학식3에서와 같이 계산되어, 26'h0807820의 주소를 가지며 DRAM의 3번 뱅크의 201행의 208번째(서브뱅크31의 8번째) 열의 첫번째 바이트에 저장된다.
제1색차신호는 DRAM의 3번 뱅크의 300행의 208번째(서브뱅크31의 8번째) 열의 첫번째 바이트에 저장되며, 제2색차신호는 같은 위치의 두번째 바이트에 저장된다.
1)프레임 인덱스[2:0]= 3'b001
2)Y자표[10:0] = 11'd15 = 11'h00F = 11'b000_0000_1111
3)X좌표[10:0] = 11'd32 = 11'h020 = 11'b000_0010_0000
4) 휘도주소
={프레임 인덱스[2:0], 1'b0, Y자표[10:0], X좌표[10:0]}
={3'b001,1'b0,11'b000_0000_1111,11'b000_0010_0000}=26'h0807820 = {12'h201,2'h3,10h208,2'h0}
={행 주소[11:0], 뱅크 주소[1:0], 열 주소[9:0], 바이트주소[1:0]}.
이때, 1'b0는 휘도신호를 의미함.
5)제1색차주소
={프레임 인덱스[2:0], 2'b10, Y자표[10:1], X좌표[10:1] ,1'b0}
={3'b001,1'b10,10'b000_0000_111,9'b000_0010_000,1'b0}
={12'h201,2'h3,10h208,2'b00}
={행 주소[11:0]), 뱅크 주소[1:0], 열 주소[9:0], 바이트주소[1:0]}
이때, 2'b10는 색차신호를 의미하고, 1'b0는 제1색차신호임을 의미함.
6)제2색차주소
={프레임 인덱스[2:0], 2'b10, Y자표[10:1], X좌표[10:1] ,1'b1}
={3'b001,1'b10,10'b000_0000_111,9'b000_0010_000,1'b1}
={12'h201,2'h3,10h208,2'b01}
={행 주소[11:0]), 뱅크 주소[1:0], 열 주소[9:0], 바이트주소[1:0]}
=제1색차주소 +1
이때, 2'b10는 색차신호를 의미하고, 1'b1는 제2색차신호임을 의미함.
다음으로, 프레임 옵셋이 2n인 경우에는 이하의 수학식4에 따라 구해질 수 있다.
1)휘도주소
= 프레임 인덱스×프레임 옵셋+{Y좌표, X좌표}
= {행 주소, 뱅크 주소, 열 주소, 바이트주소}
2)제1색차주소
= 프레임 인덱스*프레임 옵셋+색차옵셋+{Y좌표>>1, X좌표>>1,1'b0}
= {행 주소, 뱅크 주소, 열 주소, 바이트주소}
이때, 1'b0는 제1색차신호임을 의미함.
3)제2색차주소
= 프레임 인덱스×프레임 옵셋+색차옵셋+{Y좌표>>1, X좌표>>1,1'b1}
= {행 주소, 뱅크 주소, 열 주소, 바이트주소}
= 제1색차주소 +1
이때, 1'b1는 제2색차신호임을 의미함.
상기에서 (프레임인덱스×프레임 옵셋)은 수학식5에서와 같이 (이전 프레임 옵셋 + 프레임 옵셋)으로 치환가능하며 덧셈기를 이용하여 미리 계산된 값을 사용할 수 있다.
1)프레임 0 옵셋 = 프레임버퍼 베이스 어드레스
2)프레임 1 옵셋 = 프레임 0 옵셋 + 프레임 옵셋
n)프레임 n 옵셋 = 프레임 n-1 옵셋 + 프레임 옵셋
본 발명의 구성에 따르면 프레임 메모리의 서로 다른 행에 대하여 연속적인 데이터 액세스가 발생하더라도 초기 데이터 지연을 제외하면 프레임 메모리의 행 변환을 위한 지연없이 연속적으로 액세스가 가능하다.
도 9는 H.264/AVC 에서 휘도4×4블럭에 대한 움직임 보상을 위하여 중간화소 계산을 위한 주변화소를 포함하여 9×9화소를 전송하는 싸이클을 도시한 도면이다.
도 9의 (a) 및 (b)에서는, 16bit 인터페이스를 가진 DDR SDRAM의 타이밍을 기준으로 지연시간을 계산하였으며, 버스트 크기(burst Length)는 4를 기준으로 하고, 한 클럭에 32bit(16bit × 2) 데이터 전송을 수행한다고 가정한다.
도 9의 (a) 는 프레임버퍼 구조에서 프레임 단위의 Luma 4×4 움직임 보상을 위한 9(3word)×9 데이터 전송 싸이클을 도시한 도면으로, 이를 참조하면 한 행에서 두 라인의 영상 데이터를 연속으로 독출하고 다음라인은 다른 뱅크에서 독출하여, 이전의 메모리액세스에 지연이 숨겨짐을 알 수 있다.
이에 총 81화소를 독출하기 위해서는 워드단위로 27개의 데이터를 필요하며, 27개의데이터 싸이클과 초기지연 6싸이클을 합하여 총 33싸이클이 소요된다.
도 9의 (b) 는 프레임버퍼 구조에서 필드 단위의 Luma 4×4 움직임 보상을 위한 9(3word)×9 데이터 전송 싸이클을 도시한 도면으로, 도9b에서는 매 라인 변경마다 뱅크전환이 이루어지며, 총 전송 싸이클은 프레임 액세스 싸이클과 같은 33싸이클임을 알 수 있다.
도 10는 H.264/AVC 에서 색차 4×4블럭에 대한 움직임 보상을 위하여 중간화소 계산을 위한 주변화소를 포함하여 3×3화소를 전송하는 싸이클을 도시한 도면이다.
제1색차화소와 제2색차화소는 도8에서 도시된 바와 같이 같은 영역에 저장되므로, 한 번의 독출 동작을 통해 제 1색차화소와 제2색차화소를 동시에 읽어온다.
그리고 프레임 액세스나 필드 액세스시, 모두 초기 데이터 지연 6싸이클과 데이터 전송 싸이클 6싸이클이 소요되어 총 12싸이클에 제1색차 및 제2색차를 전송할 수 있다.
도11은 데이터 블록 전송이 연속적으로 이루어질 경우, 뱅크 인터리빙에 의하여 데이터 전송시 발생하는 초기지연 6싸이클이 이전의 데이터 전송 싸이클에 의해 숨겨지는 것을 도시하였다.
도 11과 같이 3×3화소의 색차 신호블록 전송이 연속으로 이루어질 경우 두 번째 연속되는 데이터 전송에서는 초기지연은 숨겨지고 6개의 데이터 전송 싸이클만 소요된다.
움직임 보상에서 매크로 블록이 모두 4×4 블록이 코딩된 가장 극단적인 경우를 예로 들면, 하나의 매크로 블록에 대한 움직임을 보상하기 위해서는 16번의 휘도 9×9 전송과 16번의 색차 3×3 전송이 연속적으로 이루어진다.
이 경우, 이하 [표1]에 나타난 바와 같이 초기 지연 싸이클(6)과 16번의 휘도 데이터 전송 싸이클(27)과 16번의 색차데이터 전송 싸이클(6)이 소요되어, 총 534 전송 싸이클이 소요된다.
그 결과, 지연 싸이클은 전체 데이터 전송 싸이클 중 단 1.1% 만을 차지하게 되어, 메모리가 제공하는 대역폭의 98.9%를 실제 데이터 전송에 사용할 수 있게 된다.
싸이클 종류 소요 싸이클(clock) 비중(%)
지연 싸이클 6 1.1
데이터 싸이클 16×27 + 16×6=528 98.9
총 싸이클 6 + 528 100
이상에서 설명된 기능들은 도3의 영상 처리 장치내에 구비된 프레임 메모리 제어부(180)에 모두 수행되므로, 종래에 분산되어 관리되던 프레임 메모리 관련 기능을 통합하여 관리할 수 있다. 앞서 설명한 바와 같이 몇 개의 파라메타(parameter)만으로 이를 통합 관리할 수 있어 프레임 메모리 관리 기능 또한 보다 간단하게 수행할 수 있게 된다.
이상에서 설명한 본 발명은 전술한 실시 예 및 첨부된 도면에 의해 한정되는 것이 아니고, 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경할 수 있다는 것은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 당업자에게 있어 명백할 것이다.
도1은 H.264/AVC 표준에서 사용하는 Full HD 영상의 매크로 블록 단위의 화면 구성을 도시한 도면이다.
도2a 내지 도2c는 종래의 기술에 따른 프레임 메모리 저장 방식을 설명하기 위한 도면들이다.
도3은 본 발명의 일실시예에 따른 영상 처리 장치의 개략적인 구성을 도시한 도면이다.
도4는 프레임과 상위/하위 필드의 휘도 및 색차 샘플위치를 도시한 도면이다.
도5는 W×H 해상도를 가지는 프레임 메모리 공간에서 전송될 영상 블록을 도시한 도면이다.
도6은 1차원 및 2차원 메모리 전송 구조를 설명하기 위한 도면이다.
도7은 본 발명의 일실시예에 따른 매크로 블록의 저장 주소 및 저장 위치를 나타낸 도면이다.
도8은 본 발명의 일실시예에 따른 프레임 매모리 맵의 일예를 도시한 도면이다.
도 9는 H.264/AVC 에서 휘도4×4블럭에 대한 움직임 보상을 위하여 중간화소 계산을 위한 주변화소를 포함하여 9×9화소를 전송하는 싸이클을 도시한 도면이다.
도 10는 H.264/AVC 에서 색차 4×4블럭에 대한 움직임 보상을 위하여 중간화소 계산을 위한 주변화소를 포함하여 3×3화소를 전송하는 싸이클을 도시한 도면이 다.
도11은 데이터 블록 전송이 연속적으로 이루어질 경우, 뱅크 인터리빙에 의하여 데이터 전송시 발생하는 초기지연 6싸이클이 이전의 데이터 전송 싸이클에 의해 숨겨지는 것을 도시한 도면이다.

Claims (18)

  1. 메모리 구성 정보와 영상 처리 정보를 참조하여 프레임 메모리 구조를 결정하는 단계;
    상기 프레임 메모리 구조에 따라 각 페이지에 다수개의 영상 신호가 저장되도록 프레임 메모리를 구성하는 단계; 및
    영상 획득 정보를 비트단위로 결합하여 신호 저장 주소를 계산하고 프레임 메모리 맵에 액세스하여 영상 신호를 페이지 단위로 기입 또는 독출하는 단계를 포함하는 영상 처리를 위한 프레임 메모리 관리 방법.
  2. 제1항에 있어서, 상기 프레임 메모리 구조를 결정하는 단계는
    페이지 사이즈, 버스 폭, 뱅크수, 및 행수에 대한 정보를 가지는 메모리 구성 정보와 영상의 폭과 높이에 대한 정보를 가지는 영상 처리 정보를 참조하여, 상기 프레임 메모리의 최대 프레임수, 페이지당 영상 라인 수, 프레임 옵셋, 색차 신호 옵셋을 결정하는 것을 특징으로 하는 영상 처리를 위한 프레임 메모리 관리 방법.
  3. 제2항에 있어서, 상기 프레임 메모리 구조를 결정하는 단계는
    최대 프레임수, 페이지당 영상 라인 수는 하기 식에 따라 결정되는 것을 특징으로 하는 영상 처리를 위한 프레임 메모리 관리 방법,
    1) 영상폭 = 매크로 블록 단위의 픽셀 폭 × 16,
    2) 영상높이 = 매크로 블록 단위의 픽셀 높이 × 16,
    3) 프레임 액세스 라인 디스턴스 =
    Figure 112008088089128-pat00003
    ,
    4) 필드 액세스 라인 디스턴스 = 프레임 액세스 라인 디스턴스 × 2,
    5) 페이지당 영상 라인 수 = 페이지 사이즈 / 프레임 액세스 라인 디스턴스,
    6) 최대 프레임 수 = floor(메모리 행 수 / 프레임 옵셋),
    상기 Ceil은 올림값을 의미하고, 상기 floor는 내림값을 의미함.
  4. 제2항에 있어서, 상기 프레임 메모리 구조를 결정하는 단계는
    프레임 옵셋 및 색차 신호 옵셋은 하기 식에 따라 결정하거나 사용자로부터 입력받을 수 있는 것을 특징으로 하는 영상 처리를 위한 프레임 메모리 관리 방법,
    1) 색차 신호 옵셋 = 영상높이 / 페이지 당 영상 라인 / 뱅크 수,
    2) 프레임 옵셋 = 색차옵셋 × 3 / 2.
  5. 제2항에 있어서, 상기 프레임 메모리를 구성하는 단계는
    최대 프레임수에 따라 프레임 개수를 결정하고, 페이지당 영상 라인 수에 따라 한 개의 뱅크를 다수개의 서브 뱅크로 분할하고, 프레임 옵셋 및 색차 신호 옵셋에 따라 휘도신호와 색차 신호를 분리하여 저장하도록 하는 특징으로 하는 영상 처리를 위한 프레임 메모리 관리 방법.
  6. 제5항에 있어서, 상기 프레임 메모리를 구성하는 단계는
    영상신호가 휘도신호, 제1색차 신호, 및 제2색차신호로 구성되는 경우, 프레임 옵셋에 따라 휘도신호를 저장할 행들의 시작 주소를 결정하고, 프레임 옵셋 및 색차 신호 옵셋에 따라 제1색차 신호, 및 제2색차신호를 저장할 행들의 시작 주소를 결정하는 것을 특징으로 하는 영상 처리를 위한 프레임 메모리 관리 방법.
  7. 제5항에 있어서, 상기 프레임 메모리를 구성하는 단계는
    영상신호가 휘도신호, 제1색차 신호, 및 제2색차신호로 구성되는 경우, 한 개의 페이지에 다수개의 휘도신호 또는 제1색차 신호 및 제2색차신호를 함께 저장되는 것을 특징으로 하는 영상 처리를 위한 프레임 메모리 관리 방법.
  8. 제1항에 있어서, 상기 기입 또는 독출하는 단계는
    영상신호가 휘도신호, 제1색차 신호, 및 제2색차신호로 구성되고, 프레임 옵셋이 2n인 경우, 하기 식에 따라 프레임 인덱스, 신호 종류 및 X, Y좌표로 구성되는 영상 획득 정보로부터 휘도신호 주소와 제1색차 신호 주소 및 제2색차신호 주소를 획득하는 것을 특징으로 하는 영상 처리를 위한 프레임 메모리 관리 방법,
    1) 휘도화소 주소 = {프레임 인덱스, 휘도화소, Y좌표, X좌표} = {행 주소, 뱅크 주소, 열 주소, 바이트주소},
    2) 제1색차화소 주소 = {프레임 인덱스, 색차화소, Y좌표, X좌표, 색차화소 종류} = {행 주소, 뱅크 주소, 열 주소, 바이트주소},
    3) 제2색차화소 주소 = 제1색차화소 주소 +1.
  9. 제1항에 있어서, 상기 기입 또는 독출하는 단계는
    영상신호가 휘도신호, 제1색차 신호, 및 제2색차신호로 구성되고, 프레임 옵셋이 2n이 아닌 경우, 하기 식에 따라 프레임 인덱스, 신호 종류 및 X, Y좌표로 구성되는 영상 획득 정보로부터 휘도신호 주소와 제1색차 신호 주소 및 제2색차신호 주소를 획득하는 것을 특징으로 하는 영상 처리를 위한 프레임 메모리 관리 방법,
    1)휘도화소 주소 = 프레임 인덱스×프레임 옵셋+{Y좌표, X좌표}= {행 주소, 뱅크 주소, 열 주소, 바이트주소},
    2)제1색차화소 주소 = 프레임 인덱스×프레임 옵셋+색차 옵셋+{Y좌표>>1, X좌표>>1, 색차화소 종류}= {행 주소, 뱅크 주소, 열 주소, 바이트주소},
    3)제2색차화소 주소 = 제1색차화소 주소 +1임.
  10. 제1항에 있어서, 상기 기입 또는 독출하는 단계는
    뱅크 인터리빙 방식으로 액세스를 수행하되, 라인 디스턴스(Line Distance)를 수정하여 액세스 단위를 변경하는 것을 특징으로 하는 영상 처리를 위한 프레임 메모리 관리 방법.
  11. 제10항에 있어서, 상기 기입 또는 독출하는 단계는
    필드 액세스 라인 디스턴스는 프레임 액세스 라인 디스턴스의 두 배인 것을 특징으로 하는 영상 처리를 위한 프레임 메모리 관리 방법.
  12. 호스트 시스템로부터 제공되는 영상 데이터 스트림을 해석하는 스트림 제어부;
    상기 스트림 제어부로부터 제공되는 움직임 벡터에 해당하는 영역의 영상 신호를 프레임 메모리에서 읽어와 움직임보상 화면을 구성하고, 상기 스트림 제어부로부터 제공되는 데이터를 토대로 예측 화면과 차화면을 구성하는 스트림 처리부;
    화면내 예측화면 또는 움직임보상 화면과 차화면을 더해서 원본 화면을 재구 성하는 화면 재구성부;
    상기 프레임 메모리에서 주변블록의 화면을 읽어들여서 상기 원본 화면과 함께 필터링한 후, 상기 프레임 메모리에 재저장하는 디블록킹 필터; 및
    상기 프레임 메모리의 각 페이지에 다수개의 영상 신호가 동시 저장하도록 하며, 상기 스트림 처리부 또는 상기 디블록킹의 액세스 요청시에는 비트단위 결합 방식을 통해 영상 획득 정보로부터 신호 저장 주소를 획득하고 상기 프레임 메모리에 액세스하여 페이지 단위로 영상 신호를 기입 또는 독출하는 프레임 메모리 제어부를 포함하는 영상 처리 장치.
  13. 제12항에 있어서, 상기 프레임 메모리 제어부는
    페이지 사이즈, 버스 폭, 뱅크수, 및 행수에 대한 정보를 가지는 메모리 구성 정보와 영상의 폭과 높이에 대한 정보를 가지는 영상 처리 정보를 참조하여, 상기 프레임 메모리의 최대 프레임수, 페이지당 영상 라인 수, 프레임 옵셋, 색차 신호 옵셋을 결정하는 것을 특징으로 하는 영상 처리 장치.
  14. 제13항에 있어서, 상기 프레임 메모리 제어부는
    최대 프레임수에 따라 프레임 개수를 결정하고, 페이지당 영상 라인 수에 따라 한 개의 뱅크를 다수개의 서브 뱅크로 분할하고, 프레임 옵셋 및 색차 신호 옵 셋에 따라 휘도신호와 색차 신호를 분리하여 저장하도록 하는 특징으로 하는 영상 처리 장치.
  15. 제13항에 있어서, 상기 프레임 메모리 제어부는
    영상신호가 휘도신호, 제1색차 신호, 및 제2색차신호로 구성되고, 프레임 옵셋이 2n인 경우, 하기 식에 따라 프레임 인덱스, 신호 종류 및 X, Y좌표로 구성되는 영상 획득 정보로부터 휘도신호 주소와 제1색차 신호 주소 및 제2색차신호 주소를 획득하는 것을 특징으로 하는 영상 처리 장치,
    1) 휘도화소 주소 = {프레임 인덱스, 휘도화소, Y좌표, X좌표} = {행 주소, 뱅크 주소, 열 주소, 바이트주소},
    2) 제1색차화소 주소 = {프레임 인덱스, 색차화소, Y좌표, X좌표, 색차화소 종류} = {행 주소, 뱅크 주소, 열 주소, 바이트주소},
    3) 제2색차화소 주소 = 제1색차화소 주소 +1.
  16. 제13항에 있어서, 상기 프레임 메모리 제어부는
    영상신호가 휘도신호, 제1색차 신호, 및 제2색차신호로 구성되고, 프레임 옵셋이 2n이 아닌 경우, 하기 식에 따라 프레임 인덱스, 신호 종류 및 X, Y좌표로 구성되는 영상 획득 정보로부터 휘도신호 주소와 제1색차 신호 주소 및 제2색차신호 주소를 획득하는 것을 특징으로 하는 영상 처리 장치,
    1)휘도화소 주소 = 프레임 인덱스×프레임 옵셋+{Y좌표, X좌표}= {행 주소, 뱅크 주소, 열 주소, 바이트주소},
    2)제1색차화소 주소 = 프레임 인덱스×프레임 옵셋+색차 옵셋+{Y좌표>>1, X좌표>>1, 색차화소 종류}= {행 주소, 뱅크 주소, 열 주소, 바이트주소},
    3)제2색차화소 주소 = 제1색차화소 주소 +1임.
  17. 제13항에 있어서, 상기 프레임 메모리 제어부는
    뱅크 인터리빙 방식으로 액세스를 수행하되, 라인 디스턴스(Line Distance)를 수정하여 액세스 단위를 변경하는 것을 특징으로 하는 영상 처리 장치.
  18. 제17항에 있어서, 상기 프레임 메모리 제어부는
    필드 액세스 라인 디스턴스는 프레임 액세스 라인 디스턴스의 두 배인 것을 특징으로 하는 영상 처리 장치.
KR1020080131607A 2008-12-22 2008-12-22 영상 처리 장치 및 영상 처리를 위한 프레임 메모리 관리 방법 KR101127962B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020080131607A KR101127962B1 (ko) 2008-12-22 2008-12-22 영상 처리 장치 및 영상 처리를 위한 프레임 메모리 관리 방법
US12/579,630 US20100156917A1 (en) 2008-12-22 2009-10-15 Image processing apparatus and method for managing frame memory in image processing

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080131607A KR101127962B1 (ko) 2008-12-22 2008-12-22 영상 처리 장치 및 영상 처리를 위한 프레임 메모리 관리 방법

Publications (2)

Publication Number Publication Date
KR20100073029A KR20100073029A (ko) 2010-07-01
KR101127962B1 true KR101127962B1 (ko) 2012-03-26

Family

ID=42265363

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080131607A KR101127962B1 (ko) 2008-12-22 2008-12-22 영상 처리 장치 및 영상 처리를 위한 프레임 메모리 관리 방법

Country Status (2)

Country Link
US (1) US20100156917A1 (ko)
KR (1) KR101127962B1 (ko)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8508621B2 (en) * 2010-09-30 2013-08-13 Apple Inc. Image sensor data formats and memory addressing techniques for image signal processing
JP2013034162A (ja) * 2011-06-03 2013-02-14 Sony Corp 画像処理装置及び画像処理方法
KR101938700B1 (ko) 2011-06-17 2019-01-16 삼성전자주식회사 반도체 집적회로 및 반도체 집적 회로의 전원 공급 방법
US9031319B2 (en) 2012-05-31 2015-05-12 Apple Inc. Systems and methods for luma sharpening
US9077943B2 (en) 2012-05-31 2015-07-07 Apple Inc. Local image statistics collection
US9142012B2 (en) 2012-05-31 2015-09-22 Apple Inc. Systems and methods for chroma noise reduction
US9743057B2 (en) 2012-05-31 2017-08-22 Apple Inc. Systems and methods for lens shading correction
US9332239B2 (en) 2012-05-31 2016-05-03 Apple Inc. Systems and methods for RGB image processing
US8872946B2 (en) 2012-05-31 2014-10-28 Apple Inc. Systems and methods for raw image processing
US9025867B2 (en) 2012-05-31 2015-05-05 Apple Inc. Systems and methods for YCC image processing
US8953882B2 (en) 2012-05-31 2015-02-10 Apple Inc. Systems and methods for determining noise statistics of image data
US11089247B2 (en) 2012-05-31 2021-08-10 Apple Inc. Systems and method for reducing fixed pattern noise in image data
US9105078B2 (en) 2012-05-31 2015-08-11 Apple Inc. Systems and methods for local tone mapping
US8917336B2 (en) 2012-05-31 2014-12-23 Apple Inc. Image signal processing involving geometric distortion correction
US9014504B2 (en) 2012-05-31 2015-04-21 Apple Inc. Systems and methods for highlight recovery in an image signal processor
US8817120B2 (en) 2012-05-31 2014-08-26 Apple Inc. Systems and methods for collecting fixed pattern noise statistics of image data
TWI520618B (zh) * 2013-01-11 2016-02-01 晨星半導體股份有限公司 影像資料處理方法以及影像處理裝置
US9510002B2 (en) 2013-09-09 2016-11-29 Apple Inc. Chroma quantization in video coding
KR102114233B1 (ko) * 2013-12-13 2020-05-25 삼성전자 주식회사 영상 처리 장치
JP6410495B2 (ja) * 2014-07-07 2018-10-24 ルネサスエレクトロニクス株式会社 画像符号化装置、画像復号装置、および画像通信システム
CN104902139B (zh) * 2015-04-30 2018-10-26 北京小鸟看看科技有限公司 一种头戴显示器和头戴显示器的视频数据处理方法
KR102499721B1 (ko) * 2018-08-07 2023-02-15 엘지디스플레이 주식회사 메모리 억세스 장치와 이를 이용한 표시장치 및 그 구동 방법
CN110426180B (zh) * 2019-08-05 2020-08-18 浙江大学 一种基于高速线扫描的三维场景绘制延时测量系统及方法
CN114281295B (zh) * 2020-09-18 2024-03-15 西安诺瓦星云科技股份有限公司 图像处理方法、装置和led显示屏系统
CN113610705B (zh) * 2021-06-23 2024-10-15 珠海全志科技股份有限公司 用于超分重建的图像去交织方法及装置
CN117499601B (zh) * 2024-01-02 2024-04-05 上海励驰半导体有限公司 用于SoC的调用多摄像头数据的方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050090516A (ko) * 2004-03-08 2005-09-13 엘지전자 주식회사 비디오 디코딩 시스템
KR20060091510A (ko) * 2005-02-15 2006-08-21 삼성전자주식회사 영상처리시스템에 있어서 데이터 기록/독출장치 및 방법

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100372084B1 (ko) * 2001-01-29 2003-02-14 한국과학기술원 저소비전력을 위한 mpeg 압축영상의 메모리 저장 방법및 그에 따른 프레임 버퍼 구조

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050090516A (ko) * 2004-03-08 2005-09-13 엘지전자 주식회사 비디오 디코딩 시스템
KR20060091510A (ko) * 2005-02-15 2006-08-21 삼성전자주식회사 영상처리시스템에 있어서 데이터 기록/독출장치 및 방법

Also Published As

Publication number Publication date
KR20100073029A (ko) 2010-07-01
US20100156917A1 (en) 2010-06-24

Similar Documents

Publication Publication Date Title
KR101127962B1 (ko) 영상 처리 장치 및 영상 처리를 위한 프레임 메모리 관리 방법
US8175157B2 (en) Apparatus and method for controlling data write/read in image processing system
US8442107B2 (en) Memory mapping apparatus and method for video decoder/encoder
US6104416A (en) Tiling in picture memory mapping to minimize memory bandwidth in compression and decompression of data sequences
US8687706B2 (en) Memory word array organization and prediction combination for memory access
KR100606812B1 (ko) 비디오 디코딩 시스템
JPH10191236A (ja) 画像処理装置及び画像データメモリ配置方法
JPH08123953A (ja) 画像処理装置
US8514937B2 (en) Video encoding apparatus
JP3381077B2 (ja) 動画像復号装置
US8194752B2 (en) Method for mapping memory addresses, memory accessing apparatus and method thereof
KR19980081641A (ko) 동화상 복호 방법 및 동화상 복호 장치
JP3120010B2 (ja) 画像復号処理方法および画像復号装置
US20060002475A1 (en) Caching data for video edge filtering
CN111052742A (zh) 图像处理
JPH07298264A (ja) 画像データの処理方法およびそれに用いる記憶装置ならびに画像データの処理装置
US20030123555A1 (en) Video decoding system and memory interface apparatus
KR20040086399A (ko) 데이터 소자의 저장 방법
KR100248085B1 (ko) 영상 관련 데이터를 저장하기 위한 메모리 맵 구조를 가지는 에스디램
EP2073553A1 (en) Method and apparatus for performing de-blocking filtering of a video picture
JP3890338B2 (ja) 画像信号処理装置
KR100504507B1 (ko) 비디오 디코딩 시스템
JP3884830B2 (ja) 画像信号処理装置
KR20130010337A (ko) 영상 처리 장치 및 영상 처리 방법
JP2015122584A (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
FPAY Annual fee payment

Payment date: 20150226

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20160311

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20170307

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20180312

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20190312

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20200312

Year of fee payment: 9