KR20210088304A - 이미지 프로세서의 동작 방법, 이미지 처리 장치 및 이미지 처리 장치의 동작 방법 - Google Patents

이미지 프로세서의 동작 방법, 이미지 처리 장치 및 이미지 처리 장치의 동작 방법 Download PDF

Info

Publication number
KR20210088304A
KR20210088304A KR1020200001578A KR20200001578A KR20210088304A KR 20210088304 A KR20210088304 A KR 20210088304A KR 1020200001578 A KR1020200001578 A KR 1020200001578A KR 20200001578 A KR20200001578 A KR 20200001578A KR 20210088304 A KR20210088304 A KR 20210088304A
Authority
KR
South Korea
Prior art keywords
data block
compressed data
packing
memory
storage area
Prior art date
Application number
KR1020200001578A
Other languages
English (en)
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 KR1020200001578A priority Critical patent/KR20210088304A/ko
Priority to US17/034,236 priority patent/US11417026B2/en
Priority to DE102020127737.7A priority patent/DE102020127737A1/de
Priority to CN202110010442.4A priority patent/CN113079380A/zh
Publication of KR20210088304A publication Critical patent/KR20210088304A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • 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
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/11Region-based segmentation
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/60General implementation details not specific to a particular type of compression
    • H03M7/6047Power optimization with respect to the encoder, decoder, storage or transmission
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/28Indexing scheme for image data processing or generation, in general involving image processing hardware
    • 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)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

본 개시의 기술적 사상에 따른 이미지 프로세서의 동작 방법은, 이미지 데이터를 복수의 데이터 블록으로 구분하는 단계, 복수의 데이터 블록 각각을 압축하는 단계, 복수의 압축 데이터 블록 각각에 대하여, 메모리 상의 복수의 저장 영역 중 압축 데이터 블록이 저장될 저장 영역의 시작 주소 및 상기 압축 데이터 블록의 데이터 사이즈를 기초로, 상기 저장 영역의 왼쪽 및 오른쪽 중 상기 압축 데이터 블록이 저장될 패킹 방향을 선택하는 단계; 및 복수의 압축 데이터 블록 각각을 상기 메모리의 상기 복수의 저장 영역 중 대응하는 저장 영역에 선택된 패킹 방향을 기초로 패킹하는 단계를 포함할 수 있다.

Description

이미지 프로세서의 동작 방법, 이미지 처리 장치 및 이미지 처리 장치의 동작 방법 {Operating method of image processor, image processing apparatus and operating method of image processing apparatus}
본 개시의 기술적 사상은 이미지 처리를 수행하는 반도체 장치에 관한 것으로서, 구체적으로 이미지 데이터를 압축하여 메모리에 저장하는 이미지 프로세서서의 동작 방법, 이미지 프로세서를 포함하는 이미지 처리 장치 및 이미지 처리 장치의 동작 방법에 관한 것이다.
비디오 고해상도 영상 및 고프레임율(high-frame rate) 영상의 필요성이 대두되면서 이미지 처리 장치의 여러 멀티미디어 IP(Intellectual Property)가 메모리에 엑세스(access)되는 횟수, 즉, 대역폭(bandwidth)이 크게 증가하게 되었다. 메모리의 대역폭이 증가하게 되면 이미지 처리 장치의 처리 능력이 한계에 도달하여 비디오 영상의 녹화 및 재생 동작 시에 속도가 저하되는 문제가 발생할 수 있다. 이에 따라서, 멀티미디어 IP가 메모리에 액세스할 때, 데이터의 크기를 압축하는 방식이 고려되고 있다. 예를 들어, 메모리에 데이터를 기입(write)하기 전에 데이터를 압축(compress)하고, 메모리에서 데이터를 독출(read)한 후, 압축된 데이터를 압축 해제(decompress)할 수 있다.
본 개시의 기술적 사상이 해결하려는 과제는, 이미지 프로세서가 이미지 데이터를 압축하고, 압축된 이미지 데이터를 메모리에 저장하여 이용함에 있어서, 메모리의 대역폭 및 소비 전력을 감소시킬 수 있는, 이미지 프로세서의 동작 방법, 이미지 프로세서를 포함하는 이미지 처리 장치, 및 이미지 처리 장치의 동작 방법을 제공하는 데 있다.
본 개시의 기술적 사상에 따른 이미지 프로세서의 동작 방법은, 이미지 데이터를 복수의 데이터 블록으로 구분하는 단계, 복수의 데이터 블록 각각을 압축하는 단계, 복수의 압축 데이터 블록 각각에 대하여, 메모리 상의 복수의 저장 영역 중 압축 데이터 블록이 저장될 저장 영역의 시작 주소 및 상기 압축 데이터 블록의 데이터 사이즈를 기초로, 상기 저장 영역의 왼쪽 및 오른쪽 중 상기 압축 데이터 블록이 저장될 패킹 방향을 선택하는 단계; 및 복수의 압축 데이터 블록 각각을 상기 메모리의 상기 복수의 저장 영역 중 대응하는 저장 영역에 선택된 패킹 방향을 기초로 패킹하는 단계를 포함할 수 있다.
본 개시의 기술적 사상에 따른 메모리 및 이미지 프로세서를 포함하는 이미지 처리 장치의 동작 방법은, 상기 이미지 프로세서가 이미지 데이터에 포함되는 복수의 데이터 블록 중 제1 데이터 블록을 압축하는 단계, 상기 이미지 프로세서가 상기 메모리 상의 복수의 저장 영역 중 상기 제1 압축 데이터 블록에 대하여 할당된 제1 저장 영역의 시작 주소 및 상기 제1 압축 데이터 블록의 데이터 사이즈를 기초로 상기 제1 압축 데이터 블록의 패킹 위치를 결정하는 단계, 및 상기 메모리가 상기 패킹 위치를 기초로 상기 제1 압축 데이터 블록을 상기 제1 저장 영역의 왼쪽 또는 오른쪽에 저장하는 단계를 포함할 수 있다.
본 개시의 기술적 사상에 따른 이미지 처리 장치는, 이미지 데이터를 복수의 데이터 블록으로 구분하고, 상기 복수의 데이터 블록 각각을 압축하는 컴프레서,및 복수의 압축 데이터 블록 각각을 메모리의 복수의 저장 영역 중 대응되는 저장 영역에 기입하되, 압축된 데이터 블록이 저장될 저장 영역의 시작 주소 및 상기 압축된 데이터 블록의 데이터 사이즈를 기초로 상기 압축된 데이터 블록이 상기 저장 영역의 왼쪽 및 상기 저장 영역의 오른쪽 중 한 쪽에 패킹되도록 패킹 방향을 결정하는 패킹 컨트롤러를 포함할 수 있다.
본 개시의 기술적 사상에 따른 이미지 프로세서의 동작 방법, 이미지 처리 장치 및 이미지 처리 장치의 동작 방법에 따르면, 이미지 데이터를 구성하는 복수의 데이터 블록 각각을 압축하여 복수의 압축 데이터 블록을 생성하고, 복수의 압축 데이터 블록 각각을 저장하기 위해 할당된 메모리의 복수의 저장 영역에 해당 압축 데이터 블록을 저장할 때, 선택적으로 압축 데이터 블록을 저장 영역의 왼쪽 또는 오른쪽으로 패킹함으로써, 메모리의 대역폭을 감소시키고, 이미지 처리 장치의 소비전력을 감소시킬 수 있다.
도 1은 본 개시의 예시적 실시예에 따른 이미지 처리 장치를 나타내는 블록도이다.
도 2는 본 개시의 실시예에 따른 이미지 데이터의 압축 방법을 나타낸다.
도 3은 본 개시의 예시적 실시예에 따른 프레임 버퍼의 레이아웃을 나타낸다.
도 4a 및 도 4b는 본 개시의 예시적 실시예에 따른 압축 데이터 블록의 패킹 방식을 나타낸다.
도 5는 본 개시의 예시적 실시예에 따라 프레임 버퍼에 압축 이미지 데이터가 저장된 예를 나타낸다.
도 6은 본 개시의 예시적 실시예에 따른 이미지 처리 장치의 동작 방법을 나타내는 흐름도이다.
도 7은 본 개시의 예시적 실시예에 따른 이미지 처리 장치의 패킹 방향 결정 방법을 나타내는 흐름도이다.
도 8a 및 도 8b은 패킹 환경에 따른 메모리 엑세스 횟수를 예시적으로 나타낸다.
도 9는 본 개시의 예시적 실시예에 따른 이미지 처리 장치의 패킹 방향 결정 방법을 나타내는 흐름도이다.
도 10a 및 도 10b은 패킹 환경에 따른 메모리 엑세스 횟수를 예시적으로 나타낸다.
도 11a는 본 개시의 예시적 실시예에 따른 패킹 방법에 따른 메모리 엑세스 횟수를 나타내고, 도 11b는 비교예의 패킹 방법에 따른 메모리 엑세스 횟수를 나타낸다.
도 12a는 본 개시의 예시적 실시예에 따른 메타 데이터를 나타내며, 도 12b는 메타 데이터에 포함되는 정보를 나타낸다.
도 13은 본 개시의 예시적 실시예에 따른 이미지 처리 장치의 동작 방법을 나타낸다.
도 14는 본 개시의 예시적 실시예에 따른 이미지 처리 장치의 동작 방법을 나타낸다.
도 15, 도 16 및 도 17은 본 개시의 예시적 실시예들에 따른 시스템 온 칩을 나타내는 블록도이다.
이하, 첨부한 도면을 참조하여 본 발명의 실시예에 대해 상세히 설명한다.
도 1은 본 개시의 예시적 실시예에 따른 이미지 처리 장치를 나타내는 블록도이다.
도 1을 참조하면, 이미지 처리 장치(100)는 이미지 프로세서(110) 및 메모리(150)를 포함할 수 있다. 이미지 처리 장치(100)는 다른 범용적인 구성들을 더 포함할 수 있으며, 예를 들어, 이미지 처리 장치(100)는 이미지 데이터(IDT)를 생성하는 촬상 모듈 및/또는 이미지 데이터(IDT)를 표시하는 디스플레이 모듈을 더 포함할 수 있다.
이미지 처리 장치(100)는 이미지 데이터(IDT)를 생성, 처리 및 표시하는 다양한 전자 기기에 탑재될 수 있으며, 예컨대 이미지 처리 장치(100)는 랩탑 컴퓨터(laptop computer), 스마트 TV, 스마트 폰(smart phone), 태블릿(tablet) PC, PDA(personal digital assistant), EDA (enterprise digital assistant), 디지털 카메라(digital camera), PMP(portable multimedia player), PND(portable navigation device), 휴대용 게임 콘솔(handheld game console), 모바일 인터넷 장치(mobile internet device(MID), 멀티미디어 장치(multimedia device), 웨어러블 컴퓨터, 사물 인터넷(internet of things(IoT)) 장치, 만물 인터넷(internet of everything(IoE)) 장치, 또는 e-북 (e-book) 등의 전자 기기에 탑재될 수 있다.
이미지 프로세서(110)는 수신되는 이미지 데이터(IDT)에 대하여 이미지 처리를 수행할 수 있으며, 이미지 처리가 수행된 이미지 데이터(IDT)를 메모리(150)에 저장할 수 있다. 또한 이미지 프로세서(110)는 메모리(150)에 저장된 이미지 데이터(IDT)의 전부 또는 일부를 독출하고, 독출된 이미지 데이터(IDT)의 전부 또는 일부에 대하여 이미지 처리를 수행할 수 있다.
이미지 프로세서(110)는 메모리(150)의 대역폭 감소, 즉 메모리(150)의 엑세스 횟수를 감소를 위하여, 이미지 데이터(IDT)를 압축하여 압축된 이미지 데이터(CIDT)를 생성하고, 압축된 이미지 데이터(CIDT)를 메모리(150), 구체적으로 메모리(150)에 구비되는 프레임 버퍼(FB)에 저장할 수 있다. 이때, 프레임 버퍼(FB)의 사이즈는 이미지 데이터(IDT)의 사이즈와 동일할 수 있다.
이미지 프로세서(110)는 CPU(central processing unit), GPU(graphic processing unit), ISP(image signal processor) 등과 같은 이미지 처리를 수행하는 하드웨어, 소프트웨어 또는 하드웨어와 소프트웨어의 조합에 따른 기능 모듈로 구현될 수 있으며, 실시예에 있어서, 촬상 장치 또는 모바일 장치에 구비되는 시스템 온 칩으로 구현될 수 있다.
이미지 프로세서(110)는 압축기(CMP) 및 패킹 컨트롤러(PC)를 포함할 수 있다. 압축기(CMP) 및 패킹 컨트롤러(PC)는 하드웨어, 소프트웨어 또는 하드웨어와 소프트웨어의 조합에 따른 기능 모듈로 구현될 수 있다.
압축기(CMP)는 이미지 데이터(IDT)를 복수의 데이터 블록으로 구분하고, 복수의 데이터 블록 각각을 압축할 수 있다. 이에 따라, 복수의 압축 데이터 블록, 다시 말해서 압축된 이미지 데이터(CIDT)가 생성될 수 있다. 압축기(CMP)는 설정된 인코딩 방식에 따라서, 복수의 데이터 블록 각각을 인코딩함으로써, 복수의 압축 데이터 블록을 생성할 수 있다. 또한 메모리(150)로부터 적어도 하나의 압축 데이터 블록이 독출될 때, 압축기(CMP)는 적어도 하나의 압축 데이터 블록을 설정된 디코딩 방식에 따라 디코딩함으로써, 적어도 하나의 압축 데이터 블록을 압축 해제할 수 있다.
패킹 컨트롤러(PC)는 복수의 압축 데이터 블록 각각이 메모리(150)의 복수의 저장 영역 중 대응하는 저장 영역에 저장될 때 압축 데이터 블록이 해당 저장 의 오른쪽 또는 왼쪽으로 패킹될지 여부를 나타내는 패킹 방향을 결정할 수 있다. 패킹 컨트롤러(PC)는 결정된 패킹 방향을 기초로 복수의 압축 데이터 블록 각각을 대응하는 저장 영역에 패킹할 수 있다. 다시 말해서, 패킹 컨트롤러(PC)는 복수의 압축 데이터 블록 각각이 대응하는 저장 영역의 오른쪽 또는 왼쪽에 저장되도록 메모리(150)를 제어할 수 있다.
복수의 저장 영역은 복수의 데이터 블록 각각을 저장하기 위하여 메모리(150) 상에 할당된 영역으로서, 프레임 버퍼(FB)를 구성할 수 있다. 복수의 저장 영역의 개수는 복수의 데이터 블록 개수와 동일하며, 저장 영역의 데이터 사이즈(예컨대, 저장할 수 있는 데이터 량)는 데이터 블록의 데이터 사이즈(예컨대, 데이터 블록의 데이터 량)와 동일할 수 있다. 복수의 저장 영역 각각의 시작 주소는 이미지 데이터(IDT)의 사이즈(다시 말해서, 프레임 버퍼(FB)의 사이즈), 상기 복수의 데이터 블록 각각의 사이즈(다시 말해서, 복수의 저장 영역 각각의 사이즈)를 기초로 결정될 수 있다.
실제로 저장 영역에 저장될 압축 데이터 블록의 사이즈는 저장 영역의 사이즈보다 작을 수 있다(데이터 블록의 압축률이 0일 경우, 다시 말해서, 압축이 되지 않은 경우, 압축 데이터 블록의 사이즈는 저장 영역의 사이즈와 동일할 수 있다). 패킹 컨트롤러(PC)는 압축 데이터 블록이 저장 영역의 오른쪽 또는 왼쪽으로 패킹되도록 패킹 방향을 결정할 수 있다. 예를 들어, 패킹 방향이 오른쪽으로 결정되면, 압축 데이터 블록은 저장 영역의 시작 주소가 나타내는 지점부터 오른쪽 방향으로 저장됨으로써, 저장 영역의 왼쪽에 패킹되고, 패킹 방향이 왼쪽으로 결정되면, 압축 데이터 블록은 저장 영역의 끝 주소가 나타내는 지점부터 왼쪽 방향으로 저장됨으로써, 저장 영역의 오른쪽에 패킹될 수 있다.
패킹 컨트롤러(PC)는 데이터 블록의 사이즈(또는 저장 영역의 사이즈), 메모리(150)의 엑세스 단위, 저장 영역의 시작 주소, 및 압축된 데이터 블록의 사이즈를 기초로 복수의 압축 데이터 블록 각각의 패킹 방향을 결정할 수 있다. 이때, 메모리(150)의 엑세스 단위는 메모리(150)에 데이터를 기입하거나 또는 메모리(150)로부터 데이터를 독출할 때의 최소 기입 단위 또는 최소 독출 단위일 수 있다. 패킹 방향의 결정 방법에 대하여는 도 7 내지 도10b를 참조하여 상세하게 후술하기로 한다.
메모리(150)는 압축된 이미지 데이터를 저장할 수 있으며, 또한 메모리(150)는 이미지 프로세서(110)에서 처리된 데이터, 이미지 처리 장치(100)에서 생성된 데이터, 또는 외부로부터 수시된 데이터(예컨대 이미지 데이터)를 저장할 수 있다. 메모리(150)는 엑세스 단위로 데이터를 저장(기입) 또는 독출할 수 있다.
메모리(150)는 휘발성 메모리 또는 비휘발성 메모리로 구현될 수 있다. 휘발성 메모리는 DRAM(Dynamic Random Access Memory), SRAM(Static RAM) 등을 포함할 수 있으며, 비휘발성 메모리는 ROM(Read Only Memory), PROM(Programmable ROM), EPROM(Electrically Programmable ROM), EEPROM(Electrically Erasable and Programmable ROM), 플래시 메모리, PRAM(Phase-change RAM), MRAM(Magnetic RAM), RRAM(Resistive RAM), FRAM(Ferroelectric RAM) 등을 포함할 수 있다.
메모리(150)에 데이터를 저장하거나 또는 메모리(150)로부터 데이터를 독출할 때, 엑세스 단위를 기초로, 상기 데이터를 저장하거나 또는 독출하기 위한 메모리(150)의 엑세스 횟수가 결정될 수 있다. 데이터 블록의 사이즈, 다시 말해서 저장 영역의 사이즈가 메모리(150)의 엑세스 단위의 정수배가 아닐 경우, 압축된 데이터 블록의 패킹 방향에 따라서, 상기 압축된 데이터 블록을 저장 영역에 저장하기 위한(또는 저장 영역으로부터 독출하기 위한) 엑세스 횟수가 상이할 수 있다. 본 개시의 기술적 사상에 따른 이미지 프로세서(100)는 선택적으로 압축 데이터 블록의 패킹 방향을 왼쪽 또는 오른쪽으로 결정함으로써, 메모리(150)의 엑세스 횟수를 감소시킬 수 있다. 이에 따라 메모리(150)의 대역폭이 감소됨으로써, 이미지 처리 장치(100)의 처리 속도가 증가되고, 이미지 처리 장치(100)의 소비 전력이 감소될 수 있다.
한편, 도 1에서는 이미지 프로세서(110)가 압축기(CMP) 및 패킹 컨트롤러(PC)를 포함하는 것으로 도시되었으나, 이에 제한되는 것은 아니며, 압축기(CMP) 및 패킹 컨트롤러(PC)는 별개의 모듈로서 이미지 처리 장치(100)에 구비될 수도 있다.
도 2는 본 개시의 실시예에 따른 이미지 데이터의 압축 방법을 나타낸다.
도 1 및 도 2를 참조하면, 압축기(CMP)는 이미지 데이터(IDT)를 복수의 데이터 블록(DB)으로 구분하고, 복수의 데이터 블록(DB) 각각을 압축할 수 있다. 복수의 데이터 블록(DB) 각각의 사이즈는 M 바이트로 서로 동일할 수 있다. 한편, 도 1에서는 이미지 데이터(IDT)가 12개의 데이터 블록(DB)으로 구분되는 것으로 도시되었으나, 이는 설명의 편의를 위한 것이며, 데이터 블록(DB)의 개수는 이미지 데이터(IDT)의 데이터 사이즈 및 이미지 프로세서(100), 구체적으로 암축기(CMP)의 성능에 따라 변경될 수 있다.
압축기(CMP)는 복수의 데이터 블록(DB) 각각에 대하여 설정된 인코딩 방식에 따라 인코딩 함으로써, 복수의 압축 데이터 블록(CDB)을 생성할 수 있다. 압축기(CMP)는 12개의 데이터 블록(DB) 각각을 압축하여 12개의 압축 데이터 블록(CDB)을 생성할 수 있다. 데이터 블록(DB)의 데이터 사이즈는 M 바이트(M은 양의 정수)이고, 압축된 데이터 블록(DB)의 데이터 사이즈는 N 바이트일 수 있다(N은 M 이하의 양의 정수). 복수의 데이터 블록(DB) 각각에 대한 압출률은 상이할 수 있다. 예를 들어, 데이터 블록의 사이즈가 224 바이트이고, 압출률이 50%일 경우, 압축 데이터 블록(CDB)의 데이터 사이즈는 112 바이트일 수 있다. 압출률이 0일 경우, 압축 데이터 블록(CDB)의 데이터 사이즈는 224 바이트일 수 있다.
도 3은 본 개시의 예시적 실시예에 따른 프레임 버퍼의 레이아웃을 나타낸다.
도 1 및 도 3을 참조하면, 메모리(150)는 이미지 데이터(IDT)의 사이즈(높이 H 및 너비 W)에 대응하는 사이즈를 갖는 프레임 버퍼(FB)를 포함할 수 있으며, 프레임 버퍼(FB)는 복수의 저장 영역(AR)을 포함할 수 있다. 복수의 저장 영역(AR)은 이미지 데이터(IDT)의 복수의 데이터 블록(DB) 각각에 대응하며, 저장 영역(Ar)의 데이터 사이즈는 데이터 블록(DB)의 데이터 사이즈와 동일할 수 있다. 예컨대, 데이터 블록(DB)의 데이터 사이즈가 M 바이트이고, 저장 영역(AR)의 사이즈도 M 바이트일 수 있다.
프레임 버퍼(FB)는 메모리(150)의 엑세스 단위(AU)를 기초로 엑세스될 수 있다. 예컨대, 엑세스 단위(AU)(즉, 메모리 엑세스 세분성(granularity))는 G 바이트(G는 M 이하의 양의 정수)이고, 엑세스 단위(AU)는 데이터 블록(DB)의 사이즈, 즉 M 바이트보다 작을 수 있다.
데이터 블록(DB)의 사이즈가 엑세스 단위(AU)의 정수배가 아닐 경우, 도 3에 도시된 바와 같이, 복수의 저장 영역(AR)의 위치, 예컨대 복수의 저장 영역(AR)의 시작 주소 또는 끝 주소의 정렬 위치가 엑세스 단위(AU)에 기초한 프레임 버퍼(FB)의 기준 위치(도트 표시된 위치, RP)와 일치하지 않을 수 있다. 예를 들어, 데이터 블록(DB)의 데이터 사이즈가 224 바이트이고, 엑세스 단위(AU)가 64 바이트일 경우, 복수의 저장 영역(AR) 중 제1 컬럼 및 제2 컬럼에 배치된 저장 영역들의 시작 주소(SP_C1, SP_C3)는 프레임 버퍼(FB)의 기준 위치(RP)와 일치하지만, 제2 컬러 및 제4 컬럼에 배치된 저장 영역들의 시작 주소(SP_C2, SP_C4)은 기준 위치(RP)와 일치하지 않는다.
전술한 바와 같이, 데이터 블록의 사이즈, 다시 말해서 저장 영역의 사이즈가 메모리(150)의 엑세스 단위(AU)의 정수배가 아닐 경우, 압축된 데이터 블록의 패킹 방향에 따라서, 상기 압축된 데이터 블록을 저장 영역에 저장하기 위한(또는 저장 영역으로부터 독출하기 위한) 엑세스 횟수가 상이할 수 있다. 패킹 컨트롤러(PC)는 왼쪽 및 오른쪽 중 압축 데이터 블록의 패킹 방향을 선택할 수 있으며, 메모리(150)에 선택된 패킹 방향에 따라 압축 데이터 블록이 패킹(저장)될 수 있다.
도 4a 및 도 4b는 본 개시의 예시적 실시예에 따른 압축 데이터 블록의 패킹 방식을 나타낸다.
도 4a를 참조하면, 압축 데이터 블록(CDB)는 저장 영역(AR)의 왼쪽에 패킹될 수 있다. 패킹 방향이 오른쪽으로 결정되면, 압축 데이터 블록(CDB)은 저장 영역(AR)의 시작 주소가 나타내는 제1 지점(P1)부터 제2 지점(P2)까지 저장될 수 있으며, 이때, 제2 지점(P2)은 상기 제1 지점(P1)으로부터 압축 데이터 블록의 데이터 사이즈, 예컨대 N 바이트만큼 오른쪽으로 떨어진 지점일 수 있다.
도 4b를 참조하면, 압축 데이터 블록(CDB)는 저장 영역(AR)의 왼쪽에 패킹될 수 있다. 패킹 방향이 왼쪽으로 결정되면, 압축 데이터 블록(CDB)은 제3 지점(P3)부터 저장 영역(AR)의 끝 주소가 나타내는 제4 지점(P4)까지 저장될 수 있으며, 이때, 제3 지점(P3)은 제4 지점(P4)로부터 압축 데이터 블록의 데이터 사이즈, 예컨대 M 사이즈만큼 왼쪽으로 떨어진 지점일 수 있다.
도 1을 함께 참조하면, 패킹 컨트롤러(CP)는 기입을 위하여, 복수의 압축 데이터 블록(CD)을 메모리(150)에 제공할 때, 복수의 압축 데이터 블록(CD) 각각에 대응하는 패킹 방향에 따라 제1 지점(P4)를 나타내는 주소 또는 제3 지점(P4)를 나타내는 저장 주소를 메모리(150)로 제공할 수 있다. 저장 주소에 기초하여 복수의 압축 데이터 블록(CD) 각각이 대응하는 저장 영역(AR)의 오른쪽 또는 왼쪽에 패킹될 수 있다.
도 5는 본 개시의 예시적 실시예에 따라 프레임 버퍼에 압축 이미지 데이터가 저장된 예를 나타낸다.
도 5를 참조하면, 프레임 버퍼(FB)의 복수의 저장 영역(AR)에 복수의 압축 데이터 블록(CDB)이 오른쪽 또는 왼쪽으로 패킹됨에 따라, 프레임 버퍼(FB)에 한 프레임에 해당하는 압축된 이미지 데이터가 저장될 수 있다.
예를 들어, 프레임 버퍼(FB)의 제1 로우의 제1 컬럼에 위치한 저장 영역 (AR11)에는 대응하는 압축 데이터 블록 CDB11이 오른쪽으로 패킹되고, 제2 로우의 제2 컬럼에 위치한 저장 영역 (AR22)에는 대응하는 압축 데이터 블록 CDB22이 왼쪽으로 패킹될 수 있다.
도 6은 본 개시의 예시적 실시예에 따른 이미지 처리 장치의 동작 방법을 나타내는 흐름도이다. 도 6은 이미지 처리 장치가 이미지 데이터를 프레임 버퍼에 패킹하는 패킹 방법을 나타낸다. 도 6의 방법은 도 1의 이미지 프로세서에서 수행될 수 있으며, 도 1을 참조하여 설명한 내용은 본 실시예에 적용될 수 있다.
도 1 및 도 6을 참조하면, 이미지 프로세서(110)는 이미지 데이터(IDT)를 복수의 데이터 블록으로 구분하고(S110), 복수의 데이터 블록 각각을 압축할 수 있다(S120). 예컨대 압축기(CMP)는 설정된 인코딩 방식을 기초로 복수의 데이터 블록 각각을 인코딩할 수 있다. 이에 따라서, 복수의 압축 데이터 블록이 생성될 수 있다.
이미지 프로세서(110)는 복수의 압축 데이터 블록 각각에 대한 패킹 방향을 결정할 수 있다(S130). 예컨대 패킹 컨트롤러(PC)가 압축 데이터 블록의 데이터 사이즈, 압축 데이터 블록이 저장될 저장 영역의 시작 주소를 기초로 압축 데이터 블록이 대응하는 저장 영역에 저장될 때의 패킹 방향을 결정할 수 있다.
이미지 프로세서(110)는 복수의 압축 데이터 블록 각각을 프레임 버퍼의 복수의 저장 영역 중 대응하는 저장 영역에 결정된 패킹 방향에 따라 패킹할 수 있다(S140). 실시예에 있어서, 패킹 컨트롤러(PC)는 결정된 패킹 방향에 따른 복수의 압축 데이터 블록 각각에 대하여 결정된 패킹 방향에 따른 저장 주소를 생성하고, 기입을 위하여, 복수의 압축 데이터 블록을 메모리(150)에 전송할 때, 복수의 압축 데이터 블록에 대응하는 복수의 저장 주소를 함께 메모리(150)로 전송할 수 있다. 복수의 저장 주소에 기초하여 복수의 압축 데이터 블록 각각이 대응하는 저장 영역에 오른쪽 또는 왼쪽으로 패킹됨으로써, 저장될 수 있다.
도 7은 본 개시의 예시적 실시예에 따른 이미지 처리 장치의 패킹 방향 결정 방법을 나타내는 흐름도이다. 도 8a 및 도 8b은 패킹 환경에 따른 메모리 엑세스 횟수를 예시적으로 나타낸다. 도 7의 방법은 도 1의 패킹 컨트롤러(PC)에서 수행될 수 있다.
도 1 및 도 7을 참조하면, 패킹 컨트롤러(PC)는 패킹 환경에 대한 정보, 예컨대 데이터 블록의 사이즈(S_DB), 메모리(150)의 엑세스 단위(AU), 압축 데이터 블록의 사이즈(S_CDB), 압축 데이터 블록이 저장될 저장 영역의 시작 주소(BA_AR)(또는 베이스 주소라고 함)를 수신할 수 있다(S11). 예를 들어, 데이터 블록의 사이즈(S_DB), 엑세스 단위(AU), 및 저장 영역의 시작 주소(BA_AR)는 이미지 프로세서(110) 내부에 저장될 수 있으며, 패킹 컨트롤러(PC)는 데이터 블록의 사이즈(S_DB), 엑세스 단위(AU), 및 저장 영역의 시작 주소(BA_AR)를 확인할 수 있다. 압축 데이터 블록의 사이즈(S_CDB)는 복수의 압축 데이터 블록 마다 상이할 수 있으며, 이미지 데이터(IDT)의 매 프레임마다 또는 이미지 처리 상태에 따라 상이할 수 있다. 패킹 컨트롤러(PC)는 압축기(CMP)로부터 데이터 블록의 사이즈(S_DB)를 수신할 수 있다.
패킹 컨트롤러(PC)는 전술한 패킹 환경에 대한 정보를 기초로 압축 데이터 블록을 저장 영역의 왼쪽에 패킹할 때 요구되는 메모리(150)의 제1 엑세스 횟수(#AU_PL)을 산출하고(S12), 압축 데이터 블록을 저장 영역의 오른쪽에 패킹할 때 요구되는 메모리(150)의 제2 엑세스 횟수(#AU_PR)를 산출할 수 있다(S13). 패킹 컨트롤러(PC)는 데이터 블록의 사이즈(S_DB), 엑세스 단위(AU), 저장 영역의 시작 주소(BA_AR) 및 압축 데이터 블록의 사이즈(S_CDB)을 기초로 제1 엑세스 횟수(#AU_PL) 및 제2 엑세스 횟수(#AU_PR)를 산출할 수 있다.
도 8a 및 도 8b를 참조하면, 데이터 블록의 사이즈(S_DB)가 엑세스 단위(AU)의 3.5배이고, 압축 데이터 블록의 사이즈(S_CDB)가 엑세스 단위(AU)의 1.8배일 경우를 가정한다. 도 8a에 도시된 바와 같이, 저장 영역의 시작 주소(BA_AR)의 정렬 위치가 메모리(150) 상의 기준 위치 와 일치할 경우, 압축 데이터 블록(SCB)을 저장 영역(AR)의 왼쪽으로 패킹할 때의 제1 엑세스 횟수(#AU_PL)는 2이고, 압축 데이터 블록(SCB)을 저장 영역(AR)의 오른쪽으로 패킹할 때의 제2 엑세스 횟수(#AU_PR)는 3일 수 있다.
도 8b에 도시된 바와 같이, 저장 영역의 시작 주소(BA_AR)의 정렬 위치가 메모리(150) 상의 기준 위치와 일치하지 않을 경우, 예컨대 정렬 위치가 기준 위치들 간의 중간 지점일 때, 압축 데이터 블록(SCB)을 저장 영역(AR)의 왼쪽으로 패킹할 때의 제1 엑세스 횟수(#AU_PL)는 3이고, 압축 데이터 블록(SCB)을 저장 영역(AR)의 오른쪽으로 패킹할 때의 제2 엑세스 횟수(#AU_PR)는 2일 수 있다.
계속하여 도 7을 참조하면, 패킹 컨트롤러(PC)는 제1 엑세스 횟수(#AU_PL)및 제2 엑세스 횟수(#AU_PR)를 비교함으로써, 제1 엑세스 횟수(#AU_PL)가 제2 엑세스 횟수(#AU_PR) 미만인지 판단할 수 있다(S14). 패킹 컨트롤러(PC)는 제1 엑세스 횟수(#AU_PL)가 제2 엑세스 횟수(#AU_PR) 미만이면, 압축 데이터 블록에 대하여 왼쪽을 패킹 방향으로 결정하고(S15). 제1 엑세스 횟수(#AU_PL)가 제2 엑세스 횟수(#AU_PR) 이상이면, 압축 데이터 블록에 대하여 오른쪽을 패킹 방향으로 결정할 수 있다(S16).
도 7의 단계 S11 내지 S16은 복수의 압축 데이터 블록 각각에 대하여 수행될 수 있으며, 이에 따라서, 복수의 압축 데이터 블록 각각에 대하여 패킹 방향이 결정될 수 있다.
도 9는 본 개시의 예시적 실시예에 따른 이미지 처리 장치의 패킹 방향 결정 방법을 나타내는 흐름도이다. 도 10a 및 도 10b은 패킹 환경에 따른 메모리 엑세스 횟수를 예시적으로 나타낸다. 도 9의 방법은 도 1의 패킹 컨트롤러(PC)에서 수행될 수 있다.
도 1 및 도 9를 참조하면, 패킹 컨트롤러(PC)는 패킹 환경에 대한 정보, 예컨대 데이터 블록의 사이즈(S_DB), 메모리(150)의 엑세스 단위(AU), 압축 데이터 블록의 사이즈(S_CDB), 압축 데이터 블록이 저장될 저장 영역의 시작 주소(BA_AR)(또는 베이스 주소라고 함)를 수신할 수 있다(S21).
패킹 컨트롤러(PC)는 데이터 블록의 데이터 사이즈(S_DB)을 엑세스 단위(AU)로 나눈 값에서 정수를 제외한 나머지 값을 기준값(RVA)으로서 산출할 수 있다(S22).
패킹 컨트롤러(PC)는 저장 영역의 시작 주소(BA_AR)을 엑세스 단위(AU)로 나눈 값을 기초로 시작 주소(BA_AR)의 정렬 위치(AL)를 산출할 수 있다. 예컨대, 패킹 컨트롤러(PC)는 저장 영역의 시작 주소(BA_AR)을 엑세스 단위(AU)로 나눈 값에서 정수를 제외한 나머지를 정렬 위치(AL)로서 산출할 수 있다.
패킹 컨트롤러(PC)는 압축 데이터 블록의 데이터 사이즈(S_CDB)을 엑세스 단위(AU)로 나눈 값에서 정수를 제외한 나머지 값을 비교값(CVA)으로서 산출할 수 있다(S24). 한편, 단계 S22 내지 S24는 동시에 산출되거나 또는 S22 내지 S24가 수행되는 순서는 변경될 수 있다.
이후, 패킹 컨트롤러(PC)는 시작 주소(BA_AR)의 정렬 위치(AL)가 메모리의 기준 위치와 일치하는지 판단할 수 있다(S25). 예컨대, 패킹 컨트롤러(PC)는 단계 S24 에서 산출된 정렬 위치(AL)에 대응하는 값이 '0'일 경우, 정렬 위치(AL)가 메모리의 기준 위치와 일치한다고 판단하고, 그렇지 않을 경우, 정렬 위치(AL)가 메모리의 기준 위치와 일치하지 않는다고 판단할 수 있다.
패킹 컨트롤러(PC)는 시작 주소(BA_AR)의 정렬 위치(AL)가 메모리의 기준 위치와 일치할 경우, 기준값(RVA)이 비교값(CVA) 이상인지 판단할 수 있다(S26). 패킹 컨트롤러(PC)는 기준값(RVA)이 비교값(CVA) 이상이면, 오른쪽을 압축 데이터 블록에 대한 패킹 방향으로 결정하고(S27), 기준값(RVA)이 비교값(CVA) 미만이면, 왼쪽을 압축 데이터 블록에 대한 패킹 방향으로 결정할 수 있다(S29).
패킹 컨트롤러(PC)는 시작 주소(BA_AR)의 정렬 위치(AL)가 메모리의 기준 위치와 일치하지 않는 경우, 기준값(RVA)이 비교값(CVA) 이상인지 판단할 수 있다(S28). 패킹 컨트롤러(PC)는 기준값(RVA)이 비교값(CVA) 이상이면, 왼쪽을 압축 데이터 블록에 대한 패킹 방향으로 결정하고(S29), 기준값(RVA)이 비교값(CVA) 미만이면, 오른쪽을 압축 데이터 블록에 대한 패킹 방향으로 결정할 수 있다(S27).
도 10a 및 도 10b를 참조하면, 기준값(RVA)이 비교값(CVA) 미만일 경우를 가정하기로 한다. 도 10a에 도시된 바와 같이, 시작 주소(BA_AR)의 정렬 위치(AL)가 메모리의 기준 위치와 일치할 경우, 패킹 방향이 왼쪽일 때의 메모리 엑세스 횟수는 2이고, 패킹 방향이 오른쪽일 때의 메모리 엑세스 횟수는 3이다. 따라서, 시작 주소(BA_AR)의 정렬 위치(AL)가 메모리의 기준 위치와 일치할 경우 기준값(RVA)이 비교값(CVA) 미만이면, 메모리 엑세스 횟수 감소를 위하여, 왼쪽을 패킹 방향으로 결정할 수 있다.
도 10b에 도시된 바와 같이, 시작 주소(BA_AR)의 정렬 위치(AL)가 메모리의 기준 위치와 일치하지 않는 경우, 패킹 방향이 왼쪽일 때의 메모리 엑세스 횟수는 3이고, 패킹 방향이 오른쪽일 때의 메모리 엑세스 횟수는 2이다. 따라서, 시작 주소(BA_AR)의 정렬 위치(AL)가 메모리의 기준 위치와 일치하지 않는 경우, 기준값(RVA)이 비교값(CVA) 미만이면, 메모리 엑세스 횟수 감소를 위하여, 오른쪽을 패킹 방향으로 결정할 수 있다.
계속하여 도 9를 참조하면, 도 9의 단계 S21 내지 S29는 복수의 압축 데이터 블록 각각에 대하여 수행될 수 있으며, 이에 따라서, 복수의 압축 데이터 블록 각각에 대하여 패킹 방향이 결정될 수 있다.
도 11a는 본 개시의 예시적 실시예에 따른 패킹 방법에 따른 메모리 엑세스 횟수를 나타내고 도 11b는 비교예의 패킹 방법에 따른 메모리 엑세스 횟수를 나타낸다.
도 11a를 참조하면, 본 개시의 예시적 실시예에 따른 패킹 방법을 기초로 프레임 버퍼(FB)의 복수의 저장 영역 각각에 대하여 대응하는 압축 데이터 블록이 저장될 때 압축 데이터 블록은 선택적으로 오른쪽 또는 왼쪽으로 패킹될 수 있다.
프레임 버퍼(FB)의 제1 로우에 압축 데이터 블록들이 패킹 또는 독출되기 위해서 프레임 버퍼(FB), 다시 말해서 메모리가 9번 엑세스될 수 있다. 또한, 도 11a에 도시된 바와 같이 복수의 압축 데이터 블록이 프레임 버퍼(FB)에 패킹될 경우, 복수의 압축 데이터 블록 전체를 패킹 또는 독출하기 위해서 프레임 버퍼(FB)가 48회 엑세스될 수 있다.
도 11b를 참조하면, 비교예에 따른 패킹 방법에 따라 복수의 저장 영역 각각에 대하여 대응하는 압축 데이터 블록이 저장될 때, 압축 데이터 블록이 왼쪽으로 패킹될 수 있다.
프레임 버퍼(FB)의 제1 로우에 압축 데이터 블록들이 패킹 또는 독출되기 위해서 프레임 버퍼(FB), 다시 말해서 메모리가 11번 엑세스될 수 있다. 또한, 도 11b에 도시된 바와 같이 복수의 압축 데이터 블록이 프레임 버퍼(FB)에 패킹될 경우, 복수의 압축 데이터 블록 전체를 패킹 또는 독출하기 위해서 프레임 버퍼(FB)가 56회 엑세스될 수 있다.
이와 같이, 본 개시의 실시예에 따른 패킹 방법에 따라 복수의 압축 데이터 블록이 프레임 버퍼(FB)의 복수의 저장 영역에 선택적으로 오른쪽 또는 왼쪽으로 패킹됨에 따라서, 복수의 압축 데이터 블록을 프레임 버퍼(FB)에 패킹하고 또한, 복수의 압축 데이터 블록을 프레임 버퍼(FB)로부터 독출하기 위한 메모리 엑세스 횟수가 감소될 수 있다.
도 12a는 본 개시의 예시적 실시예에 따른 메타 데이터를 나타내며, 도 12b는 메타 데이터에 포함되는 정보를 나타낸다.
도 1 및 도 12a를 참조하면, 패킹 컨트롤러(PC)는 프레임 버퍼(FB)의 복수의 저장 영역(AR)에 저장된 복수의 압축 데이터 블록(CSB)을 관리하기 위한 메타 데이터를 생성할 수 있다. 패킹 컨트롤러(PC)는 복수의 압축 데이터 블록(CSB) 각각에 대한 메타 데이터를 생성할 수 있으며, 복수의 압축 데이터 블록 (CSB)에 대한 복수의 메타 데이터(MD11~MD64)를 저장할 수 있다. 패킹 컨트롤러(PC)는 복수의 메타 데이터(MD11~MD64)를 포함하는 메타 데이트 테이블(MDT)을 메모리(150) 또는 다른 메모리에 저장하고, 메타 데이터를 기초로 프레임 버퍼(FB)로부터 압축 데이터 블록(CDB)을 독출할 수 있다.
도 12b를 참조하면, 메타 데이터(MD)는 압축 여부를 나타내는 정보(IF_C), 압축 데이터 블록(CDB)의 데이터 사이즈(S_CDB), 및 패킹 방향을 나타내는 정보(IF_PD)를 포함할 수 있다. 그러나, 이에 제한되는 것은 아니며, 메타 데이터(MD)는 다른 정보들을 더 포함할 수 있다.
예를 들어, 압축 여부를 나타내는 정보(IF_C)가 '1'이면, 압축 데이터 블록(CDB)이 압축되었음을 나타내고, '0'이면 압축 데이터 블록(CDB)이 압축이 압축되지 않았거나 압축률이 '0'임을 나타낼 수 있다.
패킹 방향을 나타내는 정보(IF_PD)가 '1'이면 오른쪽 방향으로 패킹되었음을 나타내고 '0'이면 왼쪽 방향으로 패킹되었음을 나타낼 수 있다.
실시예에 있어서, 메타 데이터(MD)는 압축 여부를 나타내는 정보(IF_C) 및 압축 데이터 블록(CDB)의 데이터 사이즈(S_CDB) 대신 압축률을 포함할 수 있다. 패킹 컨트롤러(PC)는 압축률을 기초로, 압축 여부 및 압축 데이터 블록(CDB)의 데이터 사이즈(S_CDB)를 산출할 수 있다.
도 13은 본 개시의 예시적 실시예에 따른 이미지 처리 장치의 동작 방법을 나타낸다. 도 13은 이미지 처리 장치가 이미지 데이터의 일부를 프레임 버퍼로부터 독출하는 방법을 나타낸다. 도 13의 방법은 도 1의 이미지 프로세서에서 수행될 수 있으며, 도 1을 참조하여 설명한 내용은 본 실시예에 적용될 수 있다.
도 13을 참조하면, 이미지 프로세서(110)는 제1 메타 데이터를 기초로, 메모리의 복수의 저장 영역 중 제1 저장 영역으로부터 제1 압축 데이터 블록을 독출할 수 있다(S210). 예컨대, 패킹 컨트롤러(PC)는 제1 저장 영역에 대한 시작 주소및 제1 메타 데이터를 확인할 수 있으며, 시작 주소, 제1 메타 데이터에 포함된 압축 여부를 나타내는 정보(IF_C), 압축 데이터 블록(CDB)의 데이터 사이즈(S_CDB), 및 패킹 방향을 나타내는 정보(IF_PD)를 기초로 제1 압축 데이터가 저장된 저장 주소를 산출할 수 있다. 패킹 컨트롤러(PC)는 저장 주소 및 압축 데이터 블록의 데이터 사이즈를 기초로 엑세스 단위로 제1 저장 영역을 1회 이상 엑세스함으로써, 제1 압축 데이터 블록을 독출할 수 있다.
이미지 프로세서(110)는 제1 압축 데이터 블록을 압축 해제할 수 있다(S220). 예컨대, 압축기(CMP)는 제1 압축 데이터 블록에 대하여 설정된 방식에 따라 디코딩 함으로써 제1 압축 데이터 블록을 압축 해제할 수 있다. 이에 따라서, 제1 데이터 블록이 생성될 수 있다.
이미지 프로세서(110)는 압축 제1 데이터 블록에 대하여 이미지 처리를 수행 할 수 있다(S230). 예컨대 이미지 프로세서(110) 내에 구비되는 이미지 처리 모듈이 이미지 처리를 수행할 수 있다. 실시예에 있어서, 이미지 프로세서(110)는 제1 데이터 블록을 디스플레이 장치로 제공할 수도 있다.
전술한 바와 같이, 이미지 프로세서(110)는 복수의 저장 영역들 각각의 시작 주소, 및 메타 데이터를 기초로 프레임 버퍼(FB)를 랜덤 엑세스함으로써, 프레임 버퍼(FB)에 저장된 복수의 압축 데이터 블록 중 적어도 일부 또는 전부를 독출할 수 있다.
도 14는 본 개시의 예시적 실시예에 따른 이미지 처리 장치의 동작 방법을 나타낸다. 도 14는 이미지 처리 장치가 프레임 버퍼에 저장되는 데이터 블록 및 메타 데이터를 갱신하는 방법을 나타낸다. 도 13의 방법은 도 1의 이미지 프로세서에서 수행될 수 있으며, 도 1을 참조하여 설명한 내용은 본 실시예에 적용될 수 있다.
도 1 및 도 14를 참조하면, 이미지 프로세서(110)는 프레임 버퍼(FB)에 기저장된 이미지 데이터(IDT)의 복수의 데이터 블록 중 제1 데이터 블록에 대하여 이미지 처리를 수행할 수 있다(S310). 예컨대, 도 13을 참조하여 설명한 바와 같이, 이미지 프로세서(110)는 프레임 버퍼(FB)로부터 제1 데이터 블록을 독출하여 이미지 처리를 수행하거나 또는 외부로부터 수신되거나 내부적으로 새로 생성한 제1 데이터 블록에 대하여 이미지 처리를 수행할 수 있다.
이미지 프로세서(110)는 갱신된(updated) 제1 데이터 블록을 압축할 수 있다(S320). 예컨대 압축기(CMP)가 갱신된 제1 데이터 블록을 인코딩할 수 있다. 이에 따라 제1 압축 데이터 블록이 생성될 수 있다. 제1 압축 데이터 블록은 프레임 버퍼(FB)에 기 저장된 제1 압축 데이터 블록과 상이할 수 있다. 프레임 버퍼(FB)에 저장된 제1 압축 데이터 블록과 구분하기 위하여, S320 단계에서 생성된 제1 압축 데이터 블록은 변경된 제1 압축 데이터 블록으로 지칭하기로 한다.
이미지 프로세서(110)는 변경된 제1 압축 데이터 블록에 대하여 패킹 방향을 결정할 수 있다(S330). 예컨대, 패킹 컨트롤러(PC)는 도 7내지 도 10b를 참조하여 설명한 방법에 다라 패킹 방향을 결정할 수 있다. 따라서, 중복되는 설명은 생략하기로 한다.
이미지 프로세서(110)는 변경된 제1 압축 데이터 블록을 프레임 버퍼의 제1 저장 영역에 선택된 패킹 방향에 따라 패킹할 수 있다(S340). 이때, 제1 저장 영역은 제1 압축 데이터 블록이 저장된 저장 영역으로서, 단계 S340이 수행됨에 따라, 제1 압축 데이터 블록이 갱신될 수 있다.
이미지 프로세서(110)는 변경된 제1 압축 데이터 블록의 데이터 사이즈 및패킹 방향을 기초로 제1 압축 데이터 블록에 대응하는 제1 메타 데이터를 갱신할 수 있다(S350).
도 15는 본 개시의 예시적 실시예에 따른 시스템 온 칩을 나타내는 블록도이다.
도 15를 참조하면, 시스템 온 칩(200a, SoC)은 CPU(210), RAM(random access memory), GPU(230), 센서 인터페이스(240), 메모리 컨트롤러(250) 및 디스플레이 컨트롤러(260)를 포함할 수 있다. 시스템 온 칩(200a)은 통신 모듈,ROM(read only memory) 등과 같이 범용적으로 사용되는 다른 구성들을 더 포함할 수 있다. 시스템 온 칩(200a, SoC)의 구성들, 예컨대, CPU(210), RAM(random access memory), GPU(230), 센서 인터페이스(240), 메모리 컨트롤러(250) 및 디스플레이 컨트롤러(260)는 버스(280)를 통하여 데이터를 송수신할 수 있다. 버스(280)의 표준 규격으로서, AHB(Advanced High-Performance Bus), APB(Advanced Peripheral Bus), AXI(Advanced eXtensible Interface), AXI4, ACE(AXI Coherency Extensions) 등을 포함하는 AMBA(Advanced Microcontroller Bus Architecture) 프로토콜이 적용될 수 있으며, 이 외에도, uNetwork 이나 CoreConnect, OCP-IP의 오픈 코어 프로토콜(Open Core Protocol) 등의 프로토콜이 적용될 수 있다.
CPU(210)는 시스템 온 칩(200a)의 전반적인 동작을 제어할 수 있으며, 하나의 프로세서 코어(Single Core)를 포함하거나, 복수의 프로세서 코어들(Multi-Core)을 포함할 수 있다. CPU(210)는 RAM(230)(또는 ROM)에 저장된 프로그램 및/또는 데이터를 처리 또는 실행할 수 있다.
RAM(220)은 DRAM 또는 SRAM 등의 메모리로 구현될 수 있으며, 또한 RAM(220)은 PRAM, MRAM, RRAM, FRAM 등과 같은 저항성 메모리로 구현될 수 있다. RAM(220)은 프로그램들, 데이터, 및/또는 명령들(instructions)을 일시적으로 저장할 수 있다. 실시예에 있어서 RAM(220)은 메타 데이터(MD)를 저장할 수 있다. 예컨대, 복수의 압축 데이터 블록 각각에 대응하는 메타 데이터를 포함하는 메타 데이터 테이블(도 12a의 MDT)는 메모리(255)에 저장되고, 메타 데이터 테이블(MDT)의 일부 또는 전부가 RAM(220)에 로딩될 수 있다.
GPU(230)는 이미지 데이터, 예컨대 정지 영상 또는 동영상에 대한 이미지 처리를 수행할 수 있다. 예컨대 GPU(230)는 센서 인터페이스(240)를 통해 수신되는 이미지 데이터 또는 시스템 온 칩(200a)의 내무 구성들 중 다른 구성들로부터 수신되는 이미지 데이터에 대하여 이미지 처리를 수행할 수 있다.
GPU(230)는 이미지 처리된 이미지 데이터를 메모리(255)에 저장하거나 또는 디스플레이 컨트롤러(260)를 통해 디스플레이 장치(265)로 제공할 수 있다. 도 1 의 이미지 프로세서(110)가 GPU(230)에 적용될 수 있다. GPU(230)는 압축기(CMP) 및 패킹 컨트롤러(PC)를 포함할 수 있으며, 도 1 내지 도 14를 참조하여 전술한 바와 같이, 이미지 데이터를 복수의 데이터 블록으로 분할하고 복수의 데이터 블록 각각을 압축하여 복수의 압축된 데이터 블록을 생성하며, 복수의 압축된 데이터 블록을 메모리(255)의 프레임 버퍼에 저장할 수 있다. GPU(230)는 복수의 압축된 데이터 블록 각각에 대하여 패킹 방향을 결정하고, 패킹 방향을 기초로 복수의 압축된 데이터 블록 각각을 메모리(255)의 대응하는 저장 영역에 패킹할 수 있다. 또한 GPU(230)는 메타 데이터(220)를 기초로 메모리(255)에 저장된 복수의 압축 데이터 블록의 전부 또는 입부를 독출하고, 또한 변경된 압축 데이터 블록을 메모리(255)에 저장하면서 메타 데이터(MD)를 갱신할 수 있다.
실시예에 있어서, 도 1의 이미지 프로세서(110)는 이미지 데이터에 대하여 이미지 처리를 수행하는 다른 기능 모듈, 예컨대, CPU(210)에 적용되거나, 또는 CPU(210) 및 GPU(230)에 적용될 수 있다.
센서 인터페이스(240)는 시스템 온 칩(200a)과 이미지 센서(245) 간에 데이터 또는 커맨드를 인터페이싱할 수 있으며, 이미지 센서(245)로부터 이미지 데이터를 수신할 수 있다.
메모리 컨트롤러(250)는 시스템 온 칩(200a)과 메모리(255) 간에 데이터 또는 커맨드를 인터페이싱할 수 있다. 도 1을 참조하여 전술한 바와 같이, 메모리(255)는 DRAM이나 SRAM 등의 휘발성 메모리 또는 ReRAM, PRAM 또는 NAND flash 등의 비휘발성 메모리로 구현될 수 있다. 메모리(255)는 메모리 카드(예컨대, MMC, eMMC, SD, micro SD) 등으로 구현될 수도 있다. 메모리(255)는 프레임 버퍼로서 동작할 수 있으며, 압축된 이미지 데이터(CIDT)를 저장할 수 있다. 도 1 내지 도 14를 참조하여 설명한 본 개시의 패킹 방식에 따라 압축된 이미지 데이터(CIDT)를 저장할 수 있다. 또한 메모리(255)는 메타 데이터(MD)를 저장할 수 있다.
디스플레이 컨트롤러(260)는 디스플레이 장치(265)로 출력되는 데이터(예컨대, 이미지 데이터)를 인터페이싱할 수 있다. 디스플레이 장치(265)는 이미지 또는 동영상에 대한 데이터를 LCD(Liquid-crystal display), AMOLED(active matrix organic light emitting diodes) 등의 디스플레이를 통해 출력할 수 있다.
전술한 바와 같이, 이미지 데이터를 압축하고, 압축된 이미지 데이터(CIDT)를 메모리(255)에 저장함에 있어서, 패킹 컨트롤러(PC)가 복수의 압축 데이터 블록 각각에 대하여 패킹 방향을 결정하고, 패킹 방햐을 기초로 압축 데이터 블록을 대응하는 저장 영역에 패킹함으로써, 메모리(255)의 엑세스 횟수가 감소될 수 있다. 따라서, 메모리(255)의 대역폭이 감소될 수 있으며, 시스템 온 칩(200a) 및 시스템 온 칩(200a)을 포함하는 이미지 처리 장치의 동작 속도가 증가하고, 소비 전력이 감소될 수 있다.
도 16은 본 개시의 예시적 실시예에 따른 시스템 온 칩을 나타내는 블록도이다.
도 16을 참조하면, 시스템 온 칩(200b, SoC)은 CPU(210), RAM(random access memory), GPU(230), 센서 인터페이스(240), 메모리 컨트롤러(250), 디스플레이 컨트롤러(260) 및 프레임 버퍼 압축 모듈(270)을 포함할 수 있다. 시스템 온 칩(200a, SoC)의 구성들, 예컨대, CPU(210), RAM(random access memory), GPU(230), 센서 인터페이스(240), 메모리 컨트롤러(250), 디스플레이 컨트롤러(260) 및 프레임 버퍼 압축 모듈(270)은 버스(280)를 통하여 데이터를 송수신할 수 있다.
도 16의 시스템 온 칩(200b)의 구성 및 동작은 도 15의 시스템 온 칩(200a)의 구성 및 동작과 유사하다. 도 15의 시스템 온 칩(200a)과 비교하면, 시스템 온 칩(200b)은 압축기(CMP) 및 패킹 컨트롤러(PC)를 포함하는 프레임 버퍼 압축 모듈(270)을 별도로 구비할 수 있다.
도 16은 이미지 처리를 수행하는 프로세서, 예컨대, CPU(210) 및 GPU(230)가 이미지 데이터를 메모리(255)에 저장하거나, 메모리(255)로부터 저장된 이미지 데이터를 독출할 때, 도 1 내지 도 14를 참조하여 전술한 패킹 방식에 기초하여 이미지 데이터를 압축(또는 압축해제) 및 패킹할 수 있다.
도 17은 본 개시의 예시적 실시예에 따른 시스템 온 칩을 나타내는 블록도이다.
도 17을 참조하면, 시스템 온 칩(200c, SoC)은 CPU(210), RAM(random access memory), GPU(230), 센서 인터페이스(240), 메모리 컨트롤러(250) 및 디스플레이 컨트롤러(260)를 포함할 수 있다. 시스템 온 칩(200a, SoC)의 구성들, 예컨대, CPU(210), RAM(random access memory), GPU(230), 센서 인터페이스(240), 메모리 컨트롤러(250) 및 디스플레이 컨트롤러(260)는 버스(280)를 통하여 데이터를 송수신할 수 있다.
도 17의 시스템 온 칩(200c)의 구성 및 동작은 도 15의 시스템 온 칩(200a)의 구성 및 동작과 유사하다. 다만, 본 실시예에서, 패킹 컨트롤러(250)가 메모리 컨트롤러(250) 내에 구비될 수 있다. 이미지 데이터를 압축하는 압축기(CMP)는 GPU(230)에 구비될 수 있으며, 또는 다른 이미지 처리를 수행하는 기능 모듈, 예컨대 CPU(210)에 구비될 수 있다.
메모리 컨트롤러(250)는 수신되는 복수의 압축 데이터 블록 각각에 대하여 패킹 방향을 결정하고, 결정된 패킹 방향을 기초로 복수의 압축 데이터 블록 각각을 메모리(255)의 대응하는 저장 영역에 패킹할 수 있다.
본 개시에 따른 예시적 실시예들은 기능적인 모듈 및 다양한 처리 단계들로 나타내어질 수 있다. 이러한 기능 블모듈들은 특정 기능들을 실행하는 다양한 개수의 하드웨어 또는/및 소프트웨어 구성들로 구현될 수 있다. 예를 들어, 실시 예는 하나 이상의 마이크로프로세서들의 제어 또는 다른 제어 장치들에 의해서 다양한 기능들을 실행할 수 있는, 메모리, 프로세싱, 로직(logic), 룩 업 테이블(look-up table) 등과 같은 직접 회로 구성들을 채용할 수 있다. 구성 요소들이 소프트웨어 프로그래밍 또는 소프트웨어 요소들로 실행될 수 있는 것과 유사하게, 본 실시 예는 데이터 구조, 프로세스들, 루틴들 또는 다른 프로그래밍 구성들의 조합으로 구현되는 다양한 알고리즘을 포함하여, C, C++, 자바(Java), 어셈블러(assembler) 등과 같은 프로그래밍 또는 스크립팅 언어로 구현될 수 있다. 기능적인 측면들은 하나 이상의 프로세서들에서 실행되는 알고리즘으로 구현될 수 있다. 또한, 본 실시 예는 전자적인 환경 설정, 신호 처리, 및/또는 데이터 처리 등을 위하여 종래 기술을 채용할 수 있다.
이상에서와 같이 도면과 명세서에서 예시적인 실시 예들이 개시되었다. 본 개시에서 사용된 모든 예들 또는 예시적인 용어(예들 들어, 등등)는 본 개시의 기술적 사상을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 개시의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다.
100: 이미지 처리 장치 110: 이미지 프로세서
150: 메모리 200a, 200b, 200c: 시스템 온 칩

Claims (20)

  1. 이미지 프로세서의 동작 방법에 있어서,
    이미지 데이터를 복수의 데이터 블록으로 구분하는 단계;
    복수의 데이터 블록 각각을 압축하는 단계;
    복수의 압축 데이터 블록 각각에 대하여, 메모리 상의 복수의 저장 영역 중 압축 데이터 블록이 저장될 저장 영역의 시작 주소 및 상기 압축 데이터 블록의 데이터 사이즈를 기초로, 상기 저장 영역의 왼쪽 및 오른쪽 중 상기 압축 데이터 블록이 저장될 패킹 방향을 결정하는 단계; 및
    복수의 압축 데이터 블록 각각을 상기 메모리의 상기 복수의 저장 영역 중 대응하는 저장 영역에 선택된 패킹 방향을 기초로 패킹하는 단계를 포함하는 방법.
  2. 제1 항에 있어서, 상기 패킹하는 단계는,
    왼쪽이 상기 패킹 방향으로서 선택된 경우, 상기 저장 영역의 상기 시작 주소부터 상기 압축 데이터 블록을 저장하고,
    오른쪽이 상기 패킹 방향으로서 선택된 경우, 상기 저장 영역의 중간 주소부터 상기 저장 영역의 끝 주소까지 상기 압축 데이터 블록을 저장하는 것을 특징으로 하는 방법.
  3. 제1 항에 있어서, 상기 패킹하는 단계는,
    상기 패킹 방향에 따라 상기 시작 주소 또는 상기 중간 주소를 상기 메모리에 전송하는 단계를 포함하고,
    상기 중간 주소는 오른쪽이 상기 패킹 방향으로서 선택된 경우, 상기 저장 영역의 사이즈, 상기 압축 데이터 블록의 사이즈 및 상기 저장 영역의 상기 시작 주소를 기초로 산출되는 것을 특징으로 하는 방법.
  4. 제1 항에 있어서, 상기 패킹 방향을 결정하는 단계는,
    오른쪽 및 왼쪽 중 결정된 방향으로 상기 압축 데이터 블록이 상기 저장 영역에 패킹될 때, 상기 메모리의 엑세스 단위에 기초한 상기 메모리의 엑세스 횟수가 상대적으로 적은 방향을 상기 패킹 방향으로 결정하는 것을 특징으로 하는 방법.
  5. 제1 항에 있어서, 상기 패킹 방향을 결정하는 단계는,
    상기 압축 데이터 블록을 상기 저장 영역의 왼쪽으로 패킹할 때 및 상기 저장 영역의 오른쪽으로 패킹할 때 각각 요구되는 상기 메모리의 엑세스 횟수를 상기 메모리의 엑세스 단위를 기초로 산출하는 단계;
    왼쪽에 대응하는 제1 횟수 및 오른쪽에 대응하는 제2 횟수를 비교하는 단계; 및
    비교 결과를 기초로 왼쪽 및 오른쪽 중 상기 패킹 방향을 선택하는 단계를 포함하는 방법.
  6. 제1 항에 있어서, 상기 패킹 방향을 결정하는 단계는,
    상기 데이터 블록을 상기 메모리의 엑세스 단위로 나눈 제1 값에서 정수를 제외한 나머지를 기준값으로서 산출하는 단계;
    상기 압축된 데이터 블록을 상기 엑세스 단위로 나눈 제2 값에서 정수를 제외한 나머지를 비교값으로서 산출하는 단계를 포함하고,
    상기 엑세스 단위를 기초로 상기 메모리 상에서 상기 저장 영역의 시작 주소의 정렬 위치를 판단하는 단계; 및
    상기 기준값과 상기 비교값의 비교 결과 및 상기 시작 주소의 상기 정렬 위치를 기초로 상기 패킹 방향을 결정하는 단계를 포함하는 방법.
  7. 제6 항에 있어서, 상기 비교 결과 및 상기 정렬 위치를 기초로 상기 패킹 방향을 결정하는 단계는,
    상기 시작 주소의 상기 정렬 위치가 상기 엑세스 단위에 기초한 상기 메모리 상의 기준 위치들에 대응하는지 판단하는 단계;
    상기 기준값이 상기 비교값 이상인지 판단하는 단계; 및
    상기 정렬 위치가 상기 기준 위치들에 대응하고 상기 기준값이 상기 비교값 이상일 때, 및 상기 정렬 위치가 상기 기준 위치들에 대응하지 않고, 상기 기준값이 상기 비교값 미만일 때, 상기 오른쪽을 상기 패킹 방향으로 결정하는 단계를 포함하는 방법.
  8. 제1 항에 있어서,
    상기 복수의 저장 영역의 전체 사이즈는 상기 이미지 데이터의 사이즈와 동일한 것을 특징으로 하는 방법.
  9. 제1 항에 있어서, 상기 복수의 저장 영역 각각에 대한 상기 시작 주소는, 상기 이미지 데이터의 사이즈 및 상기 복수의 데이터 블록 각각의 사이즈를 기초로 미리 결정되는 것을 특징으로 하는 방법.
  10. 제1 항에 있어서, 상기 복수의 압축 데이터 블록 각각에 대하여, 상기 데이터 사이즈 및 상기 패킹 방향에 대한 정보를 포함하는 메타 데이터를 생성하는 단계를 더 포함하는 방법.
  11. 제1 항에 있어서, 상기 복수의 저장 영역 중 제1 압축 데이터 블록이 패킹된 제1 저장 영역에 대한 제1 시작 주소 및 상기 제1 압축 데이터 블록에 대한 제1 메타 데이터를 기초로, 상기 제1 압축 데이터 블록을 독출하는 단계;
    상기 제1 압축 데이터 블록을 압축 해제하는 단계; 및
    압축 해제된 제1 데이터 블록에 대하여 이미지 처리를 수행하는 단계를 포함하는 방법.
  12. 제10 항에 있어서,
    상기 제1 데이터 블록에 대한 이미지 처리 수행에 따라 제2 데이터 블록이 생성되는 단계;
    상기 제2 데이터 블록을 압축하여 제2 압축 데이터 블록을 생성하는 단계;
    상기 제2 압축 데이터 블록의 데이터 사이즈 및 상기 제1 시작 주소를 기초로 상기 제2 압축 데이터 블록의 패킹 방향을 선택하는 단계; 및
    상기 패킹 방향을 기초로 상기 제2 압축 데이터 블록을 상기 제1 저장 영역에 패킹하는 단계; 및
    상기 제2 압축 데이터 블록의 데이터 사이즈 및 상기 패킹 방향을 기초로 상기 제1 메타 데이터를 갱신하는 단계를 포함하는 방법.
  13. 메모리 및 이미지 프로세서를 포함하는 이미지 처리 장치의 동작 방법에 있어서,
    상기 이미지 프로세서가 이미지 데이터에 포함되는 복수의 데이터 블록 중 제1 데이터 블록을 압축하는 단계;
    상기 이미지 프로세서가 상기 메모리 상의 복수의 저장 영역 중 상기 제1 압축 데이터 블록에 대하여 할당된 제1 저장 영역의 시작 주소 및 상기 제1 압축 데이터 블록의 데이터 사이즈를 기초로 상기 제1 압축 데이터 블록의 패킹 방향을 결정하는 단계; 및
    상기 메모리가 상기 패킹 방향을 기초로 상기 제1 압축 데이터 블록을 상기 제1 저장 영역의 왼쪽 또는 오른쪽에 저장하는 단계를 포함하는 방법.
  14. 제13 항에 있어서, 상기 패킹 방향을 결정하는 단계는,
    상기 제1 압축 데이터 블록을 상기 제1 저장 영역의 왼쪽으로 패킹할 때, 및 오른쪽으로 패킹할 때 각각 요구되는 상기 메모리의 엑세스 횟수를 기초로 상기 패킹 방향을 결정하는 것을 특징으로 하는 방법.
  15. 제13 항에 있어서, 상기 패킹 방향을 결정하는 단계는,
    상기 제1 데이터 블록을 상기 메모리의 엑세스 단위로 나눈 제1 값에서 정수를 제외한 나머지를 기준값으로서 산출하는 단계;
    상기 제1 압축 데이터 블록을 엑세스 단위로 나눈 제2 값에서 정수를 제외한 나머지를 비교값으로서 산출하는 단계를 포함하고,
    상기 엑세스 단위를 기초로 상기 메모리 상에서 상기 제1 저장 영역의 시작 주소의 정렬 위치를 판단하는 단계; 및
    상기 기준값과 상기 비교값의 비교 결과 및 상기 시작 주소의 상기 정렬 위치를 기초로 상기 패킹 방향을 결정하는 단계를 포함하는 방법.
  16. 제15 항에 있어서, 상기 패킹 방향을 결정하는 단계는, 상기 정렬 위치가 상기 기준 위치들에 대응하고 상기 기준값이 상기 비교값 이상일 때, 및 상기 정렬 위치가 상기 기준 위치들에 대응하지 않고, 상기 기준값이 상기 비교값 미만일 때, 오른쪽을 상기 패킹 방향으로 결정하는 것을 특징으로 하는 방법.
  17. 제13 항에 있어서,
    상기 이미지 프로세서가, 상기 제1 압축 데이터 블록에 대하여 상기 데이터 사이즈 및 상기 패킹 방향에 대한 정보를 포함하는 메타 데이터를 생성하는 단계를 더 포함하는 방법.
  18. 제17 항에 있어서,
    상기 이미지 프로세서가, 제1 저장 영역에 대한 시작 주소 및 상기 메타 데이터를 기초로 상기 메모리의 상기 제1 저장 역을 랜덤 엑세스함으로써, 상기 제1 압축 데이터 블록을 독출하는 단계를 더 포함하는 방법.
  19. 제17 항에 있어서,
    상기 이미지 프로세서가 제1 데이터 블록이 변경되는 경우, 변경된 제1 데이터 블록을 압축하는 단계,
    상기 이미지 프로세서가 변경된 제1 압축 데이터 블록 기초로 상기 패킹 방향을 재결정하는 단계;
    상기 이미지 프로세서가 상기 변경된 제1 압축 데이터 블록 및 재결정된 상기 패킹 방향을 기초로 상기 제1 메타 데이터를 업데이트하는 단계; 및
    상기 메모리가 재결정된 상기 패킹 방향을 기초로 상기 변경된 제1 압축 데이터 블록을 상기 제1 저장 영역의 왼쪽 또는 오른쪽에 저장하는 단계를 더 포함하는 방법.
  20. 제13 항에 있어서,
    상기 이미지 프로세서는 시스템 온 칩으로 구현되는 것을 특징으로 하는 방법.
KR1020200001578A 2020-01-06 2020-01-06 이미지 프로세서의 동작 방법, 이미지 처리 장치 및 이미지 처리 장치의 동작 방법 KR20210088304A (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020200001578A KR20210088304A (ko) 2020-01-06 2020-01-06 이미지 프로세서의 동작 방법, 이미지 처리 장치 및 이미지 처리 장치의 동작 방법
US17/034,236 US11417026B2 (en) 2020-01-06 2020-09-28 Operating method of image processor with varying packing directions, image processing apparatus with varied packing directions, and operating method of the image processing apparatus with the varied packing directions
DE102020127737.7A DE102020127737A1 (de) 2020-01-06 2020-10-21 Betriebsverfahren eines bildprozessors, bildverarbeitungsvorrichtung und betriebsverfahren der bildverarbeitungsvorrichtung
CN202110010442.4A CN113079380A (zh) 2020-01-06 2021-01-05 图像处理器的操作方法、图像处理装置及其操作方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200001578A KR20210088304A (ko) 2020-01-06 2020-01-06 이미지 프로세서의 동작 방법, 이미지 처리 장치 및 이미지 처리 장치의 동작 방법

Publications (1)

Publication Number Publication Date
KR20210088304A true KR20210088304A (ko) 2021-07-14

Family

ID=76432440

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200001578A KR20210088304A (ko) 2020-01-06 2020-01-06 이미지 프로세서의 동작 방법, 이미지 처리 장치 및 이미지 처리 장치의 동작 방법

Country Status (4)

Country Link
US (1) US11417026B2 (ko)
KR (1) KR20210088304A (ko)
CN (1) CN113079380A (ko)
DE (1) DE102020127737A1 (ko)

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3781634B2 (ja) * 2001-04-26 2006-05-31 シャープ株式会社 画像処理装置および画像処理方法並びに携帯用映像機器
US6825847B1 (en) 2001-11-30 2004-11-30 Nvidia Corporation System and method for real-time compression of pixel colors
WO2004092960A2 (en) 2003-04-16 2004-10-28 Koninklijke Philips Electronics N.V. Selectable procession / decompression for data stored in memory
GB2411976B (en) * 2003-12-09 2006-07-19 Advanced Risc Mach Ltd A data processing apparatus and method for moving data between registers and memory
US8078636B2 (en) * 2005-08-24 2011-12-13 Temporal Dynamics, Inc. Database heap management system with variable page size and fixed instruction set address resolution
JP5597175B2 (ja) 2011-09-26 2014-10-01 株式会社東芝 画像圧縮装置及び画像処理システム
JP5566411B2 (ja) 2012-01-26 2014-08-06 京セラドキュメントソリューションズ株式会社 画像読取装置
US9299166B2 (en) 2012-12-13 2016-03-29 Qualcomm Incorporated Image compression method and apparatus for bandwidth saving
JP5969914B2 (ja) 2012-12-20 2016-08-17 株式会社日立情報通信エンジニアリング 動画像圧縮伸張装置
US9177393B2 (en) 2013-02-04 2015-11-03 Qualcomm Incorporated Mixed mode for frame buffer compression
WO2014163241A1 (ko) 2013-04-02 2014-10-09 주식회사 칩스앤미디어 동영상 처리 방법 및 장치
CN111052667B (zh) 2018-02-14 2023-01-17 Lg 电子株式会社 发送和接收下行链路数据信道的方法及其设备
US11232039B2 (en) * 2018-12-10 2022-01-25 Advanced Micro Devices, Inc. Cache for storing regions of data

Also Published As

Publication number Publication date
CN113079380A (zh) 2021-07-06
US11417026B2 (en) 2022-08-16
DE102020127737A1 (de) 2021-07-08
US20210209805A1 (en) 2021-07-08

Similar Documents

Publication Publication Date Title
US20210326280A1 (en) Storage device for interfacing with host and method of operating the host and the storage device
US10943183B2 (en) Electronics device performing software training on memory channel and memory channel training method thereof
US20190073132A1 (en) Method and system for active persistent storage via a memory bus
US9164676B2 (en) Storing multi-stream non-linear access patterns in a flash based file-system
JP5078979B2 (ja) データ処理方法および装置、処理システム、コンピュータ処理システム、コンピュータのネットワークおよび記憶媒体
US10042576B2 (en) Method and apparatus for compressing addresses
US20140164686A1 (en) Mobile device and method of managing data using swap thereof
TWI744289B (zh) 使用多個最後階層快取線提供記憶體帶寬壓縮之以一中央處理單元(cpu)為基礎之系統及方法
US20160218739A1 (en) Data access methods and data access devices utilizing the same
US11144464B2 (en) Information processing device, access controller, information processing method, and computer program for issuing access requests from a processor to a sub-processor
US10043234B2 (en) System and method for frame buffer decompression and/or compression
WO2007135602A1 (en) Electronic device and method for storing and retrieving data
US20240086113A1 (en) Synchronous write method and device, storage system and electronic device
US9971549B2 (en) Method of operating a memory device
KR20140073955A (ko) 메모리 시스템 및 그 구동 방법
US10657274B2 (en) Semiconductor device including memory protector
US9471584B2 (en) Demand paging method for mobile terminal, controller and mobile terminal
KR20210088304A (ko) 이미지 프로세서의 동작 방법, 이미지 처리 장치 및 이미지 처리 장치의 동작 방법
KR102353859B1 (ko) 컴퓨팅 장치 및 비휘발성 듀얼 인라인 메모리 모듈
KR20140065196A (ko) 메모리 시스템 및 그 구동 방법
US11221792B1 (en) Storage method using memory chain addressing
CN115495020A (zh) 文件处理方法、装置、电子设备和可读存储介质
US20160283416A1 (en) Bus interface device, semiconductor integrated circuit device including the same, and method of operating the same
US20060098031A1 (en) System and method for effectively performing image rotation procedures in a compressed domain
WO2014125319A1 (en) Display processor and method for display processing

Legal Events

Date Code Title Description
A201 Request for examination