KR101243933B1 - 비디오 데이터의 인터리브된 스토리지를 위한 시스템 - Google Patents

비디오 데이터의 인터리브된 스토리지를 위한 시스템 Download PDF

Info

Publication number
KR101243933B1
KR101243933B1 KR1020097010629A KR20097010629A KR101243933B1 KR 101243933 B1 KR101243933 B1 KR 101243933B1 KR 1020097010629 A KR1020097010629 A KR 1020097010629A KR 20097010629 A KR20097010629 A KR 20097010629A KR 101243933 B1 KR101243933 B1 KR 101243933B1
Authority
KR
South Korea
Prior art keywords
atom
memory
atoms
dram
strip
Prior art date
Application number
KR1020097010629A
Other languages
English (en)
Other versions
KR20090082910A (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 엘에스아이 코포레이션
Publication of KR20090082910A publication Critical patent/KR20090082910A/ko
Application granted granted Critical
Publication of KR101243933B1 publication Critical patent/KR101243933B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/907Television signal recording using static stores, e.g. storage tubes or semiconductor memories
    • 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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • 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/43Hardware specially adapted for motion estimation or compensation
    • H04N19/433Hardware specially adapted for motion estimation or compensation characterised by techniques for memory access
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Television Signal Processing For Recording (AREA)
  • Dram (AREA)
  • Memory System (AREA)
  • Image Input (AREA)

Abstract

제1 메모리부와 제2 메모리부를 갖는 메모리내에 위치하는 아톰들을 읽는 방법으로서, (A) 메모리 어드레스들을 갖는 아톰들을 메모리에 위치시키는 단계; (B) 아톰들의 일부에 스트립을 한정하는 단계; (C) 스트립내에서 제1 아톰을 지정하는 단계; (D) 제1 아톰과 쌍을 이룰 하나 이상의 제2 아톰들을 위치시키는 단계; (E) 제1 아톰과 쌍을 이룰 때 하나 이상의 제2 아톰들이 적법한 쌍을 이루는 지를 판정하는 단계; 및 (F) 제1 메모리부와 제2 메모리부로부터 적법한 쌍을 읽는 단계를 포함하는 것을 특징으로 한다.

Description

비디오 데이터의 인터리브된 스토리지를 위한 시스템{SYSTEM FOR INTERLEAVED STORAGE OF VIDEO DATA}
본 발명은 데이터 스토리지에 관한 것으로, 특히 비디오 데이터의 인터리브된 스토리지를 위한 방법 및/또는 장치에 관한 것이다.
하나의 종래의 비디오 스토리지 방식에서, 1920 픽셀 너비 대 1080 픽셀 높이의 이미지는 1920 바이트의 1080 로우로서 저장될 수 있다. 이러한 방식은 1024 바이트의 메모리 페이지 사이즈를 가질 것이다. 따라서, 1080 로우의 이미지는 다수의 페이지에 걸쳐 퍼질 것이다. 이미지를 저장할 때 첫번째 로우의 모든 바이트에는 각 다음 로우의 바이트가 따른다. 이미지가 프로세싱(즉, 압축)될 때, 9 x 9 블록의 이미지가 동작된다. 래스터 포맷으로 저장된 9 x 9 블록을 로딩할 때, 적어도 9개, 아마도 10개 페이지가 검색된다.
하나의 종래의 스토리지 방식에서, 이미지는 다수개의 32 x 32 픽셀 타일로 분할된다. 타일들 각각은 하나의 1024 바이트 페이지로서 인접하여 저장된다. 이러한 종래의 방식은 다른 종래의 방법들보다 9 x 9 블록들로 전달되는 페이지들의 개수를 줄인다.
다른 종래의 스토리지 방식에서, 타일들 각각의 데이터는 래스터 포맷으로 저장된다. 이미지를 타일들로서 저장함으로써, 4 페이지만을 검색하여도 9 x 9 블록(또는 최대 32 x 32의 어떠한 사이즈 블록도)(또는 모션 보상 블록)이 전달될 수 있다. 이러한 해결방식에서는, 인터레이스된 이미지는 개별적으로 저장된 각 필드를 갖는다.
따라서, 현재 메모리 디바이스들에 적응될 수 있는 인터리브된 데이터 스토리지를 구현하기 위한 방법 및/또는 장치를 구현하는 것이 바람직하다.
본 발명은 제1 메모리부와 제2 메모리부를 갖는 메모리내에 위치하는 아톰들을 읽는 방법으로서, (A) 메모리에 아톰들을 위치시키는 단계; (B) 아톰들의 일부에 스트립을 한정하는 단계; (C) 스트립내에서 제1 아톰을 지정하는 단계; (D) 제1 아톰과 쌍을 이룰 제2 아톰을 위치시키는 단계; (E) 제1 아톰과 쌍을 이룰 때 제2 아톰이 적법한 쌍을 이루는 지를 판정하는 단계; 및 (F) 제1 메모리부와 제2 메모리부로부터 적법한 쌍을 읽는 단계를 포함한다.
본 발명의 목적들, 특징들, 및 장점들은 (ⅰ)메모리 액세스를 보다 효율적이게 하고 (ⅱ)구현이 용이하고 및/또는 (ⅲ)온-칩 하드웨어를 단순화할 수 있는 인터리브된 비디오 데이터 스토리지를 위한 방법 및/또는 장치의 제공을 포함한다.
본 발명의 상기 목적들, 특징들, 및 장점들은 다음의 상세한 설명, 첨부한 청구범위, 및 도면으로부터 명백해질 것이다.
도 1은 본 발명의 컨텍스트를 예시한 도면이다.
도 2는 메모리로부터 읽혀지는 아톰을 예시한 도면이다.
도 3은 메모리로부터 읽혀지는 아톰을 예시한 다른 도면이다.
도 4는 프레임 액세스, 필드 액세스, 및 라인 액세스를 예시한 도면이다.
도 5는 피치가 홀수배의 타일 너비인 경우의 체커보드 패턴에서의 프레임스토어들의 타일링을 예시한 도면이다.
도 6은 피치가 짝수배의 타일 너비인 경우의 체커보드 패턴에서의 프레임스토어들의 타일링을 예시한 도면이다.
도 7은 어드레스 위신호를 예시한 도면이다.
도 8은 프레임스토어들의 타일링을 예시한 도면이다.
도 9는 인터리브된 1920 너비의 프레임스토어들의 배정을 예시한 도면이다.
도 10은 인터리브된 1920 너비의 프레임스토어들의 8 뱅크 배정을 예시한 도면이다.
도 11은 대응하는 좌측 및 우측 DRAM에 위치하는 아톰들을 예시한 도면이다.
도 12는 스트래들 페이지 경계들을 예시한 도면이다.
도 13은 본 발명에 따른 DRAM 액세스의 쌍을 이루는 방법을 나타낸 도면이다.
도 14는 홀수 너비 요구를 읽는 예를 나타낸 도면이다.
도 15는 홀수 너비 요구를 읽는 다른 예를 나타낸 도면이다.
도 1은 본 발명의 컨텍스트를 예시한 시스템(50)을 나타낸다. 시스템(50)은 일반적으로 블록(또는 회로)(52) 및 블록(또는 회로)(54)을 포함한다. 회로(50)는 코더/디코더(CODEC) 회로로 구현될 수 있다. 회로(52)는 일반적으로 메모리 제어기(또는 회로)(56)를 포함한다. CODEC 회로(52)는 일련의 이미지(60a-60n)를 포함하는 입력 신호를 수신할 수 있다. 이미지(60a-60n)는 일반적으로 압축해제된 포맷이다. 일예로, 이미지(60a-60n)는 일련의 디지털 프레임들일 수 있다. 다른 예로, 이미지(60a-60n)는 아날로그 비디오 신호 부분을 나타내는 추상 개념일 수 있다. 두 경우에, 회로(52)는 신호(예를 들면, IMAGE_DATA1), 신호(예를 들면, IMAGE_DATA2), 신호(예를 들면, ADDRESS1), 및 신호(예를 들면, ADDRESS2)를 제공 및/또는 수신하는데 사용될 수 있다. 신호 IMAGE_DATA1 및 신호 IMAGE_DATA2는 메모리(54)에 저장될 수 있는 프레임(60a-60n)을 나타내는 압축된 데이터 신호들일 수 있다. 신호 ADDRESS1 및 신호 ADDRESS2는 메모리(54)를 액세스하는데 사용되는 어드레스 신호들일 수 있다. 신호 IMAGE_DATA1 및 신호 IMAGE_DATA2는 데이터 버스로도 참조될 수 있다. 마찬가지로, 신호 ADDRESS1 및 신호 ADDRESS2는 어드레스 버스로도 참조될 수 있다.
메모리(54)는 일반적으로 블록(또는 회로)(60) 및 블록(또는 회로)(62)를 포함한다. 회로(60)는 "우측" 메모리 회로로 구현될 수 있다. 회로(62)는 "좌측" 메모리 회로로 구현될 수 있다. 용어 "우측" 및 용어 "좌측"은 메모리(54)내에서 서로다른 및/또는 별개의 부분들을 설명하는데 사용되는 추상적인 개념이다. 일반적으로, 별도로 제조된 메모리 칩이 메모리(60) 및 메모리(62)를 구현하는데 사용될 수 있다. 특정한 구현으로, 메모리(60) 및 메모리(62)는 두 부분들 중 어느 하나로 부터 액세스될 수 있는 메모리(예를 들면, 듀얼 포트 메모리)의 개별적인 부분들일 수 있다. 메모리(60) 및 메모리(62)의 특별한 물리적인 위치는 우측 메모리(60)가 메모리(54)의 한 부분에 있고 좌측 메모리(62)가 메모리(54)의 다른 부분에 있게 다양할 수 있다. 일반적으로, 우측 메모리(60)는 신호 IMAGE_DATA1 및 신호 ADDRESS1를 제공/수신하도록 구성될 수 있다. 마찬가지로, 좌측 메모리(62)는 신호 IMAGE_DATA2 및 신호 ADDRESS2를 제공/수신하도록 구성될 수 있다. 메모리 제어기(56)는 데이터가 메모리(60) 및 메모리(62)로부터 어떻게 제공/검색되는 지를 중재하는데 사용될 수 있다. 메모리 제어기(56)는 메모리(60) 및 메모리(62) 사이의 어드레스 로딩을 실질적으로 저감시키는 메모리(60) 및 메모리(62)를 액세스(또는 어드레싱)하는 프로토콜을 구현할 수 있다. 메모리(60 또는 62) 중 하나를 액세스하기 위한 어드레스 신호 ADDRESS1과 메모리(60 및 62)의 나머지를 액세스하기 위한 액세스 신호 ADDRESS2를 구현함으로써, 메모리(60 및 62) 사이의 어드레스 및/또는 데이터 로딩의 실질적인 저감을 얻을 수 있다.
본 발명은 메모리(54)가 어떻게 액세스되는 지를 제어하기 위한 방법 및/또는 장치를 제공한다. 비디오 소스 인코딩 및 디코딩은 메모리(54)로부터의 데이터 읽기를 포함한다. 데이터는 이미지의 작은 사각 영역을 나타내는 것으로 해석될 수 있다. 이러한 작은 사각 영역들은 오프-그리드를 바꿀 수 있다. 예를 들면, 메모리(54)에서 어떤 실제적인 조직도 2n 어드레스 경계에서 자연적인 정렬을 가질 수 있지만, 읽혀질 필요가 있는 작은 사각 영역들은 작은 사각형의 너비 및/또는 높이 가 2의 제곱이 아닌 (ⅰ) 모든 정수(예를 들면, 이미지에서 (x,y) 좌표) 및 (ⅱ)사이즈일 수 있다.
메모리(54)는 H.264와 같은 비디오 소스 코딩 표준으로 구현될 수 있다. H.264는 이러한 사각 영역들이 4x4 휘도 픽셀들만큼 작도록 요구할 수 있다. 이에 대하여, 초기 비디오 소스 코딩 표준들은 최소 8x8 휘도 픽셀 사이즈를 가졌다. H.264의 요구는 메모리(50)로부터 데이터의 사각형들을 효율적으로 읽는 문제를 매우 중요하게 할 수 있다. 일예로, 메모리(54)는 이미지 스토리지를 위하여 상품 DRAM(dynamic random access memory)으로 구현될 수 있다. DRAM은 원래 개인용 컴퓨터(PC)에 사용하기에 보다 적합하도록 설계되었다. 다른 메모리 디바이스들(예를 들면, 비 DRAM 디바이스들)이 설명된 문제에 보다 적합할 수 있지만, 비디오 스토리지를 위한 DRAM을 구현하는 것보다 많은 비용이 들 수 있다.
일반적으로, DDR(double data rate) DRAM 디바이스는 RAM(random access memory)의 위치들로 랜덤 액세스를 제공하지 않는다. 일반적으로, DDR DRAM 디바이스로는 메모리(54)로의 액세스 계층이 요구된다. 메모리(54)로부터 특정 워드를 읽기 위해, DRAM내의 로우 또는 페이지는 일반적으로 활성화될 필요가 있다. 이러한 활성화는 메모리(54)의 특정 로우에 있는 모든 워드가 임시 스토리지로 읽혀지게 할 수 있다. 임시 스토리지는 DRAM 디바이스내에서 높은 속도를 가질 수 있다. 전형적으로 DDR DRAM 디바이스들은 4개 또는 8개의 뱅크로 조직될 수 있다. 각 뱅크는 소정 시간에 활성화되는 로우를 많아야 한개 가질 수 있다. 뱅크들은 서로 독립적으로 동작하며, 서너개의 (또는 모든) 뱅크들은 동시에 활성화되는 한개의 로우 를 가질 수 있다. 로우가 활성화되고 나서 짧은 시간이 경과한 후, 데이터는 DRAM 디바이스내의 임시 고속 스토리지에 쓰여지거나 임시 고속 스토리지로부터 읽혀질 수 있다. 최소의 어드레스가능한 데이터 유닛은 두개(DDR-1) 또는 네개(DDR-2) 워드의 정보일 수 있기 때문에 DRAM으로 랜덤 액세스가 가능하지 않을 수 있다. 아톰은 최소의 어드레스가능한 데이터 단위로 정의될 수 있다. 일반적으로, 단 하나의 전달 명령이 아톰보다 긴 버스트를 전달할 수 있다. 하지만, 두개 또는 네개의 워드 아톰이 효과적으로 사용될 수 있도록 버스트를 차단하는 명령들이 나올 수 있다. 두개 또는 네개의 워드 아톰이 버스트 길이보다 짧더라도 두개 또는 네개의 워드 아톰이 사용될 수 있다. 활성화된 로우를 위한 모든 동작이 완료되면, 고속 임시 스토리지로부터의 모든 데이터를 DRAM내의 메인 스토리지 어레이에 다시 쓰기 위해 활성화된 로우들은 "프리차지"될 필요가 있다. 이러한 프리차지 동작은 새로운 로우가 활성화되기 이전에 만료 시간을 필요로 할 수 있다.
CODEC 메모리들에 대하여, DRAM의 전체 대역폭을 충족시키기 위해 DRAM은 32비트 너비 버스(예를 들면, 적어도 32 비트)에 연결될 수 있다. DDR-2 DRAM에 대하여, 아톰 사이즈는 16 바이트(예를 들면, 각각 4 바이트의 4 워드)일 수 있다.
도 2는 메모리(54)로부터 읽혀지는 아톰(80)을 나타낸다. 일반적으로, 도 2에서 각 사각형은 한 바이트를 나타낸다. 다수의 아톰 A-H이 도시되어 있다. 아톰 D는 명확히 하기 위해 굵게 나타낸다. 수평 로우의 픽셀들을 표현하기 위해 아톰들이 조직되면, 최악의 경우에 메모리(54)로부터의 (굵게 도시된) 4x4 읽기는 도시한 바와 같이 8개의 아톰 A-H까지 스트래들될 수 있다. 본 발명 없이 메모리(54)로부 터 실제적으로 요구되는 16 바이트의 데이터를 복구하기 위해, 총 128 바이트의 읽기가 필요할 수 있다. 이러한 시나리오에서, DRAM으로부터 읽은 데이터의 7/8은 버려질 수 있다. 일반적으로, 로우는 이미지의 (x,y) 좌표 공간에 있는 한 로우의 픽셀들과는 아무런 관계도 없을 수 있다.
도 3은 메모리(54) 블록으로부터 읽은 8 바이트의 아톰을 나타낸다. 32 비트 버스가 두개의 16비트로 분할되고 데이터가 두개의(독립적으로 어드레스되는) 16 비트 메모리 디바이스 사이에 인터리브되면, 각 16비트 DRAM은 8 바이트의 아톰 사이즈를 갖는다. 이러한 경우에, 최악의 경우에 읽혀질 수 있는 총 데이터는 64 바이트로 저감될 수 있다.
도 3에 예시한 스킴이 효율적으로 동작하기 위해, (예를 들면, 메모리(54)로부터 읽혀질 모든 사각 영역들에 대하여) (메모리로부터 읽혀질 모든 사각 영역들에 대한) 아톰들의 절반은 일반적으로 읽혀지고 나서 데이터 버스의 16 비트 절반(예를 들면, 메모리(60))에 부착된 DRAM에 위치한다. 나머지 절반은 일반적으로 DRAM에 위치하고 데이터 버스의 나머지 16 비트 절반(예를 들면, 메모리(62))에 연결된다.
이론상의 최악의 경우의 액세스 패턴들의 고려는 이러한 다른 타입의 메모리 조직(데이터 버스의 하나의 16비트 절반에 부착된 DRAM에 있는 아톰들의 절반의 위치지정 및 읽기)에 대한 필요성에 동기를 부여할 수 있다. 일반적으로, 디코딩 비트스트림들은 종래의 방식으로 지원하기 어려울 수 있다. 이러한 경우에, 액세스 패턴은 최악의 경우의 비트스트림으로 처리될 필요성을 만드는 현재 디코딩되는 비 트스트림에 의해 요구될 수 있다. 최악의 경우의 비트 스트림은 메모리(54)로부터 읽혀진 대수의 작은 오프-그리드 사각형들을 특정할 수 있다.
계류중인 출원들(10/306,749 및 10/306,751)에서 확인되는 대부분의 과정은 좌측 및 우측 DRAM(60 및 62) 사이에서 다른 어드레스 비트들의 개수를 최소화하기 위한 요구에 의해 동기를 부여 받았다. 또한, 본 발명은 단 하나의 DRAM으로 로딩되는 어드레스 라인들(예를 들면, 좌측과 우측 DRAM 간에 다른 어드레스 라인들)과 두 DRAM(60 및 62)으로 로딩되는 어드레스 라인들의 혼합이 있는 경우 만들어 질 수 있는(및 피할 수 있는) 고속 및 전기적인 문제점들을 고려한다.
일반적으로 좌측 및 우측 DRAM(60 및 62)에 대한 어드레스 신호 ADDRESS1 및 ADDRESS2는 전기적인 이유로 각각 독립적인 신호로 구동될 필요가 있다. 본 발명은 단지 소수의 어드레스 비트들에서의 차이를 갖기 위해 좌측 및 우측 DRAM(60 및 62)으로의 어드레스를 강요할 필요가 있다. 이러한 제약의 제거는 보다 최적화할 수 있게 한다. 이러한 최적화는 (ⅰ)액세스를 보다 효율적이게 하고 (ⅱ)온-칩 하드웨어의 단순화를 가능하게 할 수 있다.
도 4는 프레임 액세스, 필드 액세스, 및 라인 액세스를 나타낸다. 아톰들(예를 들면, A, C, E, G 등)은 하나의 DRAM(예를 들면, 메모리(60) 또는 메모리(62))에 저장될 수 있다. 나머지 아톰들(예를 들면, B, D, F, H 등)은 다른 DRAM(예를 들면, 메모리(60) 또는 메모리(62)의 나머지)에 저장될 수 있다. 데이터는 오버헤드를 최소화하기 위해 일련의 타일로 조직될 수 있다. 일반적으로, 프레임, 필드, 및 라인 액세스는 메모리(54)내의 특정 데이터 조직에 의해 지원될 필요가 있다. 데이터가 두 DRAM 디바이스(60 및 62) 사이에 분배되고 각 DRAM 디바이스(60 및 62)가 데이터 버스(예를 들면, IMAGE_DATA1 및 IMAGE_DATA2)의 절반에 연결되면, 모든 공통 액세스 패턴들에 대하여 데이터가 DRAM 디바이스(60 및 62) 사이에 고르게 분배될 수 있게 데이터가 인터리브될 수 있다.
메모리로부터 사각 영역들을 액세스하기 위해 프레임 및 필드 액세스들이 비디오 디코딩(및 인코딩) 루틴들에 공통적으로 사용될 수 있다. 도 4는 4x4 사각형들을 예시하고 있지만, 부가적인 사이즈의 사각형들이 필요할 수 있다. 구현되는 특정 비디오 소스 코딩 표준을 충족시키기 위해 특정 사이즈의 사각형들이 변할 수 있다. 인터레이스된 비디오 자료의 코딩에서 프레임 액세스와 필드 액세스는 구별될 수 있다. 인터레이스된 비디오 자료는 방송 텔레비젼 및 관련 기록 미디어 기술들에서 공통적으로 사용될 수 있다. 이러한 경우에, 각 필드는 이미지의 다른 수평 라인들로부터 데이터를 샘플링할 수 있다. 데이터가 두 필드로부터 읽혀질 필요가 는 경우에, 비디오 인코딩 프로그램은 프레임 모드에서 데이터를 코딩하기 위해 선택될 수 있다. 필드 모드에서, 데이터는 한 필드를 이루는 프레임에서의 다른 라인들로부터 읽혀질 필요가 있다.
일예로, 라인 액세스는 디스플레이 프로세스에서 필요할 수 있다. 데이터는 시청을 위하여 디스플레이 프로세스에 의해 스캔되어 (일반적으로 부가적인 프로세싱 단계들 후에) 비디오 모니터 또는 텔레비젼으로 전달될 수 있다. 세가지 구별되는 액세스 패턴(예를 들면, 프레임, 필드, 및 라인) 각각에 대하여, 데이터의 절반은 DRAM(예를 들면, DRAM의 좌측 부분)에 저장되고 데이터의 나머지 절반은 나머지 DRAM(예를 들면, DRAM의 우측 부분)에 저장될 수 있다.
메모리 이미지 데이터는 프레임스토어들에 저장될 수 있다. 프레임스토어들은 라인 대 라인 기반으로 서로 인터리브된 두 필드로부터의 라인들을 포함할 수 있다. 본 발명은 각 필드에 대하여 개별적인 영역을 분배하고 메모리 제어기(56)를 이용하여 프레임 액세스를 수행하는데 특히 유용할 수 있다. 이러한 구현은 레거시 코더/디코더들이 본 발명으로 기능할 수 있게 한다. 하지만, 본 발명의 하나의 바람직한 프레임스토어 구조는 프레임 액세스들을 위하여 보다 효율적인 대역폭의 활용을 제공할 수 있다. 성능을 개선시키기 위해 데이터는 타일 방식으로 저장될 수 있다. 페이지 경계가 지나가는 시간수를 최소화함으로써 고성능을 얻을 수 있다. 스트립 요구가 클라이언트에 의해 이루어지고 한 비트(예를 들면, TileH)의 요구가 1로 설정되면 타일식 스토리지가 선택될 수 있다. 비트 TileH는 DMA 어드레스 레지스터의 최하위 비트로부터 구동될 수 있다. 클라이언트는 이미지 기반 어드레스(예를 들면, ImageBaseAddr)를 특정하기 위해 DMA 어드레스 레지스터를 제공할 수 있다.
이미지의 사각 영역을 저장하기 위해 타일이 사용될 수 있다. 타일 사이즈는 연결된 모든 DRAM 디바이스(60 및 62)의 하나의 뱅크에 있는 하나의 DRAM 로우일 수 있다. 프레임스토어가 타일식 스토리지로 분배되면, 그 특별한 프레임스토어에 있는 모든 타일들은 DRAM(54)에서 이용가능한 뱅크들의 절반에 위치될 수 있다. 4 뱅크 디바이스의 경우에, 소정의 프레임스토어는 뱅크 0 및 2를 이용하거나 또는 프레임스토어는 뱅크 1 및 3을 이용할 수 있다. 뱅크 0 및 2와 뱅크 1 및 3 사이의 이러한 구별은 각각 짝수 또는 홀수 극성으로 참조될 수 있다.
바이트로 측정되면, 타일은 사각형(예를 들면, 32 대 32), 또는 2:1 사각형(예를 들면, 프레임에서 64 너비 대 32 톨)일 수 있다. 정확한 치수는 구현되는 특정 DRAM 페이지의 사이즈에 의존할 수 있다. 스토리지는 다수의 타일에 효율적으로 배정될 수 있다. 타일들이 프레임스토어를 이루도록 배열되면 프레임들은 체커보드 패턴을 형성할 수 있다.
도 5는 프레임스토어들의 타일링을 나타낸다. 4 뱅크 디바이스에 대한 자연스러운 배정은 피치가 홀수배의 타일 너비인 경우일 수 있다. 이러한 경우에, 래스터 스캔 순서에서의 자연스러운 타일 배정은 체커보드 패턴을 만들 수 있다. 체커보드 패턴은 타일들이 서로 수평적으로 또는 수직적으로 인접하고 서로 다른 뱅크들에 있다는 것을 보증할 수 있다. 어드레싱 로직은 피치가 타일 너비의 배수가 아닌 경우라도 작용할 수 있다. 하지만, 피치는 일반적으로 매크로-아톰 너비의 배수이기 때문에 초기 디바이스들보다 엄격한 제한이 있을 수 있다. 매크로-아톰은 일반적으로 좌측 메모리(60)에 저장된 아톰과 우측 메모리(62)에 저장된 아톰의 조합을 포함한다. 피치가 타일 너비의 배수가 아닌 경우에, 수직 인접 타일들이 서로 동일한 뱅크에 있을 수 있기 때문에 성능은 저하될 수 있다.
어드레스 ImageBaseAddr는 특정 타일 경계를 반드시 가리키지는 않는다. 대신에, 어드레스 ImageBaseAddr은 매크로-아톰의 상부 좌측부로 참조될 수 있다. 어드레스 ImageBaseAddr은 특정 프레임스토어에 대한 베이스 어드레스일 수 있다. 어드레스 ImageBaseAddr이 타일 경계에 정렬되지 않는 경우라도 피치가 타일의 배수 이면 체커보드 패턴이 유지될 수 있다.
도 6은 피치가 짝수배의 타일 너비인 경우의 프레임스토어들의 타일링을 나타낸다. 일예로, 피치가 짝수배의 타일 너비이고 어드레스 ImageBaseAddr는 프레임스토어가 타일의 좌측(하지만 반드시 타일의 상부는 아님)에서 시작하는 경우에, 홀수 로우의 타일들에 있는 타일들은 스와핑될 수 있다. 타일의 좌측에서 프레임스토어를 시작함으로써 체커보드 패턴이 유지될 수 있다. 피치가 짝수배의 타일 너비인 경우라도 짝수배의 타일 너비에서의 피치 유지는 이미지 사이즈(예를 들면, 1920)에 중요할 수 있다.
CODEC 메모리들에 대하여, 이러한 스와핑은 어드레스 ImageBaseAddr가 상부 뱅크(예를 들면, 도 6에서 "Bank n+2"로 마킹된 뱅크)를 가리키는 경우에 작용할 수 있다. 어드레스 ImageBaseAddr가 상부 뱅크에 대한 지시의 사용은 본 발명을 구현하지 않는 디바이스에서 구현되지 않았다.
도 7은 어드레스 위신호의 일예를 나타낸다. 어드레스 ImageBaseAddr이 타일의 시작과 수평적으로 정렬되지 않으면 스와핑 스킴은 작용할 수 없다. 일반적으로, 어드레스 ImageBaseAddr이 수평적으로 정렬되지 않고 체커보드가 제공되지 않으면 스와핑은 필요하지 않다. 어드레스 ImageBaseAddr의 비정렬은 예측 형성시 낮은 성능에 이르게 할 수 있다.
도 8은 프레임스토어들의 타일링을 나타낸다. 8 뱅크 메모리들에 대하여, 피치는 4 뱅크 디바이스들과 유사하게 프로그램될 수 있다. 피치가 홀수배의 타일 너비의 2배로 함으로써 약간 높은 성능을 얻을 수 있다. 그것으로서, 모든 예측들, 네개의 타일이 만나는 코너를 스트래들하는 예측들이라도 서로 동일한 뱅크에서 두 타일을 결코 터치할 수 없다. 이러한 경우에, 언제 홀수 로우들에 있는 타일들을 스와핑할 지에 대한 룰은 변경될 수 있다. 8 뱅크 디바이스에 대하여, 비인접 타일쌍은 피치가 4 타일 너비의 배수이면 홀수 타일에서 스와핑될 수 있다.
도 9는 인터리브된 1920 너비의 프레임스토어들의 배정을 나타낸다. 4 뱅크 디바이스의 경우에, 소정의 프레임스토어는 bank0 및 bank2를 사용하거나 또는 bank1 및 bank3를 사용할 수 있다. 구별은 각각 "짝수" 및 "홀수" 극성으로 참조될 수 있다. 특정 극성의 선택은 어드레스 ImageBaseAddr내에 저장된 뱅크 극성 비트에 의해 제어될 수 있다. 뱅크 극성 비트는 프레임스토어의 모든 위치들에 대하여 변경되지 않은채 있을 수 있다. 예를 들면, 뱅크 극성 비트는 비트 11로 설정될 수 있다. (어드레스 ImageBaseAddr에 의해 뱅크 극성 비트로 정의된) 이미지의 첫번째 타일에 나타낸 동일 값은 이미지의 나머지에 배치된 동일 값일 수 있다. 뱅크 극성 비트에 어드레스 ImageBaseAddr을 제공하면, 다음 상층 비트는 이미지내의 어느 타일이 어드레싱되는 지를 정의하는데 사용될 수 있다.
이러한 극성 비트들의 지정은 프레임이 배정될 때 프레임스토어가 특정 어드레스 스팬내의 메모리 어드레스의 절반을 이용할 수 있다는 것을 의미할 수 있다. 동일한 어드레스 ImageBaseAddr을 이용하는 두번째 프레임스토어가 배정될 수 있다. 두번째 프레임스토어는 반전된 극성 비트를 포함할 수 있다. 두번째 프레임스토어는 첫번째 프레임스토어와 인터리브된 메모리 어드레스들의 나머지 절반을 이용할 수 있다.
도 10은 인터리브된 1920 너비 프레임스토어의 8 뱅크 배정을 나타낸다. 피치는 홀수배의 타일 너비의 2배로 설정될 수 있다. 8 뱅크 디바이스들에 대하여, 4 뱅크 디바이스들과 유사하게 배정될 수 있다. 일반적으로, 피치가 홀수배의 타일 너비의 2배로 설정될 수 있는 8 뱅크 배정을 달성하기 위해 어드레싱 로직에 주요한 변화가 없을 수 있다. 뱅크들의 개수에 의존할 수 있는 로직은 피치가 짝수배이거나 4 타일의 배수를 스와핑하는데 사용된 로직과 유사할 수 있다. 차이는 피치 레지스터(예를 들면, RowWidth)에 프로그램된 값일 수 있다.
메모리 제어기(56)에서 실행되는 소프트웨어(또는 펌웨어)는 8 뱅크 메모리들을 구동할 때 고성능을 낼 수 있는 피치 값들을 사용하도록 선택될 수 있다. 이러한 소프트웨어는 4 뱅크 배정을 이용하며 4 뱅크 메모리 디바이스로 얻은 것과 같은 성능을 얻을 수 있다. 극성 비트는 최하위 뱅크 비트(예를 들면, 비트 BA0)일 수 있다.
CODEC 메모리들에 대하여, DRAM 로우(예를 들면, 한 뱅크에 한 로우 및 연결된 DRAM 패키지들 모두)의 사이즈는 1K, 2K, 4K 등일 수 있다. 하지만, DRAM 로우의 특정 사이즈는 특정 구현의 설계 기준을 충족시키기 위해 변경될 수 있다.
도 10은 인터리브된 1920 너비 프레임스토어들의 8 뱅크 배정을 나타낸다. 타일의 너비와 높이는 다음의 표 1에서 주어질 수 있다.
총 RAM 로우 사이즈
타일 너비 타일 높이
바이트 비트 투 어드레스 바이트 비트 투 어드레스
1K 바이트 32 5 32 5
2K 바이트 64 6 32 5
3K 바이트 64 6 64 6
일반적으로, 지원되는 메모리 조직 각각은 아톰 지원을 포함하며, 여기서 아톰은 메모리의 가장 작은 어드레스가능 단위로 고려될 수 있다.
본 발명에 따른 CODEC 메모리들에 지원되는 듀얼 메모리 방식은 작은 오프-그리드 사각형들을 읽을 때 대역폭을 최대화할 수 있다. 동일한 데이터 버스폭이 단 하나의 어드레스로 사용되면 "자연스럽게" 일어날 수 있는 아톰 사이즈의 절반을 허용함으로써 작은 오프-그리드 사각형들을 읽을 때 듀얼 메모리 방식은 대역폭을 최대화할 수 있다. 효율을 위하여, 데이터 버스의 두 절반영역은 병렬로 사용될 수 있다. 이러한 조건은 (ⅰ)프레임 조직 예측들, (ⅱ)(다른 스캔라인으로부터 데이터를 필요로 할 수 있는) 필드 조직 예측들, 및 (ⅲ)라인 조직 데이터를 읽을 때 참일 수 있다. 효율을 얻기 위해, 데이터는 매크로 아톰을 정의하기 위해 반복 패턴의 좌측 및 우측 DRAM(60 및 62) 사이에 분배될 수 있다.
도 11은 대응하는 좌측 및 우측 DRAM에 위치하는 아톰들을 나타낸다. 도 11은 아톰들 각각의 선형 어드레스를 나타내며, 여기서, "a"는 바이트 단위의 아톰 사이즈이고, "w"는 타일 너비이고, "bytes n"은 2a의 배수이고, "floor n/w"는 4의 배수이다.
(프로세서와 같은) 선형 어드레싱을 이용하는 디바이스로부터의 매크로 아톰을 어드레싱할 때, (매크로 아톰내의) 보다 낮은 두 로우의 아톰들에 있는 아톰들은 상위 두 로우에 위치하는 아톰들에 반대 순서로 어드레싱될 수 있다.
어드레싱을 단순화하기 위해, 매크로 아톰은 타일들을 정의하는 동일한 그리드와 정렬될 수 있다. 스트립 액세스들에 대하여, TileH=1일 때 어드레스 ImageBaseAddr은 매크로 아톰에 있는 상부 좌측 아톰의 어드레스로 참조될 필요가 있다. 이 방식에서, 매크로 아톰은 소정의 이미지 코딩 표준들에 따라 블록들, 매크로블록들, 및 필드들/프레임들을 한정하는 그리드에 정렬될 수 있다.
바이트들은 래스터 스캔 순서로 버스들 IMAGE_DATA1 및 IMAGE_DATA2로 전달될 수 있다. 래스터 스캔 순서는 (ⅰ)좌측에서 우측으로 스캔되는 로우들 및 (ⅱ)상부에서 하부로 전달되는 로우들로서 정의될 수 있다. 래스터 스캔 순서로 데이터 버스들 IMAGE_DATA1 및 IMAGE_DATA2로 바이트들을 전달함으로써, 요구를 서비스할 필요가 있는 아톰들은 래스터 스캔 순서로 메모리로부터 읽혀질 수 있다. 이러한 전달이 가능하지 않으면, 요구를 서비스할 필요가 있는 아톰들은 래스터 스캔 순서로 메모리(54)로부터 읽혀질 필요가 없다. 래스터 스캔 순서에 대한 예외들은 본 발명의 주요한 영역으로 제공할 수 있다.
본 발명은 메모리(54)로부터 데이터를 읽을 때 적용할 수 있다. 특정 상황들에서, CODEC 메모리들에 사용되는 비디오 코더/디코더는 오프-그리드 액세스들을 수행할 필요가 있으면 오프-그리드 액세스로 예상되는 고성능은 나타나지 않을 수 있기 때문에 본 발명은 메모리(54)에 데이터를 기록할 때 필요하지 않을 수 있다. 독단적으로 사이즈화된 사각형들의 오프-그리드 쓰기용 데이터 버스 IMAGE_DATA1 및 IMAGE_DATA2를 위한 정의된 프로토콜을 만족시키기 위해, 아톰들은 래스터 스캔 순서로 간단히 머무를 수 있다. 이러한 상황들에서 단 하나의 DRAM(예를 들면, 좌측 또는 우측)의 사용은 어떠한 문제점도 제공하지 않을 수 있다.
도 12는 스트래들링 페이지 경계들을 나타낸다. 요구가 이루어지면, 다수의 타일들이 스트래들될 수 있다. 스트래들은 단일 클록 사이클에서 (ⅰ)어드레스가 좌측 DRAM(60)으로 나오고 (ⅱ)어드레스가 우측 DRAM(62)으로 나오는 경우로 참조될 수 있다. 스트립 요구가 이루어질 수 있다. 스트립 요구(또는 스트립)는 라인 액세스일 수 있고 다수의 타일들을 스트래들할 수 있다. 스트립 요구는 단일 스캔 라인 톨일 수 있다. 일예로, 스트립은 4개의 인접한 타일들을 터치할 수 있는 예측 읽기일 수 있다. 예측 읽기는 메모리로부터 데이터를 읽을 때 효율적인 처리로 복잡하게 할 수 있다. 본 발명은 이러한 복잡성을 없애기 위해 가능한한 많은 클록 사이클에서 좌측 및 우측 DRAM(60 및 62)을 병렬로 이용할 수 있다.
일반적으로, 좌측 및 우측 DRAM(60 및 62)으로 나오는 뱅크 어드레스들은 독립적으로 선택될 수 있다. 이러한 선택은 좌측 DRAM(62)이 한 타일을 어드레스하고 우측 DRAM(60)이 다른 인접 타일을 어드레스하도록 READ(또는 WRITE) 명령이 나오면 사용될 수 있다. 소정의 프레임스토어에 있는 모든 위치들에 대하여 뱅크 극성 비트가 일정할 수 있기 때문에, 뱅크 어드레스의 최하위 비트는 좌측 및 우측 DRAM(60 및 62)에 의해 공유될 수 있다.
당분간 무시가 수직 치수로 나오면, 좌측 및 우측 DRAM(60 및 62) 사이의 선택은 스트립이 단일 사각형으로 처리될 수 있다는 것을 의미할 수 있다. 스트립은 짝수 또는 홀수배의 아톰 너비일 수 있다. 스트립이 짝수배의 너비이면, 각 스캔 라인내에서 좌측 및 우측 DRAM(60 및 62) 각각은 메모리로부터의 스트립에 대하여 아톰들의 절반을 읽을 수 있다. 스트립이 홀수배의 아톰 너비이면, "예비" 아톰이 각 라인의 우측에 제공되어 예비 아톰은 좌측 또는 우측 DRAM(60 또는 62)에 사용될 수 있다.
4 뱅크 DRAM의 경우에, 프레임스토어는 두개의 뱅크만을 이용할 수 있다. 이 뱅크들은 (고성능을 얻을려면) 체커보드로 배열되어 수직 인접 타일들은 뱅크 어드레스가 다를 수 있다. 본 발명에 대하여, 일련의 룰들은 도 13과 관련하여 설명된 방법이 (ⅰ)액세스를 페어링하는 동안 불충분한 판정을 하지 않고 (ⅱ) 다중 페이지 오버 헤드를 치르지 않는다는 것을 보증하도록 구현될 수 있다. 이러한 룰들은 다음을 포함할 수 있다.
(ⅰ)스트립이 (예를 들면, 두 수평 인접 타일 사이의) 수직 타일 경계를 스트래들하지 않으면, 좌측 및 우측 DRAM 어드레스는 수평 타일 경계를 스트래들할 수 있다. (ⅱ)스트립이 수직 타일 경계를 스트래들하면, 좌측 및 우측 DRAM 어드레스는 수평 타일 경계를 스트래들할 수 없다. 네개의 뱅크가 동시에 프리차지될 수 있기 때문에 어드레스들은 수평 타일 경계를 스트래들할 수 없다.
(ⅲ)요구되는 스트립이 하나의 타일 경계를 정확히 지나면, (예를 들면, 타일 경계가 수평 또는 수직인지는) (a)타일들 둘 다는 즉시 열릴 수 있고 (b)액세스들은 경계를 스트래들할 수 있다.
(ⅳ)스트립이 네개의 타일이 만나는 코너를 스트래들하면, 수평 인접 타일들(서로 동시에 열리는 수평 인접 타일들)을 갖는 타일 경계에 우선순위가 주어질 수 있다. 상부 타일쌍에서 마지막 액세스가 이루어지면, 하부 타일들은 머무를 수 있다.
8 뱅크 DRAM의 경우에, 피치 및 ImageBaseAddr가 있어 적절한 체커보드가 제공되면, 좌측 및 우측 DRAM 어드레스는 두 수평 및 수직 타일 경계를 스트래들할 수 있다. 스트립이 스트래들하는 네 타일들 각각이 별도의 뱅크에 있기 때문에 두 수평 및 수직 경계의 이러한 스트래들링이 일어날 수 있다.
몇개의 타일을 너비로 스트래들하는 라인 액세스의 경우에(예를 들면, 라인 액세스가 단일 라인 톨인 경우에), 다중 페이지 페널티가 일어날 수 있다. 페이지 페널티들은 성능 손실없이 지불될 수 있다. 액세스의 좌측을 향한 타일들이 재방문될 수 없기 때문에(요구는 단 하나의 라인 톨이기 때문에), 더 효율적인 액세스 패턴들은 가능하지 않을 수 있다.
보다 큰 사각형 스트립은 다수의 타일들(예를 들면, 네개 이상)을 터치할 수 있고 한 라인 톨보다 많을 수 있다. 보다 큰 사각형 스트립으로, 본 발명에 따라 정의된 액세스 루틴들은 타일들이 열린 및 닫힌 배수일 수 있기 때문에 차선책으로 고려될 수 있다. 하지만, 타일 배수의 열림 및 닫힘은 관심있는 어떠한 비디오 프로그램에서도 일어날 수 없기 때문에 이러한 문제는 피할 수 있다. 메모리 제어기(56)는 (예를 들면, 올바른 데이터가 올바른 위치로부터 읽혀지고 올바른 위치에 쓰여진다는 점에서) 이러한 요구로 정확히 동작될 필요가 있다.
도 13은 본 발명에 따라 DRAM 액세스의 쌍을 이루는 방법(100)을 나타낸다. 이 방법(100)은 일반적으로 상태(또는 단계)(102), 상태(또는 단계)(104), 상태(또는 단계)(106), 상태(또는 단계)(108), 상태(또는 단계)(110), 상태(또는 단계)(112), 상태(또는 단계)(114) 및 상태(또는 단계)(116)을 포함한다. 상태(104)는 제1 메모리부(또는 좌측 DRAM) 및 제2 메모리부(또는 우측 DRAM)을 지나는 메모리 어드레스들을 갖는 복수의 아톰들을 형성할 수 있다. 단계(106)는 아톰들의 일부를 지나는 스트립(또는 스트립 요구)을 정의할 수 있다. 상태(108)는 스트립내에 첫번째 아톰을 지정할 수 있다.
일반적으로, 각 클록 사이클에 대하여, 두 DRAM 어드레스가 생성될 수 있다. 첫번째 DRAM 어드레스는 이미 방문되지 않은 래스터 스캔 순서로 방문될 다음 아톰으로서 언제든지 생성될 수 있다. 스트립의 처음에는, 첫번째 DRAM 어드레스(또는 첫번째 아톰)가 스트립의 상부 좌측부에 있는 아톰의 어드레스로서 정의될 수 있다. 각 클록 사이클에 대하여, 첫번째 DRAM 어드레스는 좌측 DRAM(62) 또는 우측 DRAM(60)에 있을 수 있다. 스트립의 좌측 DRAM(62) 또는 우측 DRAM(60)에 위치하는 것으로의 첫번째 아톰의 지정은 특정 구현의 설계 기준을 충족하기 위해 변경될 수 있다.
상태(110)는 첫번째 아톰과 쌍을 이룰 두번째 아톰을 위치시킬 수 있다. 소정의 첫번째 DRAM 어드레스에 대하여, 두번째 DRAM 어드레스(또는 두번째 아톰)가 위치될 필요가 있다. 두번째 DRAM 어드레스는 클록 사이클에서 첫번째 아톰의 반대 DRAM으로 나올 수 있다.
상태(110)는 어느 두번째 아톰(들)이 첫번째 아톰과 쌍을 이룰 수 있는 지를 위치시키기 위해 다음의 페어 리스트를 이용할 수 있다.
(ⅰ)첫번째 아톰의 우측 바로 옆의 아톰이 두번째 아톰일 수 있다.
(ⅱ)요구되는 스트립의 첫번째 아톰 바로 아래의 아톰이 두번째 아톰일 수 있다. 필드 액세스의 경우에, 위치하는 두번째 아톰은 프레임의 첫번째 아톰 수직 두 스캔 라인 아래의 아톰일 수 있다.
(ⅲ) 프레임 액세스의 경우에, 두번째 아톰은 요구되는 스트립의 첫번째 아톰 수직 두 스캔 라인 아래에 위치할 수 있다. 일반적으로, 필드 액세스에 대하여, 리스트에서 옵션(ⅰ) 및 (ⅱ)만 고려될 수 있다.
페어 리스트에서 가능한 페어들의 목록은 우선 순위에 근거할 수 있다. 하나 이상의 두번째 아톰이 위치하고 다수개의 두번째 아톰들 각각이 첫번째 아톰과 적법한 쌍을 이루면, 페어 리스트의 상부에 가장 근접하게 위치하는 두번째 아톰이 선택될 수 있다.
상태(112)는 첫번째 아톰과 쌍을 이룰 때 두번째 아톰이 적법한 쌍을 이루는 지를 판정할 수 있다. 아톰들의 적절한 쌍은 우측 메모리(60) 및 좌측 메모리(62)로부터 동시에 읽혀질 수 있다. 이러한 적절한 쌍은 이미지내의 첫번째 및 두번째 아톰 사이의 특별한 공간적인 관계를 가질 수 있다. 페어 리스트에 설명된 조건들을 통해 이루어진 쌍들 각각은 두번째 아톰이 첫번째 아톰과 적법한 쌍을 이루는 지를 판정하기 위해 검사될 수 있다.
적법한 쌍을 이루기 위해, 두번째 아톰은:
(ⅰ)첫번째 아톰과 반대 DRAM(예를 들면, 좌측 또는 우측)에 위치하고,
(ⅱ)스트립이 수직 타일 경계를 스트래들하면 수평 타일 경계를 지나지 않고,
(ⅲ)첫번째 아톰과 두번째 아톰 사이의 로우 어드레스들이 동일하면 첫번째 아톰과 같은 로우 어드레스를 가지고,
(ⅳ)DRAM으로부터 읽혀질 수 없다.
일반적으로, 아톰은 두 아톰들 수직 아래에 위치하기 때문에 프레임 액세스에 대하여 아톰은 한 라인에서 읽혀질 수 있다. 다음 라인에서, 읽혀진 아톰 아래에 동일 아톰이 위치할 수 있다. 하지만, 동일 아톰은 다시 읽혀지지 않아야 한다. 대신에, 현재 라인의 두 라인 아래에 위치하는 아톰은 첫번째 아톰과 적법한 쌍을 이루는 두번째 아톰으로서 선택 및 지정될 수 있다.
스트립의 우측에서 홀수 아톰들이 읽혀질 수 있다. 일반적으로, 파이프라인 스테이지, 제1 레지스터, 및 제2 레지스터는 래스터 스캔 순서 밖의 아톰들을 읽는데 사용될 수 있다.
도 14는 방법(100)에 따라 홀수개의 아톰들을 읽는 예를 나타낸다. 복수의 아톰들(예를 들면, A-AV)은 메모리를 지나 형성 또는 위치할 수 있다. 아톰들 A-AV은 좌측 DRAM 또는 우측 DRAM에 저장될 수 있다. 스트립은 아톰들 A-AV의 일부 주변에 형성될 수 있다. 각 스트립의 처음에는, 배럴 시프터가 파이프라인 스테이지(예를 들면, P1) 및 파이프라인 스테이지(예를 들면, P2)로부터 아톰을 수신할 수 있다. 두드러지는 홀수 아톰이 읽혀진 후, 파이프라인 스테이지 P2는 아톰들을 버스의 좌측에 공급할 수 있다. 두개의 두드러지는 홀수 아톰들이 기회주의적으로 읽혀진 후, 파이프라인 스테이지(예를 들면, P1)는 버스의 좌측과 버스의 우측에 아톰들을 공급할 수 있다. 임시 레지스터(예를 들면, T1) 및 임시 레지스터(예를 들면, T2)는 아톰들을 임시로 저장할 수 있다. 임시 레지스터 T1 및 임시 레지스터 T2로부터 아톰이 공급될 때마다, 두드러지는 홀수 아톰들의 카운트가 증분될 수 있다.
첫번째 클록 사이클에서, 아톰 N은 좌측 DRAM으로부터 읽히고 아톰 O는 우측 DRAM에서 읽힌다.
두번째 클록 사이클에서, 아톰 P가 읽혀질 수 있지만, 아톰 P와 동시에 자연스럽게 읽혀질 수 있는 아톰 Q는 필요하지 않다. 아톰 Q는 필요하지 않기 때문에, 아톰 P 수직 아래의 아톰(예를 들면, 아톰 V)가 선택될 수 있다. 하지만, 아톰 V가 아톰 P와 동일한 DRAM에 저장되기 때문에 아톰 V가 아톰 P와 동일한 사이클에서 읽혀질 수 없어 아톰 AB가 읽혀질 수 있다. 아톰 AB가 순서가 뒤바뀌어 읽혀질 수 있기 때문에, 아톰 AB는 임시 레지스터(T0)에 저장될 수 있다.
세번째 클록 사이클에서, 아톰들 T 및 U가 읽혀질 수 있다.
네번째 클록 사이클에서, 아톰 V가 읽혀질 수 있다. 일반적으로 아톰 V와 자연스러운 쌍을 이루는 아톰 W는 필요하지 않을 수 있다. 아톰 AB는 아톰 V와 반대 DRAM에 저장되어 있기 때문에 아톰 V와 동시에 읽혀질 수 있다. 하지만, 아톰 AB는 두번째 클록 사이클에서 이미 읽혀졌기 때문에 아톰 AH가 읽혀진다. 아톰 AH는 순서가 뒤바뀌어 읽혀지기 때문에, 아톰 AH는 임시 레지스터(T0)에 저장될 수 있다. 임시 레지스터(T0)는 이미 점유되어 있기 때문에, 아톰 AH는 임시 레지스터(T1)에 저장될 수 있다.
다섯번째 클록 사이클에서, 아톰들 Z 및 AA가 읽혀질 수 있다. 이 시점에서, 스캔라인의 모든 아톰들(예를 들면, 아톰들 Z, AA 및 AB)이 읽혀진다. 네번째 클록 사이클과 관련하여 언급된 바와 같이, 아톰 AB는 이미 읽혀졌고 임시 레지스터(T0)에 저장되었다.
여섯번째 클록 사이클에서, 아톰들 AF 및 AG이 읽혀질 수 있다. 이 시점에서, 스캔라인의 모든 아톰들(예를 들면, 아톰들 AF, AG 및 AM)이 읽혀진다. 네번째 클록 사이클과 관련하여 언급된 바와 같이, 아톰 AH가 이미 읽혀져 임시 레지스터(T1)에 저장되었다.
일곱번째 클록 사이클에서, 액세스 패턴은 다시 시작할 수 있다. 아톰들 AL 및 AM이 읽혀질 수 있다.
여덟번째 클록 사이클에서, 아톰 AN이 읽혀질 수 있다. 일반적으로, 메모리로부터 읽혀질 짝수 또는 홀수개의 아톰들에 대하여 액세스가 필요할 수 있다. 홀수 또는 짝수개의 아톰들은 스트립에 포함된 아톰들의 개수에 근거할 수 있다. 15개의 아톰들이 메모리로부터 읽혀질 필요가 있기 때문에, 아톰 AN과 쌍을 이루는 것은 없을 수 있다.
CODEC 메모리들로, 하나의 전달의 마지막 아톰(예를 들면, Atom AN)과 다음 전달의 첫번째 아톰을 쌍을 이루도록 시도할 필요는 없다. 이러한 시도가 가능할 수 있지만, 제어회로의 복잡성은 성능에서의 매우 한계적인 증가에 대하여 현저히 증가할 수 있다.
스트립내의 아톰들은 메모리로부터 읽혀지기 때문에, 아톰들은 배럴 시프터의 입력에 제공될 수 있다. 아톰들은 래스터 스캔 순서로 배럴 시프터로 전달될 수 있다. 예를 들면, 아톰 AF가 전달되는 사이클에서, 아톰 AB는 동일한 사이클에서 전달될 수 있다. 전달시 올바른 위치로 되돌아가기 위해 아톰 AB는 임시 레지스터(T0)로부터 되찾을 수 있다. 마찬가지로, 아톰 AM도 아톰 AG가 전달된 후에 전달시 올바른 위치로 전달될 수 있다. AM이 전달되기 이전에, 아톰 AH가 임시 스토리지(T1)로부터 수신될 수 있다.
도 15는 8 바이트 아톰에 대한 홀수 (아톰) 너비 요구 읽기의 다른 예를 나타낸다. 본 발명에 따른 CODEC 메모리들에 대하여, 8 바이트 아톰들이 DDR-2 DRAM으로 일어날 수 있다. DDR-2 DRAM은 8 바이트의 아톰을 네 워드로 전달할 수 있다. 각 워드는 두 바이트를 포함할 수 있다. 첫번째 두 바이트는 하나의 클록 사이클에서 전달되고, 마지막 두 바이트는 두번째 클록 사이클에서 전달될 수 있다.
파이프라인 스테이지 P1 및 파이프라인 스테이지 P2는 각각 8 바이트 아톰들을 유지할 수 있다. 임시 레지스터 T1 및 임시 레지스터 T2는 각각 8 바이트 아톰들을 유지할 수 있다. 임시 레지스터 T1 및 임시 레지스터 T2는 다른 클록 사이클마다 클록킹될 수 있다. 배럴 시프터로 들어가는 값들은 좌측 DRAM 또는 우측 DRAM(예를 들면, 결코 둘의 혼합은 아님)으로부터 직접 올 수 있다. 일반적으로, 도 13과 관련하여 언급된 바와 같이, 두드러지는 홀수 아톰들이 없으면, 파이프라인 스테이지 P2로부터 데이터를 받을 수 있다. 하나의 두드러지는 홀수 아톰이 있으면, 데이터는 대안적으로 파이프라인 스테이지 P1 및 파이프라인 스테이지 P2로부터 받을 수 있다.
본 발명은 뱅크 및 컬럼 어드레스들이 좌측 DRAM 및 우측 DRAM에 서로 독립적으로 공급될 수 있게 할 수 있다.
좌측 및 우측 DRAM에 독립적으로 뱅크 및 컬럼 어드레스들을 공급함으로써, 수평 및 수직 치수로 메모리로부터 읽혀질 수 있는 영역들의 정렬에 배치된 제한들이 단순화될 수 있다.
본 발명은 짝수 또는 홀수 아톰에서 시작하고 수평 치수를 위하여 그 아톰의 우측 바로 옆의 아톰과 쌍을 이룰 수 있다. 이러한 구성은 연속적인 쌍들을 읽기 위해 스캔 라인을 따라 좌에서 우로 간단히 나아갈 수 있다. 요구되는 스트립의 우측에는, 우측 바로 옆에 위치하는 인접 아톰과 쌍을 이룰 수 없는 여분의 아톰이 있을 수 있다. 이러한 상황은 각 로우에 방문할 아톰들의 개수가 홀수이면 일어날 수 있다.
대응하는 공동 계류중인 출원(10/306,749 및 10/306,751)에 개시된 어드레스 제한으로, 짝수 아톰은 아톰들이 각 DRAM에서 서로 동일한 어드레스를 공유하기 때문에 아톰의 우측 바로 옆에 위치하는 아톰과 쌍을 이룰 수 있다. 스트립이 홀수 아톰에서 시작하면, 홀수 아톰은 자연스럽게 쌍을 이룰 수 없다. 홀수 수직 아래의 아톰이 읽혀질 필요가 있다. 스트립이 짝수 아톰들을 방문하는 너비이지만 홀수 아톰에서 시작하기 위해 스트립이 정렬되면, 데이터의 읽기는 스트립의 좌측 에지와 스트립의 우측 에지에 적용될 수 있다. 이러한 읽기는 이용가능한 네개(스트립의 좌측 및 우측 에지 각각에 대하여 두개)의 임시 레지스터가 필요할 수 있다. 이러한 읽기에 필요한 여분의 파이프라인은 메모리로부터의 각 읽기에 의해 지급된 추가 대기시간을 필요로 할 수 있다.
수직 치수에서와 마찬가지로, 본 발명은 어드레스 제약을 경감시킬 수 있다. 이러한 제약은 매크로 아톰내에서 기회주의적 읽기가 이루어질 수 있다는 것을 포함할 수 있다. 첫번째 로우가 매크로 아톰 그리드와 정렬되지 않게 스트립 요구가 정렬되면, 기회주의적 읽기들의 읽기는 본 발명으로 이용할 수 있다.
본 발명은 좌측 및 우측 DRAM과 독립적인 뱅크 어드레스들을 제공할 수 있다. 이러한 구성은 좌측 및 우측 DRAM으로의 동시 액세스가 타일 경계를 스트래들하게 할 수 있다. 타일 경계들은 네개의 뱅크 체커보드일 때 일반적으로 수평 타일 경계가 프레임스토어에 대하여 두개의 DRAM 뱅크용으로 사용되는 것을 제외하고 이러한 스트래들링으로 인해 무시될 수 있다. 액세스 시간 판정시 타일 경계들이 역할을 하는 경우가 제한되며 아마도 얻어질 수 있는 최소에 일관되게 근접할 수 있는 액세스 시간 통계치에 이른다.
여기에 사용된 용어 "동시에"는 어떤 동일한 시간을 공유하는 사상들을 의미하지만 이 용어는 시간적으로 동일한 시점에서 시작하고 시간적으로 동일한 시점에서 끝나거나 동일한 시간을 갖는 사상들로 한정하는 것을 의미하지는 않는다.
본 발명이 바람직한 실시예를 참조하여 특별히 도시되고 설명되었지만, 형태와 상세에 있어 다양한 변형물이 본 발명의 범위를 일탈하지 않고 이루어질 수 있다는 것을 이 기술분야의 당업자는 이해할 것이다.

Claims (30)

  1. 제1 메모리부와 제2 메모리부를 구비한 메모리내에 배치된 아톰들을 읽는 방법으로서,
    (A) 상기 아톰들을 상기 메모리에 배치하는 단계;
    (B) 상기 아톰들의 일부에 걸쳐 스트립을 정의하는 단계로서, 상기 스트립은 (i) 수평 방향으로 상기 제1 메모리부와 상기 제2 메모리부 사이에 각 아톰을 번갈아 바꾸고, (ii) 수직 방향으로 상기 제1 메모리부와 상기 제2 메모리부 사이에서 상기 아톰들 중 두 개씩 번갈아 바꿈으로써 상기 제1 메모리부와 상기 제2 메모리부에 저장된 상기 아톰들의 직사각형 배열을 포함하는 단계;
    (C) 상기 스트립내에 제1 아톰을 지정하는 단계;
    (D) 상기 제1 아톰과 쌍을 이룰 제2 아톰을 위치시키는 단계;
    (E) 상기 제2 아톰이 상기 제1 아톰과 쌍을 이룰 때 적법한 쌍을 이루는 지를 판정하는 단계로서, 상기 적법한 쌍은 (i) 상기 제1 아톰이 상기 제1 메모리부에 배치되고, 상기 제2 아톰이 상기 제2 메모리부에 배치되며, (ii) 상기 제1 아톰과 상기 제2 아톰이 공통 클록 사이클 동안에 읽혀질 때 발생하는 단계;
    (F) 상기 공통 클록 사이클에서 상기 제1 메모리부와 상기 제2 메모리부로부터 상기 적법한 쌍을 읽는 단계; 및
    (G) 상기 스트립의 상기 아톰들 모두가 읽혀질 때까지 단계 (C) 내지 단계 (F)를 반복하는 단계를 포함하는 것을 특징으로 하는 방법.
  2. 제1항에 있어서,
    상기 단계(A)는 상기 아톰들을 상기 제1 메모리부 및 상기 제2 메모리부에 배치하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  3. 제1항에 있어서,
    상기 제1 메모리부는 제1 DRAM을 포함하고 상기 제2 메모리부는 제2 DRAM을 포함하는 것을 특징으로 하는 방법.
  4. 제1항에 있어서,
    상기 단계(C)는 상기 스트립내에 배치된 상부 좌측 아톰으로 상기 제1 아톰을 지정하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  5. 제1항에 있어서,
    상기 단계(D)는 상기 제1 아톰의 우측 바로 옆의 아톰을 상기 제2 아톰으로 지정하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  6. 제5항에 있어서,
    상기 제1 아톰 바로 아래의 아톰을 상기 제2 아톰으로 지정하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  7. 제6항에 있어서,
    프레임 액세스를 위하여 상기 스트립내의 상기 제1 아톰보다 수직으로 두 스캔 라인 아래에 있는 아톰을 상기 제2 아톰으로 지정하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  8. 제6항에 있어서,
    필드 액세스를 위하여 상기 스트립내의 상기 제1 아톰보다 수직으로 두 스캔 라인 아래에 있는 아톰을 상기 제2 아톰으로 지정하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  9. 제1항에 있어서,
    상기 제1 메모리부는 좌측 DRAM를 포함하고, 상기 제2 메모리는 우측 DRAM을 포함하는 것을 특징으로 하는 방법.
  10. 제1항에 있어서,
    상기 단계(E)는 상기 제1 아톰과 상기 제2 아톰 사이에 이루어진 쌍이 수평 타일 경계를 지나지 않을 때, 상기 제2 아톰이 상기 제1 아톰과 상기 적법한 쌍을 이룬다고 판정하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  11. 제1항에 있어서,
    상기 단계(E)는 상기 제1 아톰 및 상기 제2 아톰이 상기 메모리로부터 읽혀지지 않았을 때, 상기 제2 아톰이 상기 제1 아톰과 상기 적법한 쌍을 이룬다고 판정하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  12. 제1항에 있어서,
    상기 제1 메모리부 및 상기 제2 메모리부에 뱅크 및 컬럼 어드레스들을 제공 하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  13. 제1항에 있어서,
    상기 단계(B)는 상기 아톰들의 짝수개 또는 홀수개에 걸쳐 상기 스트립을 정의하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  14. 제1항에 있어서,
    상기 아톰은 최소 어드레스가능한 데이터 단위를 포함하는 것을 특징으로 하는 방법.
  15. 제1항에 있어서,
    상기 단계(F)는 상기 제1 메모리 및 상기 제2 메모리로부터 상기 적법한 쌍을 래스터 스캔 순서로 읽는 단계를 더 포함하는 것을 특징으로 하는 방법.
  16. 제3항에 있어서,
    상기 제1 DRAM 및 상기 제2 DRAM에 뱅크 및 컬럼 어드레스들을 제공하는 단계를 더 포함하고,
    상기 제1 DRAM은 상기 제2 DRAM과 독립적으로 어드레스되는 것을 특징으로 하는 방법.
  17. 제1항에 있어서,
    상기 단계(F)는 하나 이상의 적법한 쌍들을 배럴 시프터로 전달하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  18. 제17항에 있어서,
    상기 하나 이상의 적법한 쌍들을 상기 배럴 시프터로 래스터 스캔 순서로 전달하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  19. 제1항에 있어서,
    상기 단계(D)는, 단계(E)를 수행하기 전에 상기 제2 아톰이 순서가 잘못되어 읽혀질 때, 상기 제2 아톰을 임시 레지스터에 저장하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  20. 제1 메모리부와 제2 메모리부를 구비한 메모리에 아톰들을 배치하는 수단;
    상기 아톰들의 일부에 걸쳐 스트립을 정의하는 수단으로서, 상기 스트립은 (i) 수평 방향으로 상기 제1 메모리부와 상기 제2 메모리부 사이에서 각 아톰을 바꾸고, (ii) 수직 방향으로 상기 제1 메모리부와 상기 제2 메모리부 사이에서 상기 아톰들 중 두 개씩 번갈아 바꿈으로써 상기 제1 메모리부와 상기 제2 메모리부에 저장된 상기 아톰들의 직사각형 배열을 포함하는 수단;
    상기 스트립내에 제1 아톰을 지정하는 수단;
    상기 제1 아톰과 쌍을 이룰 제2 아톰을 위치시키는 수단;
    상기 제2 아톰이 상기 제1 아톰과 쌍을 이룰 때 적법한 쌍을 이루는 지를 판정하는 수단으로서, 상기 적법한 쌍은 (i) 상기 제1 아톰이 상기 제1 메모리부에 배치되고, 상기 제2 아톰이 상기 제2 메모리부에 배치되며, (ii) 상기 제1 아톰과 상기 제2 아톰이 공통 클록 사이클 동안에 읽혀질 때 발생하는 수단;
    상기 제1 메모리부와 상기 제2 메모리부로부터 상기 적법한 쌍을 읽는 수단; 및
    상기 스트립의 상기 아톰들 모두가 읽혀질 때까지 반복하는 수단을 포함하는 것을 특징으로 하는 장치.
  21. 제1 메모리부와 제2 메모리부를 구비한 메모리; 및
    (i) 상기 메모리에 한 세트의 아톰들을 배치하고, (ii) 상기 아톰들의 일부에 걸쳐 스트립을 정의하도록 구성된 코더/디코더 회로로서, 상기 스트립은 (a) 수평 방향으로 상기 제1 메모리부와 상기 제2 메모리부 사이에서 각 아톰을 번갈아 바꾸고, (b) 수직 방향으로 상기 제1 메모리부와 상기 제2 메모리부 사이에서 상기 아톰들 중 두 개씩 번갈아 바꿈으로써 상기 제1 메모리부와 상기 제2 메모리부에 저장된 상기 아톰들의 직사각형 배열을 포함하며, (iii) 상기 스트립내에 제1 아톰을 지정하고 (iv) 상기 제1 아톰과 쌍을 이룰 제2 아톰을 위치시키고, (v) 상기 제2 아톰이 상기 제1 아톰과 쌍을 이룰 때 적법한 쌍을 이루는 지를 판정하는데, 상기 적법한 쌍은 (a) 상기 제1 아톰이 상기 제1 메모리부에 배치되고, 상기 제2 아톰이 상기 제2 메모리부에 배치되며, (b) 상기 제1 아톰과 상기 제2 아톰이 공통 클록 사이클 동안에 읽혀질 때 발생하고, (vi) 상기 공통 클록 사이클에서 상기 제1 메모리부와 상기 제2 메모리부로부터 상기 적법한 쌍을 읽고 및 (vii) 상기 스트립의 상기 아톰들 모두가 읽혀질 때까지 반복하는 코더/디코더 회로를 포함하는 것을 특징으로 하는 장치.
  22. 제21항에 있어서,
    상기 코더/디코더 회로는 상기 제1 아톰의 우측 바로 옆의 아톰을 상기 제2 아톰으로 지정하도록 더 구성되는 것을 특징으로 하는 장치.
  23. 제22항에 있어서,
    상기 코더/디코더 회로는 상기 제1 아톰 바로 아래의 아톰을 상기 제2 아톰으로 지정하도록 더 구성되는 것을 특징으로 하는 장치.
  24. 제23항에 있어서,
    상기 코더/디코더 회로는 프레임 액세스를 위하여 상기 스트립내의 상기 제1 아톰보다 수직으로 두 스캔 라인 아래에 있는 아톰을 상기 제2 아톰으로 지정하도록 더 구성되는 것을 특징으로 하는 장치.
  25. 제23항에 있어서,
    상기 코더/디코더 회로는 필드 액세스를 위하여 상기 스트립내의 상기 제1 아톰보다 수직으로 두 스캔 라인 아래에 있는 아톰을 상기 제2 아톰으로 지정하도록 더 구성되는 것을 특징으로 하는 장치.
  26. 제21항에 있어서,
    상기 제1 메모리부는 좌측 DRAM를 포함하고, 상기 제2 메모리는 우측 DRAM을 포함하는 것을 특징으로 하는 장치.
  27. 제26항에 있어서,
    상기 코더/디코더 회로는 상기 좌측 DRAM 및 상기 우측 DRAM에 뱅크 및 컬럼 어드레스들을 제공하도록 더 구성되고,
    상기 좌측 DRAM은 상기 우측 DRAM과 독립적으로 어드레스되는 것을 특징으로 하는 장치.
  28. 제21항에 있어서,
    상기 코더/디코더 회로는 상기 제1 메모리 및 상기 제2 메모리로부터 상기 적법한 쌍을 래스터 스캔 순서로 읽도록 더 구성되는 것을 특징으로 하는 장치.
  29. 제21항에 있어서,
    상기 아톰은 최소 어드레스가능한 데이터 단위를 포함하는 것을 특징으로 하는 장치.
  30. 제21항에 있어서,
    상기 코더/디코더 회로는 하나 이상의 적법한 쌍들을 배럴 시프터로 전달하도록 더 구성되는 것을 특징으로 하는 장치.
KR1020097010629A 2006-10-26 2007-09-28 비디오 데이터의 인터리브된 스토리지를 위한 시스템 KR101243933B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/588,087 US7463267B2 (en) 2006-10-26 2006-10-26 System for interleaved storage of video data
US11/588,087 2006-10-26
PCT/US2007/021087 WO2008063276A1 (en) 2006-10-26 2007-09-28 System for interleaved storage of video data

Publications (2)

Publication Number Publication Date
KR20090082910A KR20090082910A (ko) 2009-07-31
KR101243933B1 true KR101243933B1 (ko) 2013-03-18

Family

ID=39329569

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020097010629A KR101243933B1 (ko) 2006-10-26 2007-09-28 비디오 데이터의 인터리브된 스토리지를 위한 시스템

Country Status (7)

Country Link
US (2) US7463267B2 (ko)
EP (1) EP2092759B1 (ko)
JP (2) JP5190460B2 (ko)
KR (1) KR101243933B1 (ko)
CN (1) CN101653010B (ko)
TW (1) TWI399648B (ko)
WO (1) WO2008063276A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150017275A (ko) * 2013-08-06 2015-02-16 삼성전자주식회사 복수 개의 메모리 컨트롤러를 이용한 영상 데이터 저장 방법 및 장치

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1332300C (zh) * 2005-04-30 2007-08-15 广东威创日新电子有限公司 一种基于服务器端\客户端结构远程显示处理方法
KR101086417B1 (ko) * 2006-11-27 2011-11-25 삼성전자주식회사 다이내믹 랜덤 액세스 메모리의 부분 액세스 장치 및 방법
KR101553651B1 (ko) * 2009-10-13 2015-09-17 삼성전자 주식회사 다중 뱅크 메모리 액세스 장치
KR101639574B1 (ko) * 2009-12-30 2016-07-14 삼성전자주식회사 적응적 뱅크 어드레스를 제공하는 디스플레이 시스템 및 그것의 어드레스 맵핑 방법
US8305384B2 (en) * 2010-05-06 2012-11-06 Himax Technologies Limited System and method for storing and accessing pixel data in a graphics display device
US8564603B2 (en) * 2010-10-24 2013-10-22 Himax Technologies Limited Apparatus for controlling memory device and related method
US9690503B2 (en) * 2015-06-26 2017-06-27 Intel Corporation Returning coherent data in response to a failure of a storage device when a single input/output request spans two storage devices

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100666824B1 (ko) 2005-03-02 2007-01-10 (주)씨앤에스 테크놀로지 메모리에 이미지 데이터를 저장하는 방법
KR100668302B1 (ko) 2004-07-28 2007-01-12 삼성전자주식회사 비디오 디코더/엔코더에서의 메모리 맵핑 장치 및 그 방법
KR100668995B1 (ko) 1998-05-28 2007-01-16 마쯔시다덴기산교 가부시키가이샤 비디오 메모리 시스템

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5835952A (en) * 1993-07-14 1998-11-10 Matsushita Electric Industrial Co., Ltd. Monolithic image data memory system and access method that utilizes multiple banks to hide precharge time
JP3188593B2 (ja) * 1993-07-14 2001-07-16 松下電器産業株式会社 画像データメモリ
JP3119994B2 (ja) * 1994-04-28 2000-12-25 株式会社グラフィックス・コミュニケーション・ラボラトリーズ 画像データの処理方法およびそれに用いる記憶装置ならびに画像データの処理装置
JPH0865686A (ja) * 1994-06-15 1996-03-08 Hitachi Ltd 画像復号化装置
US5581310A (en) * 1995-01-26 1996-12-03 Hitachi America, Ltd. Architecture for a high definition video frame memory and an accompanying data organization for use therewith and efficient access therefrom
JPH09106374A (ja) * 1995-10-09 1997-04-22 Namco Ltd 画像メモリ装置
US5781201A (en) * 1996-05-01 1998-07-14 Digital Equipment Corporation Method for providing improved graphics performance through atypical pixel storage in video memory
US5781200A (en) 1996-08-08 1998-07-14 Ulsi Systems Tile memory mapping for increased throughput in a dual bank access DRAM
US5793693A (en) 1996-11-04 1998-08-11 Compaq Computer Corporation Cache memory using unique burst counter circuitry and asynchronous interleaved RAM banks for zero wait state operation
JPH10257422A (ja) * 1997-03-13 1998-09-25 Canon Inc 画像記録再生装置
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
JP2001143464A (ja) 1999-11-11 2001-05-25 Nec Ic Microcomput Syst Ltd 半導体記憶装置
US6803917B2 (en) * 2001-02-15 2004-10-12 Sony Corporation Checkerboard buffer using memory bank alternation
US7016418B2 (en) 2001-08-07 2006-03-21 Ati Technologies, Inc. Tiled memory configuration for mapping video data and method thereof
KR100612414B1 (ko) * 2003-04-28 2006-08-16 삼성전자주식회사 영상 데이터 처리 시스템 및 영상 데이터 독출/기입 방법
TWI317474B (en) * 2003-09-25 2009-11-21 Beyond Innovation Tech Co Ltd Video data access method
EP1569124A1 (en) * 2004-02-26 2005-08-31 Matsushita Electric Industrial Co., Ltd. Memory interface and data processing

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100668995B1 (ko) 1998-05-28 2007-01-16 마쯔시다덴기산교 가부시키가이샤 비디오 메모리 시스템
KR100668302B1 (ko) 2004-07-28 2007-01-12 삼성전자주식회사 비디오 디코더/엔코더에서의 메모리 맵핑 장치 및 그 방법
KR100666824B1 (ko) 2005-03-02 2007-01-10 (주)씨앤에스 테크놀로지 메모리에 이미지 데이터를 저장하는 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150017275A (ko) * 2013-08-06 2015-02-16 삼성전자주식회사 복수 개의 메모리 컨트롤러를 이용한 영상 데이터 저장 방법 및 장치
KR102135958B1 (ko) 2013-08-06 2020-07-20 삼성전자주식회사 복수 개의 메모리 컨트롤러를 이용한 영상 데이터 저장 방법 및 장치

Also Published As

Publication number Publication date
JP5623494B2 (ja) 2014-11-12
EP2092759A4 (en) 2011-01-05
KR20090082910A (ko) 2009-07-31
US20090009523A1 (en) 2009-01-08
EP2092759B1 (en) 2013-06-19
US20080100635A1 (en) 2008-05-01
TW200836065A (en) 2008-09-01
CN101653010B (zh) 2013-01-09
US7852344B2 (en) 2010-12-14
CN101653010A (zh) 2010-02-17
JP2013065343A (ja) 2013-04-11
TWI399648B (zh) 2013-06-21
EP2092759A1 (en) 2009-08-26
JP5190460B2 (ja) 2013-04-24
JP2010507868A (ja) 2010-03-11
US7463267B2 (en) 2008-12-09
WO2008063276A1 (en) 2008-05-29

Similar Documents

Publication Publication Date Title
KR101243933B1 (ko) 비디오 데이터의 인터리브된 스토리지를 위한 시스템
KR100864473B1 (ko) 메모리 장치, 메모리 컨트롤러 및 메모리 시스템
JP5126360B2 (ja) メモリ装置及びそれを制御するメモリコントローラ
US7737986B2 (en) Methods and systems for tiling video or still image data
US6212231B1 (en) Assign of pels of a macroblock for compression encoding to a memory sequence in one of banks of DRAM
KR100817057B1 (ko) 동일한 픽셀 데이터 그룹에 포함되는 픽셀 데이터들을메모리의 동일한 뱅크 어드레스로 매핑하는 매핑 방법 및비디오 시스템
US20030122837A1 (en) Dual memory channel interleaving for graphics and MPEG
CN102055973A (zh) 存储器地址映射方法及存储器地址映射电路
US20080044107A1 (en) Storage device for storing image data and method of storing image data
US20040212623A1 (en) Image data processing system and image data reading and writing method
US6342895B1 (en) Apparatus and method for memory allocation
CN100444636C (zh) 提高视频解码器中sdram总线效率的方法
US20130120420A1 (en) Method and system for efficiently organizing data in memory
KR101335367B1 (ko) 메모리 제어 장치 및 방법
JP3405079B2 (ja) メモリ割り付け方法
JPH05113768A (ja) フレームメモリ回路
JPH0944396A (ja) メモリ内の記憶場所の集合にアクセスする方法

Legal Events

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