KR20140125161A - 메모리 장치 및 그의 데이터 처리 방법 - Google Patents
메모리 장치 및 그의 데이터 처리 방법 Download PDFInfo
- Publication number
- KR20140125161A KR20140125161A KR1020130042973A KR20130042973A KR20140125161A KR 20140125161 A KR20140125161 A KR 20140125161A KR 1020130042973 A KR1020130042973 A KR 1020130042973A KR 20130042973 A KR20130042973 A KR 20130042973A KR 20140125161 A KR20140125161 A KR 20140125161A
- Authority
- KR
- South Korea
- Prior art keywords
- tile
- tiles
- storage unit
- input data
- data
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
실시예에 따른 메모리 장치는 입력 데이터를 구성하는 복수의 픽셀들을 기 설정된 픽셀 단위로 분할하여 복수의 타일들을 생성하는 타일 생성 유닛 및 복수의 타일들을 구성하는 픽셀들의 휘도 정보 및 색차 정보를 순차적으로 나열하여 복수의 타일들을 저장하는 타일 저장 유닛을 포함한다.
Description
아래의 실시예들은 데이터 처리를 위한 메모리 장치 및 그의 데이터 처리 방법에 관한 것이다.
일반적으로, DRAM(Dynamic Random Access Memory), SDRAM(Asynchronous DRAM) 등의 메모리 장치는 복수의 뱅크(bank)로 구성된다. 이 메모리 장치들은 복수의 뱅크들 각각에 메모리 주소를 할당한다.
일반적으로, 메모리 장치는 입력된 데이터를 매크로 블록(macro block) 단위로 메모리에 저장한다. 이때, 연속하는 매크로 블록들 각각에 포함된 데이터들은 동일한 뱅크에 저장된다.
그런데, 외부로부터의 메모리 참조(access)에 따라 뱅크에 저장된 데이터들을 리딩하는 경우, 메모리 장치는 데이터마다 리딩 준비 시간이 필요하다. 따라서, 동일한 뱅크에 저장된 복수의 데이터들을 리딩하는 경우, 메모리 장치는 데이터마다 발생하는 리딩 준비 시간으로 인해 오버헤드(overhead)가 증가한다.
또한, 매크로 블록 중 일부 데이터에 대한 메모리 참조가 발생하는 경우에도, 메모리 장치는 해당 매크로 블록 전체를 리딩해야 하므로 오버헤드(overhead)가 증가한다.
실시예에 따른 메모리 장치는 입력 데이터를 구성하는 복수의 픽셀들을 기 설정된 픽셀 단위로 분할하여 복수의 타일들을 생성하는 타일 생성 유닛 및 상기 복수의 타일들을 구성하는 픽셀들의 휘도 정보 및 색차 정보를 순차적으로 나열하여 상기 복수의 타일들을 저장하는 타일 저장 유닛을 포함한다.
실시예에 따른 메모리 장치는 입력 데이터를 구성하는 복수의 픽셀들을 기 설정된 픽셀 단위로 분할하여 복수의 메인 타일을 생성하는 제1 타일 생성 유닛, 상기 복수의 메인 타일을 기 설정된 서브 픽셀 단위로 분할하여 복수의 서브 타일을 생성하는 제2 타일 생성 유닛 및 상기 복수의 서브 타일을 구성하는 픽셀들의 휘도 정보 및 색차 정보를 순차적으로 나열하여 상기 복수의 서브 타일들을 저장하는 타일 저장 유닛을 포함한다.
실시예에 따른 데이터 처리 방법은 입력 데이터를 구성하는 복수의 픽셀들을 기 설정된 픽셀 단위로 분할하여 복수의 타일들을 생성하는 단계 및 상기 복수의 타일들을 구성하는 픽셀들의 휘도 정보 및 색차 정보를 순차적으로 나열하여 상기 복수의 타일들을 저장하는 단계를 포함한다.
도 1은 실시예에 따른 메모리 장치의 구성을 나타내는 블록도이다.
도 2는 다른 실시예에 따른 메모리 장치의 구성을 나타내는 블록도이다.
도 3은 또 다른 실시예에 따른 메모리 장치의 구성을 나타내는 블록도이다.
도 4a 내지 도 4c는 실시예에 따른 입력 데이터를 저장하는 방법을 도시한 도면이다.
도 5a 내지 도 5c는 다른 실시예에 따른 입력 데이터를 저장하는 방법을 도시한 도면이다.
도 6은 비교예에 따른 입력 데이터를 저장하는 방법을 도시한 도면이다.
도 7a 내지 도 7c는 다른 실시예에 따른 입력 데이터를 저장하는 방법을 도시한 도면이다.
도 8은 실시예에 따른 입력 데이터를 타일링하는 방법을 도시한 도면이다.
도 9a 내지 도 9b는 다양한 실시예들에 따른 메모리 접근에 따른 데이터 리딩 및 전송 방법을 도시한 도면이다.
도 2는 다른 실시예에 따른 메모리 장치의 구성을 나타내는 블록도이다.
도 3은 또 다른 실시예에 따른 메모리 장치의 구성을 나타내는 블록도이다.
도 4a 내지 도 4c는 실시예에 따른 입력 데이터를 저장하는 방법을 도시한 도면이다.
도 5a 내지 도 5c는 다른 실시예에 따른 입력 데이터를 저장하는 방법을 도시한 도면이다.
도 6은 비교예에 따른 입력 데이터를 저장하는 방법을 도시한 도면이다.
도 7a 내지 도 7c는 다른 실시예에 따른 입력 데이터를 저장하는 방법을 도시한 도면이다.
도 8은 실시예에 따른 입력 데이터를 타일링하는 방법을 도시한 도면이다.
도 9a 내지 도 9b는 다양한 실시예들에 따른 메모리 접근에 따른 데이터 리딩 및 전송 방법을 도시한 도면이다.
이하에서, 첨부된 도면을 참조하여 본 발명에 따른 실시예들을 상세히 설명한다. 그러나, 본 발명이 실시예들에 의해 제한되거나 한정되는 것은 아니다. 또한, 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
도 1은 실시예에 따른 메모리 장치의 구성을 나타내는 블록도이다.
도 1에 도시된 메모리 장치(100)는 타일 생성 유닛(110) 및 타일 저장 유닛(120)을 포함한다. 메모리 장치(100)는 입력 데이터가 수신될 경우, 이 입력데이터를 타일링(tiling)하여 저장할 수 있다.
입력 데이터는 연속하는 복수의 매크로 블록 단위로 메모리 장치(100)에 저장될 수 있다. 이 중 각 매크로 블록은 해당 매크로 블록을 구성하는 픽셀들의 휘도 정보(Y) 및 색차 정보(UV)가 구분되어 저장된 구조를 가질 수 있다.
실시예에 따른 메모리 장치(100)는 입력 데이터를 매크로 블록 단위로 저장하는 것이 아니라, 매크로 블록을 복수의 타일들로 분할하여 타일 단위로 저장할 수 있다.
타일 생성 유닛(110)은 입력 데이터를 구성하는 복수의 픽셀들을 기 설정된 픽셀 단위로 분할하여 복수의 타일들을 생성할 수 있다. 따라서, 각 타일은 분할된 영역에 포함된 복수의 픽셀들에 대한 픽셀 정보를 포함할 수 있다. 이 경우, 픽셀 정보는 해당 픽셀의 휘도 정보(Y) 및 색차 정보(U, V)를 포함할 수 있다.
타일 저장 유닛(120)은 복수의 타일들을 구성하는 픽셀들의 휘도 정보(Y) 및 색차 정보(U, V)를 순차적으로 나열하여 복수의 타일을 저장할 수 있다. 구체적으로, 타일 저장 유닛(120)은 복수의 타일들을 구성하는 픽셀들의 휘도 정보(Y)를 나열하고, 휘도 정보(Y)에 이어 색차 정보(U, V)를 순차적으로 나열할 수 있다. 타일 저장 유닛(120)은 메모리 장치(100)에서 저장/처리 가능한 크기로 복수의 타일들을 저장하기 위하여 휘도 정보(Y)와 색차 정보(U, V)에 더미 데이터(dummy data)를 나열할 수 있다. 더미 데이터는 타일의 크기를 맞춰주기 위한 것일 뿐, 의미없는 가상의 데이터가 될 수 있다.
타일 저장 유닛(120)은 하나의 타일을 구성하는 픽셀들의 휘도 정보(Y) 및 색차 정보(U, V)를 하나의 타일에 저장하기 때문에, 일부 데이터에 대한 메모리 접근(access)이 발생될 경우, 일부 데이터에 대응하는 픽셀들을 포함하는 타일만을 리딩할 수 있다.
도 2는 다른 실시예에 따른 메모리 장치의 구성을 나타내는 블록도이다.
도 2를 참조하면, 메모리 장치(200)는 타일 생성 유닛(210), 타일 저장 유닛(220), 타일 리딩 유닛(230), 타일 전송 유닛(240)을 포함할 수 있다.
타일 생성 유닛(210)은 입력 데이터를 구성하는 복수의 픽셀들을 기 설정된 픽셀 단위로 분할하여 복수의 타일들을 생성할 수 있다.
타일 저장 유닛(220)은 복수의 타일들을 구성하는 픽셀들의 휘도 정보(Y) 및 색차 정보(U, V)를 순차적으로 나열하여 복수의 타일을 저장할 수 있다.
타일 저장 유닛(220)은 복수의 타일들을 저장하기 위한 메모리 주소(address)를 할당하는 주소 할당 유닛(221)을 포함할 수 있다. 주소 할당 유닛(221)은 복수의 타일들에 서로 다른 메모리 주소를 할당할 수 있다.
타일 저장 유닛(220)은 주소 할당 유닛(221)에 의해 할당된 메모리 주소에 복수의 타일들을 저장할 수 있다. 주소 할당 유닛(221)은 메모리 주소에 따라 연속하는 타일들을 수평(horizontal) 방향으로 순차 저장할 수 있으며, 또는 메모리 주소에 따라 연속하는 타일들을 수직(vertical) 방향으로 순차 저장할 수 있다.
타일 리딩 유닛(230)은 입력 데이터 중 일부 데이터에 대한 메모리 접근(access)이 발생될 경우, 타일 저장 유닛(220)으로부터 일부 데이터에 대응하는 픽셀들을 포함하는 적어도 하나 이상의 타일을 리딩(reading)할 수 있다. 예를 들어, 입력 데이터를 구성하는 매크로 블록 중에서도 일부 데이터에 대한 메모리 접근이 발생할 수 있다. 이 경우, 타일 리딩 유닛(230)은 복수의 타일들 중 일부 데이터에 대응하는 픽셀들을 포함하는 타일들만을 선택적으로 리딩할 수 있다.
타일 전송 유닛(240)은 메모리 접근이 발생된 유닛에, 타일 리딩 유닛(230)에 의해 선택적으로 리딩된 타일들을 전송할 수 있다. 따라서, 입력 데이터를 타일링하고, 해당 타일을 구성하는 픽셀들의 휘도 정보(Y) 및 색차 정보(U, V)를 순차적으로 나열하여 타일을 저장함으로써, 일부 데이터에 메모리 접근시, 메모리 접근에 대응하는 타일만을 선택적으로 리딩하여 전송할 수 있다. 따라서, 메모리 장치(200)은 향상된 데이터 전송 효율을 가질 수 있다.
도 3은 또 다른 실시예에 따른 메모리 장치의 구성을 나타내는 블록도이다.
도 3를 참조하면, 메모리 장치(200)는 제1 타일 생성 유닛(310), 제2 타일 생성 유닛(320), 타일 저장 유닛(330), 타일 리딩 유닛(340) 및 타일 전송 유닛(350)을 포함할 수 있다.
제1 타일 생성 유닛(310)은 입력 데이터를 구성하는 복수의 픽셀들을 기 설정된 픽셀 단위로 분할하여 복수의 메인 타일을 생성할 수 있다. 예를 들어, 32×12 픽셀의 입력 데이터를 16×4 픽셀 단위로 분할하여 제1 내지 제6 메인 타일을 생성할 수 있다.
제2 타일 생성 유닛(320)은 복수의 메인 타일을 기 설정된 서브 픽셀 단위로 분할하여 복수의 서브 타일을 생성할 수 있다. 예를 들어, 16×4 픽셀의 메일 타일을 4 픽셀 단위로 분할하여 각 메일 타일이 1 타일 내지 16 타일을 생성할 수 있다.
타일 저장 유닛(330)은 복수의 서브 타일을 구성하는 픽셀들의 휘도 정보 및 색차 정보를 순차적으로 나열하여 상기 복수의 서브 타일들을 저장할 수 있다. 구체적으로, 타일 저장 유닛(330)은 복수의 서브 타일들을 구성하는 픽셀들의 휘도 정보(Y)를 나열하고, 휘도 정보(Y)에 이어 색차 정보(U, V)를 순차적으로 나열할 수 있다. 또한, 타일 저장 유닛(330)은 메모리 장치(300)에서 저장/처리 가능한 크기로 복수의 서브 타일들을 저장하기 위하여 색차 정보(U, V)에 이어 더미 데이터(dummy data)를 나열할 수 있다. 따라서, 하나의 서브 타일은 해당 타일을 구성하는 픽셀들의 "휘도 정보(Y)-색차 정보(U, V)-더미 데이터(dummy data)" 순서로 구성될 수 있다.
타일 저장 유닛(330)은 주소 할당 유닛(331)에 의해 할당된 메모리 주소에 복수의 서브 타일들을 저장할 수 있다. 주소 할당 유닛(331)은 메모리 주소에 따라 연속하는 서브 타일들을 수평(horizontal) 방향으로 순차 저장할 수 있으며, 또는 메모리 주소에 따라 연속하는 서브 타일들을 수직(vertical) 방향으로 순차 저장할 수 있다.
타일 리딩 유닛(340)은 입력 데이터 중 일부 데이터에 대한 메모리 접근(access)이 발생될 경우, 타일 저장 유닛(330)으로부터 일부 데이터에 대응하는 픽셀들을 포함하는 적어도 하나 이상의 서브 타일을 리딩(reading)할 수 있다.
타일 전송 유닛(350)은 리딩된 적어도 하나 이상의 서브 타일에 대한 휘도 정보 및 색차 정보를 순차적으로 전송할 수 있다. 예를 들어, 상기 메모리 접근이 연속하는 1 타일 및 2 타일과 관련된 경우, 1 타일에 대한 휘도 정보 및 색차 정보를 전송하고, 연속하여 2 타일에 대한 휘도 정보 및 색차 정보를 전송할 수 있다.
도 3에 도시된 메모리 장치(300)에 따르면, 입력 데이터를 작은 픽셀 단위로 타일링하고, 타일들을 구성하는 픽셀에 대한 휘도 정보(Y) 및 색차 정보(U, V)를 순차적으로 나열하여 타일들을 저장함으로써, 메모리 접근시 타일 단위로 데이터를 전송할 수 있다. 따라서, 메모리 장치(300)는 향상된 데이터 전송 효율을 가질 수 있다.
도 4a 내지 도 4c는 실시예에 따른 입력 데이터를 저장하는 방법을 도시한 도면이다. 실시예에 따르면, 입력 데이터를 저장하거나, 리딩하거나, 외부에 전송하는 과정들은 데이터 처리로 간주할 수 있다.
도 4a는 일반적인 매크로 블록을 나타내는 도면이다. 입력 데이터는 연속하는 복수의 매크로 블록 단위를 가질 수 있다.
매크로 블록은 복수의 픽셀들에 대한 휘도 정보(Y)와 색차 정보(U, V)를 포함할 수 있으며, 휘도 정보(Y)와 색차 정보(U, V)는 구분되어 저장될 수 있다. 도 4a에 도시된 바와 같이, 매크로 블록이 그대로 저장될 경우에는, 매크로 블록 중 일부 데이터에 대한 메모리 접근이 발생된다 하더라도, 매크로 블록 전체를 리딩하여 외부로 전송해야 한다. 이는 메모리 접근에 따른 오버헤드를 증가시킬 수 있다.
도 4b 및 도 4c는 실시예에 따라 입력 데이터를 처리하는 방법을 도시한 도면이다.
도 4b는 도 4a에 도시된 16×16 픽셀 크기의 매크로 블록에서 4개의 픽셀 단위로 분할하여 제1 내지 제64 타일을 생성할 수 있다.
제1 타일은 매크로 블록에서 4개의 픽셀들의 휘도 정보(U)인 “0,1,2,3”과, 해당 픽셀들의 색차 정보(U)인 “0”과, 해당 픽셀들의 색차 정보(V)인 “0”을 순차적으로 나열하고, 타일의 크기를 맞춰주기 위하여 더미 데이터를 나열하는 방식으로 저장될 수 있다. 이 경우, 휘도 정보(U)가 4 Byte, 색차 정보(V)가 1 Byte, 색차 정보(V)가 1 Byte, 더미 데이터가 2 Byte를 갖는 것으로, 제1 타일은 8×1 Byte가 될 수 있다. 이 같은 방식으로 제2 내지 제64 타일들에 대해서도 휘도 정보(U), 색차 정보(U, V) 및 더미 데이터를 순차적으로 나열하여 저장할 수 있다.
도 4c는 도 4a에 도시된 16×16 픽셀 크기의 매크로 블록에서 4개의 픽셀 단위로 분할하여 타일링한 것으로, 이 타일링에 의해 제1 내지 제32 타일을 생성할 수 있다.
제1 타일은 매크로 블록에서 8개의 픽셀들의 휘도 정보(U)인 “0,1,2,3,4,5,6,7”과, 해당 픽셀들의 색차 정보(U)인 “0,1”과, 해당 픽셀들의 색차 정보(V)인 “0,1”을 순차적으로 나열하고, 타일의 크기를 맞춰주기 위하여 더미 데이터를 나열하는 방식으로 생성될 수 있다. 이 경우, 휘도 정보(U)가 8 Byte, 색차 정보(V)가 2 Byte, 색차 정보(V)가 2 Byte, 더미 데이터가 4 Byte를 갖는 것으로, 제1 타일은 16×1 Byte가 될 수 있다. 이 같은 방식으로 제2 내지 제32 타일들에 대해서도 휘도 정보(U), 색차 정보(U, V) 및 더미 데이터를 순차적으로 나열하여 저장할 수 있다.
도 5a 내지 도 5c는 다른 실시예에 따른 입력 데이터를 저장하는 방법을 도시한 도면이다.
도 5a는 16×4 픽셀(px)의 입력 데이터(500)를 도시하고 있으며, 이 입력 데이터(500)를 8 픽셀 단위로 분할하여 1 타일 내지 8 타일을 생성할 수 있다. 실시예에 따르면, 1 타일 내지 8 타일을 저장할 경우, 각 타일에 대한 휘도 정보(Y) 및 색차 정보(U, V)를 순차적으로 나열하여 저장할 수 있다.
도 5b 및 도 5c에서 하나의 타일은 8개의 픽셀들의 휘도 정보(U)와, 8개의 픽셀들의 색차 정보(U, V)를 순차적으로 나열하고, 타일의 크기를 맞춰주기 위하여 더미 데이터를 나열하는 방식으로 저장될 수 있다. 이 경우, 휘도 정보(U)가 8 Byte, 색차 정보(V)가 2 Byte, 색차 정보(V)가 2 Byte, 더미 데이터가 4 Byte를 갖는 것으로, 하나의 타일은 16×1 Byte가 될 수 있다. 이 같은 방식으로 2 타일 내지 8 타일들에 대해서도 휘도 정보(U), 색차 정보(U, V) 및 더미 데이터를 순차적으로 나열하여 저장할 수 있다.
도 5b에 도시된 바와 같이, 전체 32×4 Byte 크기를 갖는 1 타일 내지 8 타일은 수평 방향으로 순차 저장될 수 있다. 또한, 도 5c에 도시된 바와 같이, 전체 32×4 Byte 크기를 갖는 1 타일 내지 8 타일은 수직 방향으로 순차 저장될 수 있다.
도 5a에 도시된 입력 데이터가 타일링되어 도 5b 또는 도 5c에 도시된 구조로 저장될 경우, 메모리 접근에 따른 데이터 전송 효율이 향상될 수 있다. 예를 들어, 도 5a에서 1 타일을 구성하는 픽셀들에 대한 메모리 접근이 발생될 경우, 메모리 장치는 1 타일을 리딩하여 외부로 전송할 수 있다. 이 1 타일은 해당 픽셀들에 대한 휘도 정보(Y) 및 색차 정보(U, V)를 모두 포함하고 있기 때문에, 메모리 장치는 도 5b 또는 도 5c와 같은 저장 구조에서, 1 타일을 리딩하여 1 타일에 대응하는 16×1 Byte의 정보를 한번에 전송할 수 있다.
도 6은 비교예에 따른 입력 데이터를 저장하는 방법을 도시한 도면이다.
비교예에 따르면, 도 5a에 도시된 바와 같이, 1 타일 내지 8 타일을 저장할 경우, 1 타일 내지 8 타일의 휘도 정보(Y)를 모두 나열하고, 이 휘도 정보(Y) 다음에 1 타일 내지 8 타일의 색차 정보(U, V)를 모두 나열하여 저장할 수 있다.
구체적으로, 도 6을 참조하면, 하나의 타일은 8개의 픽셀들의 휘도 정보(U)와 색차 정보(V)를 포함할 수 있다. 비교예에서는, 1 타일 내지 8 타일의 휘도 정보(U)를 모두 나열하고, 그 다음에 1 타일 내지 8 타일의 색차 정보(U)를 모두 나열한 후, 그 다음에 1 타일 내지 8 타일의 색차 정보(V)를 모두 나열하고, 그 다음에 타일의 크기를 맞춰주기 위하여 더미 데이터를 나열하는 방식으로 1 타일 내지 8 타일이 저장될 수 있다.
따라서, 도 6에 도시된 바와 같이, 전체 16×16 Byte 크기를 갖는 1 타일 내지 8 타일은 휘도 정보(Y)와 색차 정보(U,V)가 분리되어 저장될 수 있다.
도 5a에 도시된 입력 데이터가 타일링되어 도 6에 도시된 구조로 저장될 경우, 메모리 접근에 따른 데이터 전송 효율이 저하될 수 있다. 예를 들어, 도 5a에서 1 타일을 구성하는 픽셀들에 대한 메모리 접근이 발생될 경우, 메모리 장치는 16×16 Byte 전체를 참조해야 한다. 구체적으로, 1타일을 구성하는 픽셀들의 휘도 정보(Y) 및 색차 정보(U, V)가 분리되어 저장되어 있기 때문에, 16×16 Byte 전체를 참조하여 1 타일을 구성하는 픽셀들의 휘도 정보(Y) 및 색차 정보(U, V)를 리딩할 수 있다.
따라서, 도 6에 도시된 것과 같은 저장 방식에 따르면, 1 타일을 구성하는 픽셀들의 휘도 정보(Y) 및 색차 정보(Y)를 리딩하기 위하여, 16×16 Byte 전체에 대한 비연속적인 참조가 여러 번 발생하기 때문에, 오버헤드(overhead)가 증가할 수 있다.
도 7a 내지 도 7c는 다른 실시예에 따른 입력 데이터를 저장하는 방법을 도시한 도면이다.
도 7a는 16×4 픽셀(px)의 입력 데이터(700)를 도시하고 있으며, 이 입력 데이터(700)를 4 픽셀 단위로 분할하여 1 타일 내지 16 타일을 생성할 수 있다. 실시예에 따르면, 1 타일 내지 16 타일을 저장할 경우, 각 타일에 대한 휘도 정보(Y) 및 색차 정보(U, V)를 순차적으로 나열하여 저장할 수 있다.
도 7b 및 도 7c에서 하나의 타일은 4개의 픽셀들의 휘도 정보(U)와, 4개의 픽셀들의 색차 정보(U, V)를 순차적으로 나열하고, 타일의 크기를 맞춰주기 위하여 더미 데이터를 나열하는 방식으로 저장될 수 있다. 이 경우, 휘도 정보(U)가 4 Byte, 색차 정보(V)가 1 Byte, 색차 정보(V)가 1 Byte, 더미 데이터가 2 Byte를 갖는 것으로, 하나의 타일은 8×1 Byte가 될 수 있다. 이 같은 방식으로 2 타일 내지 16 타일들에 대해서도 휘도 정보(U), 색차 정보(U, V) 및 더미 데이터를 순차적으로 나열하여 저장할 수 있다.
도 7b에 도시된 바와 같이, 전체 32×4 Byte 크기를 갖는 1 타일 내지 16 타일은 수평 방향으로 순차 저장될 수 있다. 또한, 도 7c에 도시된 바와 같이, 전체 32×4 Byte 크기를 갖는 1 타일 내지 16 타일은 수직 방향으로 순차 저장될 수 있다.
한편, 도 7a에 도시된 입력 데이터(700)는 도 5a에 도시된 입력 데이터(500)와 동일하나, 분할된 픽셀 단위가 다르며, 그로 인해 타일의 수가 다르다.
구체적으로, 도 7a에 도시된 입력 데이터(700)는 4 픽셀 단위로 분할되어 16개의 타일로 구성되는 반면, 도 5a에 도시된 입력 데이터(500)는 8 픽셀 단위로 분할되어 8개의 타일로 구성된다. 동일한 입력 데이터라 하더라도, 작은 픽셀 단위로 분할하여 보다 많은 수의 타일을 생성할 경우, 메모리 접근에 따른 데이터 전송 효율이 보다 향상될 수 있다.
예를 들어, 도 5a에 도시된 입력 데이터(500)에서 A 영역에 대한 메모리 참조가 발생할 경우, 메모리 장치는 도 5a에 도시된 입력 데이터(500)에서 1 타일, 2 타일, 3 타일 및 4 타일을 리딩하여 외부로 전송할 수 있다. 예를 들어, 16×1 Byte의 크기를 갖는 4개의 타일을 전송할 수 있다.
반면, 메모리 장치는 도 7a에 도시된 입력 데이터(700)에서 B 영역에 대한 메모리 참조가 발생할 경우, 메모리 장치는 도 7a에 도시된 입력 데이터(700)에서 2 타일, 3 타일, 6 타일, 7 타일을 리딩하여 외부로 전송할 수 있다. 예를 들어, 8×1 Byte의 크기를 갖는 4개의 타일을 전송할 수 있다.
이 같이 입력 데이터라 하더라도, 보다 작은 픽셀 단위로 분할하여 보다 많은 수의 타일을 생성할 경우, 메모리 접근에 따른 데이터 전송량이 감소되어 데이터 전송 효율이 향상될 수 있다.
도 8은 실시예에 따른 입력 데이터를 타일링하는 방법을 도시한 도면이다. 도 8를 참조하면, 32×12 픽셀의 입력 데이터(800)가 도시되어 있으며, 메모리 장치는 32×12 픽셀의 16×4 픽셀 단위로 분할하여 제1 내지 제6 메인 타일(810, 820, 830, 840, 850, 860)을 생성하고, 제1 내지 제6 메인 타일(810, 820, 830, 840, 850, 860)을 기 설정된 서브 픽셀 단위로 분할하여 복수의 서브 타일을 생성할 수 있다.
예를 들어, 메모리 장치는 16×4 픽셀의 제1 메인 타일(810)을 4 픽셀 단위로 분할하여 1 타일 내지 16 타일을 생성할 수 있다. 1 타일 내지 16 타일을 저장할 경우에는, 각 타일을 구성하는 픽셀에 대한 휘도 정보(Y) 및 색차 정보(U, V)를 순차적으로 나열하여 저장할 수 있다. 구체적으로는, 도 5b 및 도 5c에 도시된 저장 방식을 이용하거나, 도 7b 및 도 7c에 도시된 저장 방식을 이용할 수 있다.
도 9a 및 도 9b는 다양한 실시예들에 따른 메모리 접근에 따른 데이터 리딩 및 전송 방법을 도시한 도면이다.
도 9a는 16×4 픽셀(px)의 입력 데이터(900)를 도시하고 있으며, 이 입력 데이터(900)는 4 픽셀 단위로 분할되어 1 타일 내지 16 타일로 구성되며, 1 타일 내지 16 타일은 해당 타일을 구성하는 픽셀들에 대한 휘도 정보(Y) 및 색차 정보(U, V)가 순차적으로 나열되어 저장될 수 있다.
도 9a에 도시된 입력 데이터(900)에 대하여 메모리 접근이 발생할 경우, 메모리 장치는 메모리 접근에 대응하는 타일을 확인한 후, 1 타일 내지 16 타일 중 적어도 하나 이상의 타일을 리딩하여 외부로 전송할 수 있다.
예를 들어, 도 9a에 도시된 입력 데이터(900)에서 c 영역에 대한 메모리 접근이 발생할 경우, 메모리 장치는 1 타일 내지 16 타일 중 1 타일, 5 타일, 9 타일, 13 타일이 c 영역에 대응하는 타일임을 확인한 후, 1 타일, 5 타일, 9 타일, 13 타일을 리딩하여 외부로 전송할 수 있다.
1 타일, 5 타일, 9 타일, 14 타일을 외부로 전송하는 경우, 메모리 장치는 도 9b에 도시된 것과 같은 전송 방식을 이용할 수 있다.
먼저, 메모리 장치는 1 타일을 리딩하여 외부로 전송할 수 있다. 이 경우, 1 타일은 1 타일을 구성하는 픽셀들의 4 Byte의 휘도 정보(Y)와 2 Byte의 색차 정보(U, V), 2 Byte의 더미 데이터가 순차적으로 나열된 구조를 가질 수 있다. 이 1 타일에 연속하여 5 타일, 9 타일 및 13 타일을 외부로 전송할 수 있다.
한편, 1 타일, 5 타일, 9 타일 및 13 타일에서 c 영역에 해당하는 픽셀은 2 픽셀로, 이 2 픽셀에 대한 휘도 정보(Y)와 색차 정보(U, V)가 메모리 접근에 따른 요청 데이터가 될 수 있으며, 나머지 2 픽셀에 대한 휘도 정보(Y)와 더미 데이터가 비요청 데이터가 될 수 있다. 따라서, 1 타일, 5 타일, 9 타일 및 13 타일을 외부로 전송하는 경우, 요청 데이터는 16 Byte 크기를 가질 수 있으며, 비요청 데이터는 16 Byte 크기를 가질 수 있다.
이 같은 데이터 전송 방식에 따르면, 요청 데이터에 대한 비요청 데이터 비율이 감소되기 때문에, 데이터 전송 효율이 향상될 수 있다.
본 발명에 따른 방법들은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
100: 메모리 장치
110: 타일 생성 유닛
120: 타일 저장 유닛
110: 타일 생성 유닛
120: 타일 저장 유닛
Claims (15)
- 입력 데이터를 구성하는 복수의 픽셀들을 기 설정된 픽셀 단위로 분할하여 복수의 타일들을 생성하는 타일 생성 유닛; 및
상기 복수의 타일들을 구성하는 픽셀들의 휘도 정보 및 색차 정보를 순차적으로 나열하여 상기 복수의 타일들을 저장하는 타일 저장 유닛
을 포함하는 메모리 장치.
- 제1항에 있어서,
상기 타일 저장 유닛은,
상기 복수의 타일들을 수평(horizontal) 방향으로 순차 저장하는, 메모리 장치.
- 제1항에 있어서,
상기 타일 저장 유닛은,
상기 복수의 타일들을 수직(vertical) 방향으로 순차 저장하는, 메모리 장치.
- 제1항에 있어서,
상기 타일 저장 유닛은,
상기 복수의 타일들을 저장하기 위한 메모리 주소(address)를 할당하는 주소 할당 유닛
을 포함하는 메모리 장치.
- 제4항에 있어서,
상기 타일 저장 유닛은,
상기 주소 할당 유닛에 의해 할당된 메모리 주소에 상기 복수의 타일들을 저장하는, 메모리 장치.
- 제1항에 있어서,
상기 입력 데이터 중 일부 데이터에 대한 메모리 접근(access)이 발생될 경우, 상기 타일 저장 유닛으로부터 상기 일부 데이터에 대응하는 픽셀들을 포함하는 적어도 하나 이상의 타일을 리딩(reading)하는 타일 리딩 유닛; 및
상기 리딩된 적어도 하나 이상의 타일에 대한 휘도 정보 및 색차 정보를 순차적으로 전송하는 타일 전송 유닛
을 포함하는 메모리 장치.
- 입력 데이터를 구성하는 복수의 픽셀들을 기 설정된 픽셀 단위로 분할하여 복수의 메인 타일을 생성하는 제1 타일 생성 유닛;
상기 복수의 메인 타일을 기 설정된 서브 픽셀 단위로 분할하여 복수의 서브 타일을 생성하는 제2 타일 생성 유닛; 및
상기 복수의 서브 타일을 구성하는 픽셀들의 휘도 정보 및 색차 정보를 순차적으로 나열하여 상기 복수의 서브 타일들을 저장하는 타일 저장 유닛
을 포함하는 메모리 장치.
- 제7항에 있어서,
상기 타일 저장 유닛은,
하나의 메인 타일에 해당하는 복수의 서브 타일들을 수평(horizontal) 방향으로 순차 저장하는, 메모리 장치.
- 제7항에 있어서,
상기 타일 저장 유닛은,
하나의 메인 타일에 해당하는 복수의 서브 타일들을 수직(vertical) 방향으로 순차 저장하는, 메모리 장치.
- 제7항에 있어서,
상기 타일 저장 유닛은,
상기 복수의 서브 타일들을 저장하기 위한 메모리 주소(address)를 할당하는 주소 할당 유닛
을 포함하는 메모리 장치.
- 제10항에 있어서,
상기 타일 저장 유닛은,
상기 주소 할당 유닛에 의해 할당된 메모리 주소에 상기 복수의 타일들을 저장하는, 메모리 장치.
- 제7항에 있어서,
상기 입력 데이터 중 일부 데이터에 대한 메모리 접근(access)이 발생될 경우, 상기 저장 유닛으로부터 상기 일부 데이터에 대응하는 픽셀들을 포함하는 적어도 하나 이상의 서브 타일을 리딩(reading)하는 타일 리딩 유닛; 및
상기 리딩된 적어도 하나 이상의 서브 타일에 대한 휘도 정보 및 색차 정보를 순차적으로 전송하는 타일 전송 유닛
을 포함하는 메모리 장치.
- 입력 데이터를 구성하는 복수의 픽셀들을 기 설정된 픽셀 단위로 분할하여 복수의 타일들을 생성하는 단계; 및
상기 복수의 타일들을 구성하는 픽셀들의 휘도 정보 및 색차 정보를 순차적으로 나열하여 상기 복수의 타일들을 저장하는 단계;
을 포함하는 데이처 처리 방법.
- 제13항에 있어서,
상기 입력 데이터 중 일부 데이터에 대한 메모리 접근(access)이 발생될 경우, 상기 저장된 복수의 타일들 중 상기 일부 데이터에 대응하는 픽셀들을 포함하는 적어도 하나 이상의 타일을 리딩(reading)하는 단계; 및
상기 리딩된 적어도 하나 이상의 타일에 대한 휘도 정보 및 색차 정보를 순차적으로 전송하는 단계
을 포함하는 데이터 처리 방법.
- 제 13 항 또는 제 14 항 중 어느 하나의 항에 기재된 방법을 수행하기 위한 프로그램이 기록된 기록매체.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020130042973A KR20140125161A (ko) | 2013-04-18 | 2013-04-18 | 메모리 장치 및 그의 데이터 처리 방법 |
US14/084,176 US20140313213A1 (en) | 2013-04-18 | 2013-11-19 | Memory apparatus and method for processing data |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020130042973A KR20140125161A (ko) | 2013-04-18 | 2013-04-18 | 메모리 장치 및 그의 데이터 처리 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20140125161A true KR20140125161A (ko) | 2014-10-28 |
Family
ID=51728661
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020130042973A KR20140125161A (ko) | 2013-04-18 | 2013-04-18 | 메모리 장치 및 그의 데이터 처리 방법 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20140313213A1 (ko) |
KR (1) | KR20140125161A (ko) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6104416A (en) * | 1997-11-18 | 2000-08-15 | Stmicroelectronics, Inc. | Tiling in picture memory mapping to minimize memory bandwidth in compression and decompression of data sequences |
US7190368B2 (en) * | 2002-11-27 | 2007-03-13 | Lsi Logic Corporation | Method and/or apparatus for video data storage |
JP4779434B2 (ja) * | 2005-05-17 | 2011-09-28 | ソニー株式会社 | 動画像変換装置、動画像復元装置、および方法、並びにコンピュータ・プログラム |
US8760460B1 (en) * | 2009-10-15 | 2014-06-24 | Nvidia Corporation | Hardware-managed virtual buffers using a shared memory for load distribution |
JP5565226B2 (ja) * | 2010-09-10 | 2014-08-06 | 富士通株式会社 | 画像データ処理装置および画像データ処理方法 |
-
2013
- 2013-04-18 KR KR1020130042973A patent/KR20140125161A/ko not_active Application Discontinuation
- 2013-11-19 US US14/084,176 patent/US20140313213A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
US20140313213A1 (en) | 2014-10-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8059131B1 (en) | System and method for packing data in different formats in a tiled graphics memory | |
EP0961500A3 (en) | Memory controller for an ATSC video decoder | |
US20150095589A1 (en) | Cache memory system and operating method for the same | |
US7068281B2 (en) | Pixel pages optimized for GLV | |
EP0061804B1 (en) | A method of storing data in a memory of a data processing system | |
JP4443474B2 (ja) | コマンド転送制御装置およびコマンド転送制御方法 | |
WO2006100625A1 (en) | Processing a data array with a meandering scanning order using a circular buffer memory | |
CN108713226B (zh) | 视频显示装置及视频数据传输方法 | |
KR101664112B1 (ko) | 메모리 접근 주소 변환 장치 및 방법 | |
US10999199B2 (en) | Dynamic route profile storage in a hardware trie routing table | |
US6684317B2 (en) | Method of addressing sequential data packets from a plurality of input data line cards for shared memory storage and the like, and novel address generator therefor | |
US20100146242A1 (en) | Data processing apparatus and method of controlling the data processing apparatus | |
KR20140125161A (ko) | 메모리 장치 및 그의 데이터 처리 방법 | |
JP2008048258A (ja) | 画像データ記憶装置、および記憶方法 | |
CN105741300A (zh) | 一种区域分割截图方法 | |
CN102111339B (zh) | 报文发送方法及网络设备 | |
CN109726144B (zh) | 一种数据报文的处理方法和装置 | |
WO2016181550A1 (ja) | 画像処理装置 | |
US20070183510A1 (en) | Method and apparatus for decoding video that alternately store lines of picture in pixel units and method of storing reference picture | |
US20180011786A1 (en) | Apparatus and method for dynamically managing memory | |
KR102516833B1 (ko) | 메모리 장치 및 그 데이터 처리 방법 | |
CN105812497A (zh) | 网络地址分配方法、设备和*** | |
JP2018085098A (ja) | メモリを管理する方法及びその装置 | |
JP2014178745A (ja) | メモリ制御装置および画像形成装置 | |
US20120218279A1 (en) | Image processing apparatus and memory access method thereof |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WITN | Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid |