KR20060010474A - 비디오 디코더/엔코더에서의 메모리 맵핑 장치 및 그 방법 - Google Patents

비디오 디코더/엔코더에서의 메모리 맵핑 장치 및 그 방법 Download PDF

Info

Publication number
KR20060010474A
KR20060010474A KR20040059193A KR20040059193A KR20060010474A KR 20060010474 A KR20060010474 A KR 20060010474A KR 20040059193 A KR20040059193 A KR 20040059193A KR 20040059193 A KR20040059193 A KR 20040059193A KR 20060010474 A KR20060010474 A KR 20060010474A
Authority
KR
South Korea
Prior art keywords
memory
partitions
data
address
unit
Prior art date
Application number
KR20040059193A
Other languages
English (en)
Other versions
KR100668302B1 (ko
Inventor
조대성
이상조
김두현
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR20040059193A priority Critical patent/KR100668302B1/ko
Priority to EP20050250305 priority patent/EP1622391A1/en
Priority to US11/068,969 priority patent/US8442107B2/en
Priority to JP2005218214A priority patent/JP5301761B2/ja
Publication of KR20060010474A publication Critical patent/KR20060010474A/ko
Application granted granted Critical
Publication of KR100668302B1 publication Critical patent/KR100668302B1/ko

Links

Images

Classifications

    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Memory System (AREA)

Abstract

비디오 디코더/엔코더에서의 메모리 맵핑 장치 및 그 방법이 개시된다. 분할부는 영상 데이터를 부호화의 기본 단위인 매크로 블록으로 나누고 각각의 매크로 블록을 소정 크기의 파티션으로 분할한다. 저장부는 각각 독립적으로 액세스 가능한 적어도 하나 이상의 메모리 뱅크들을 포함한다. 그리고, 메모리 할당부는 서로 인접한 파티션들은 서로 다른 메모리 뱅크에 대응시킨다. 이로써, 영상 데이터를 읽고 쓰는 데 소요되는 총 사이클 수를 감소할 수 있다.
영상 데이터, 메모리 뱅크, 매크로 블록, 파티션

Description

비디오 디코더/엔코더에서의 메모리 맵핑 장치 및 그 방법{Memory mapping apparatus and method for video decoer/encoder}
도 1은 H.264/AVC 표준에 따른 디코더의 개략적인 블록도를 도시한 도면,
도 2는 매크로 블록 및 서브 매크로 블록의 파티션을 도시한 도면,
도 3a 내지 도 3c는 버스트 모드(burst mode)의 타임 다이어그램을 도시한 도면,
도 4 내지 도 6은 종래의 영상 데이터를 메모리에 저장하고 액세스 하는 방법을 도시한 도면,
도 7 및 도 8은 본 발명에 따른 메모리 맵핑 방법의 일 실시예를 도시한 도면,
도 9, 도 10a 및 도 10b는 인터리빙(interleaving)된 메모리 구조를 이용한 메모리 맵핑 방법 및 액세스 방법을 도시한 도면,
도 11a 및 도 11b는 본 발명에 따른 메모리 맵핑 장치의 일 실시예의 구성을 도시한 도면,
도 12 및 도 13은 본 발명에 따른 메모리 맵핑 방법의 일 실시예의 흐름을 도시한 흐름도,
도 14는 프레임 luma 데이터를 메모리에 맵핑하는 방법의 일 실시예를 도시 한 도면,
도 15는 프레임 chroma 데이터를 메모리에 맵핑하는 방법의 일 실시예를 도시한 도면,
도 16은 본 발명에 따른 프레임 단위의 메모리 맵핑 방법에서, 프레임 단위의 움직임 예측 보상을 수행하기 위해 프레임 구조의 참조 블록을 액세스 하는 방법의 일 실시예를 도시한 도면,
도 17은 본 발명에 따른 프레임 단위의 메모리 맵핑 방법에서, 필드 단위의 움직임 예측 보상을 수행하기 위해 필드 구조의 참조 블록을 액세스하는 방법의 일 실시예를 도시한 도면,
도 18은 필드 luma 데이터를 메모리에 맵핑하는 방법을 도시한 도면,
도 19는 필드 chroma 데이터를 메모리에 맵핑하는 방법을 도시한 도면,
도 20은 본 발명에 따른 필드 단위의 메모리 맵핑 방법에서, 프레임 단위의 움직임 예측 보상을 수행하기 위하여 프레임 구조의 참조 블록을 액세스하는 방법의 일 실시예를 도시한 도면,
도 21은 본 발명에 따른 필드 단위의 메모리 맵핑 방법에서, 필드 단위의 움직임 예측 보상을 수행하기 위하여 필드 구조의 참조 블록을 액세스하는 방법의 일 실시예를 도시한 도면,
도 22a는 본 발명에 따른 메모리 맵핑 장치의 다른 실시예의 구성을 도시한 도면,
도 22b는 본 발명에 따른 메모리 맵핑 방법의 다른 실시예의 흐름을 도시한 흐름도,
도 23은 디코더의 메모리 버스 구조를 도시한 도면, 그리고,
도 24는 본 발명에 따른 메모리 맵핑 방법에서 움직임 예측 보상에 필요한 총 사이클 수와 종래 기술에서 움직임 예측 보상에 필요한 총 사이클 수를 비교한 도면이다.
본 발명은 비디오 디코더/엔코더에서의 메모리 맵핑 장치 및 그 방법에 관한 것으로, 보다 상세하게는 독립적으로 액세스 가능한 메모리 뱅크 구조를 이용한 메모리 맵핑 장치 및 그 방법에 관한 것이다.
H.264/AVC 는 국제 표준화 기구인 ISO/IEC MPEG 및 ITU-T VCEG의 협력 프로젝트인 JVT(Joint Video Team)의 표준화 기술이다("Text of ISO/IEC FDIS 14496-10:Information Techonology - Coding of audio-visual objects - Part 10: Advanced Video Coding", ISO/IEC JTC 1/SC 29/WG 11.n5555, March 2003).
도 1은 H.264/AVC 표준에 따른 디코더의 개략적인 블록도를 도시한 도면이다.
도 1을 참조하면, 디코더의 속도를 향상시키기 위하여 엔트로피 복호화기(P1)(105), 예측부(P2)(110) 및 Deblock 필터(P3)(115)가 매크로 블록 단위의 파이프라인을 통해 동작한다. 매크로 블록단위의 파이프라인 동작의 컨트롤과 영상 (picture) 데이터의 헤더 정보의 파싱(parsing)은 RISC 코어(P0)(100)가 담당한다.
코덱(codec)에는 두 개의 버스가 존재한다. 하나는 외부 버퍼(미도시), RISC 코어(100), 예측부(110) 및 Deblock 필터(115)를 연결하는 외부 버스(135)이고, 다른 하나는 각각의 모듈(P0 내지 P3)(100,105,110,115)과 on-chip SRAM(120)을 연결하는 내부 버스(130)이다. 그리고, 파서 버퍼(paser buffer)(140)와 PCI unit(145)이 내부 버스(130)에 연결된다.
RISC 코어(100)를 비롯한 각 모듈(105,110,115)들은 버스 마스터로써 동작하므로 연결된 버스들에 대한 마스터를 지닌 랩퍼(wrapper)가 필요하다. RISC 코어(100)는 인스트럭션(instruction) SRAM(155)에 직접 연결된다.
이하에서 전반적인 동작을 살펴본다.
PCI 슬래이브 인터페이스(slave interface)를 통하여 NAL(Network Abstraction Layer) 비디오 비트 스트림이 입력된다. 이 스트림은 RISC 코어(100)에 의해 필요한 데이터 단위로 분리되고, 엔트로피 복호화기(P1)(105)에서 엔트로피 디코딩되어 파서 버퍼(140)에 저장된다. 빠른 처리를 위해 RISC 코어(100)와 엔트로피 복호화기(105)는 별도의 파서 버퍼에 데이터를 저장한다.
파서 버퍼(140)의 크기는 하나의 매크로 블록을 디코딩하기 위해 필요한 정도의 크기를 갖는다. 파서 버퍼(140)에 저장된 데이터는 하나의 매크로 블록 단위로 엔트로피 복호화기(105)에 의해 읽혀지고 신텍스(syntax)별로 파싱이 진행된다.
파싱에서는 CAVLD(Context Adaptive Variable Length Decoding)와 CABAD(Context Adaptive Binary Arithmetic Decoding)가 주된 계산이다. CAVLD unit은 RISC 코어(100)의 파싱 과정에서 Exp-Golomb code 연산을 돕기도 한다. 엔트로피 복화기(105)에서 디코딩된 데이터는 예측부(P2)(110)로 전달된다. 엔트로피 복호화기(105)와 예측부(110)는 양자 사이에 위치한 듀얼 온칩(Dual on-chip) SRAM(107) 을 통해 데이터를 송수신함으로써, 양자 사이의 데이터 전달시에 내부 버스(130)를 사용하지 않는다. 엔트로피 복호화기(105)는 엔트로피 디코딩을 하는 도중에 필요한 정보를 내부 버스(130)를 통해 on-chip SRAM(120)에 액세스하여 얻는다. 일반적으로 on-chip SRAM(120)의 크기는 약 16KB 정도이다.
예측부(110)는 듀얼 온칩 SRAM(107)에 저장된 데이터를 전달받고 외부 버퍼로부터 참조될 데이터를 메모리 컨트롤러(125)를 통해 얻는다. 예측부(110)는 외부 버스(140)를 통해 외부 버퍼의 데이터를 액세스 할 경우 bandwidth가 상당히 높다. 즉, 예측부(110)는 실시간 처리를 위해 동시에 액세스하여야 하는 데이터량이 상당히 많다. 특히, H.264/AVC 코덱의 경우 종래의 다른 비디오 표준에 비해 액세스해야 하는 데이터양이 많다.
예측이 끝나고 듀얼 온칩 SRAM(112)에 저장된 데이터가 deblcok 필터(115)로 전송된다. deblcok 필터(115)는 예측부(110)에서 얻은 복원된 데이터의 블록효과를 줄여주기 위한 필터 계산을 수행하고, 그 결과를 SRAM에 저장한다. SRMA에 저장된 결과는 외부 버퍼에 저장된다. SRAM에 저장된 계산 결과를 외부 버퍼로 전송하는 부분을 하나의 파이프라인 단계로 독립시켜서 진행할 수 있다.
도 2는 예측에 필요한 기본 단위인 매크로 블록 및 서브 매크로 블록의 파티션을 도시한 도면이다.
도 1 및 도 2를 참조하면, 예측부(110)는 최소 4x4 바이트 크기의 파티션에서 16x16 바이트 크기의 파티션까지 다양한 블록 크기 단위로 예측을 수행한다. 예를 들어, 서브 매크로블록은 매크로블록을 8x8 바이트 크기 단위의 파티션으로 분할한 경우에 각각의 8x8 단위 블록을 가리키며, 필요에 따라 예측부(110)는 서브 매크로블록을 8x4, 4x8 또는 4x4 바이트 크기로 나누어 예측에 이용한다.
H.264 코덱에서 예측부는 luma 데이터의 경우에는 6탭 필터를 사용하고 chroma 데이터의 경우에는 이진 보간(bilinear) 필터를 사용하므로 파티션 데이터 뿐만 아니라 주위의 데이터를 추가로 더 외부 버퍼에서 읽어야 한다.
예측부(110)가 4x4 블록 단위로 움직임 예측하는 경우는 16x16 또는 8x8 블록 단위를 이용하는 다른 코덱보다 데이터 액세스 양이 많아진다. 따라서, Inter 예측의 경우 외부 버퍼에서 데이터를 읽을 때 효과적인 메모리 관리(Memory management)가 매우 중요하다.
도 3a 내지 도 3c는 버스트 모드(burst mode)의 타임 다이어그램을 도시한 도면이다.
버스트 모드(연속 기록/재생 방법)는 DMA(Direct Memory Access)를 통해 외부 버퍼에서 한번에 많은 양의 데이터를 읽음으로써 버스의 사용 효율을 향상시키는 방법이다.
만약 64비트(8바이트) 데이터 버스를 고려한다면, 도 3a는 한 번에 64비트의 데이터를 액세스하는 경우이고, 도 3b는 64비트 데이터를 4번 동시에 액세스하는 경우이며, 도 3c는 64비트 데이터를 8번 동시에 액세스하는 경우이다. 도 3b 및 도 3c의 경우에 버스트 모드를 사용하기 위해서는 읽거나 쓰려는 데이터가 서로 연속한 위치에 있어야 한다.
메모리 컨트롤러(125)는 데이터가 저장된 외부 버퍼의 주소를 요청받으면, 해당 위치의 데이터를 액세스하고 이후의 데이터는 연속된 위치에 있으므로 64비트 크기 만큼 증가된 주소를 통해 해당되는 데이터를 연속적으로 액세스한다.
도 3a 내지 도 3c의 경우에, 메모리 컨트롤러(125)는 액세스할 데이터가 저장된 주소를 요청받으면 일정 시간이 지연(latency)된 뒤 해당 데이터를 액세스한다. 따라서, 같은 양의 데이터를 액세스하는 경우에 도 3a에 비해 도 3b 및 도 3c의 경우가 훨씬 적은 시간인 걸린다. 이는 주소를 요청하고 데이터를 얻기까지의 지연(latency) 시간이 여러 데이터를 동시에 액세스 하는 경우에 훨씬 적게 걸리기 때문이다.
만약 특정 외부 버퍼의 지연 시간이 6사이클이 걸리고 64비트 데이터를 액세스하는데 1 사이클이 걸린다고 가정하면, 도 3a의 경우에는 64비트 데이터를 액세스하는데 7사이클이 소요되고, 도 3b의 경우에는 256 비트(64x4 비트) 데이터를 액세스하는데 10사이클이 소요되며, 도 3c의 경우에는 512 비트(64x8 비트) 데이터를 액세스하는데 14사이클이 소요된다. 만약 512 비트 데이터를 도 3a의 방법으로 액세스한다면 56사이클(7x8 사이클)이 소요되고, 도 3b의 방법으로 액세스한다면 20 사이클(10x2 사이클)이 소요된다. 따라서, 한 번의 주소를 요청하고 여러 데이터를 동시에 액세스하면 버스의 사용율을 늘릴 수 있다.
일반적으로 DMA을 통해 외부 버퍼에서 데이터를 읽을 때 BURST 모드를 사용 하면 한 번에 많은 데이터를 읽을 수 있어 같은 사이클동안 더 많은 데이터를 읽을 수 있어 효율적이다. 그러나, 한 번의 주소 할당 후 연속적으로 읽을 수 있는 데이터 양에는 한계가 있으므로 BURST 모드를 사용한다 하더라도 데이터를 액세스하는데 발생하는 지연 문제가 여전히 버스의 사용 효율을 떨어뜨린다. 또한, 블록 단위로 데이터를 액세스하므로 데이터의 연속성이 보장되지 않아 BURST 모드의 효율적 사용이 어렵다.
도 4 내지 도 6은 종래의 영상 데이터를 메모리에 저장하고 액세스 하는 방법을 도시한 도면이다.
도 4는 영상(picture) 데이터를 메모리에 저장하는 방법을 도시한 도면으로서, MxN 크기의 영상 데이터를 순차 주사(Raster scan) 순서로 읽고 메모리에 순차적으로 저장한다.
도 5는 도 4의 영상 맵에서 영상의 특정 영역을 액세스하는 과정을 도시한 도면이다. 첫 번째 블록을 액세스하고자 하는 경우에 블록의 각 라인은 메모리에서 서로 인접한 위치에 존재하지 않으므로 각 라인을 읽을 때마다 새로운 주소를 요청하므로 많은 지연이 발생한다.
도 6은 도 5의 픽쳐 맵에서 영상의 특정 영역을 액세스하는 경우의 타임 다이어그램을 도시한 도면으로, 각각의 라인을 읽을 때마다 지연이 발생하며, 16x16 매크로블록의 데이터를 액세스하고자 할 경우에는 16번의 지연이 발생한다.
본 발명이 이루고자 하는 기술적 과제는, 독립적으로 액세스 가능한 메모리 뱅크 구조를 이용하여 메모리에 영상 데이터를 읽고 쓰는데 걸리는 총 사이클 수를 감소시키는 비디오 디코더/엔코더에서의 메모리 맵핑 장치 및 그 방법을 제공하는 데 있다.
본 발명이 이루고자 하는 다른 기술적 과제는, 영상 데이터의 부호화 방법에 따라 프레임 단위 메모리 맵핑 및 필드 단위 메모리 맵핑을 각각 구분하여 적용함으로써 영상 데이터를 메모리에 읽고 쓰는 데 걸리는 총 사이클 수를 감소시키는 비디도 디코더/엔코더에서의 메모리 맵핑 장치 및 그 방법을 제공하는 데 있다.
상기의 기술적 과제를 달성하기 위한, 본 발명에 따른 비디오 디코더/엔코더에서의 메모리 맵핑 장치의 일 실시예는, 영상 데이터를 부호화의 기본 단위인 매크로 블록으로 나누고 상기 각각의 매크로 블록을 소정 크기의 파티션으로 분할하는 분할부; 각각 독립적으로 액세스 가능한 적어도 하나 이상의 메모리 뱅크들을 포함하는 저장부; 및 상기 파티션들 중 서로 인접한 파티션들은 상기 메모리 뱅크들 중 서로 다른 메모리 뱅크에 대응시키는 메모리 할당부;를 포함한다.
상기의 기술적 과제를 달성하기 위한, 본 발명에 따른 비디오 디코더/엔코더에서의 메모리 맵핑 장치의 다른 실시예는, 적어도 하나 이상의 메모리 뱅크들로 구성되고, 영상 데이터의 매크로 블록을 구성하는 파티션들 중 인접한 파티션들을 서로 다른 메모리 뱅크에 저장하는 저장부; 상기 파티션들과 상기 메모리 뱅크들의 주소와의 대응관계를 나타내는 주소 대응 참조표를 생성하고 관리하는 메모리 할당부; 및 상기 영상 데이터의 소정 위치의 데이터가 속한 매크로 블록 및 파티션 위 치를 파악하고, 상기 파악된 파티션 위치 정보를 기초로 상기 주소 대응 참조표를 참조하여 상기 소정 위치의 데이터가 속한 파티션의 주소를 생성하는 주소 발생부;를 포함한다.
상기의 기술적 과제를 달성하기 위한, 본 발명에 따른 비디오 디코더/엔코더에서의 메모리 맵핑 장치의 다른 실시예는, 영상 데이터의 부호화 방식이 프레임 단위인지 필드 단위인지 파악하는 부호화 방법 파악부;
상기 데이터를 부호화의 기본 단위인 매크로 블록으로 분할하고, 상기 부호화 방식이 프레임 단위이면 상기 각각의 매크로 블록을 프레임 단위 파티션으로 분할하고, 상기 부호화 방식이 필드 단위이면 상기 각각의 매크로 블록을 상기 필드 단위 파티션으로 분할하는 분할부; 각각 독립적으로 액세스 가능한 적어도 하나 이상의 메모리 뱅크들을 포함하는 저장부; 및 상기 파티션들 중 서로 인접한 파티션들에게 서로 다른 메모리 뱅크들을 대응시키는 메모리 할당부;를 포함한다.
상기의 기술적 과제를 달성하기 위한, 본 발명에 따른 본 발명에 따른 비디오 디코더/엔코더에서의 메모리 맵핑 방법의 일 실시예는, 영상 데이터를 부호화의 기본 단위인 매크로 블록으로 나누는 단계; 상기 각각의 매크로 블록을 소정 크기의 파티션으로 분할하는 단계; 인접한 파티션들을 각각 독립적으로 액세스 가능한 적어도 하나 이상의 메모리 뱅크들 중 서로 다른 메모리 뱅크들에게 대응시키는 단계; 및 상기 파티션들이 대응되는 메모리 뱅크들의 주소와 상기 파티션들의 대응관계를 나타내는 주소 대응 참조표를 생성하고 관리하는 단계;를 포함한다.
상기의 기술적 과제를 달성하기 위한, 본 발명에 따른 본 발명에 따른 비디 오 디코더/엔코더에서의 메모리 맵핑 방법의 다른 실시예는, 적어도 하나 이상의 메모리 뱅크들로 구성되고, 영상 데이터의 매크로 블록을 구성하는 파티션들 중 인접한 파티션들을 서로 다른 메모리 뱅크에 저장하는 단계; 상기 파티션들에게 할당된 상기 메모리 뱅크들의 주소와 상기 파티션들 사이의 대응관계를 나타내는 주소 대응 참조표를 생성하고 관리하는 단계; 및 상기 영상 데이터의 소정 위치의 데이터가 속한 매크로 블록 및 파티션 위치를 파악하고, 상기 파악된 파티션 위치 정보를 기초로 상기 소정 위치의 데이터를 포함하는 파티션이 위치한 메모리 뱅크의 주소를 상기 주소 대응 참조표를 참조하여 생성하는 단계;를 포함한다.
상기의 기술적 과제를 달성하기 위한, 본 발명에 따른 본 발명에 따른 비디오 디코더/엔코더에서의 메모리 맵핑 방법의 다른 실시예는, 영상 데이터의 부호화 방식이 프레임 단위인지 필드 단위인지 파악하는 단계; 상기 데이터를 부호화의 기본 단위인 매크로 블록으로 분할하고, 상기 부호화 방식이 프레임 단위이면 상기 각각의 매크로 블록을 프레임 단위로 파티션하고, 상기 부호화 방식이 필드 단위이면 상기 각각의 매크로 블록을 상기 필드 단위로 파티션하는 단계; 및 상기 파티션들 중 서로 인접한 파티션들에게 서로 다른 메모리 뱅크들을 대응시키는 단계;를 포함한다.
이로써, 영상 데이터를 읽고 쓰는 데 소요되는 총 사이클 수를 감소할 수 있다.
이하에서, 첨부된 도면들을 참조하여 본 발명에 따른 비디오 디코더/엔코더에서의 메모리 맵핑 장치 및 그 방법에 관해 상세히 설명한다.
도 7 및 도 8은 본 발명에 따른 메모리 맵핑 방법의 일 실시예를 도시한 도면이다.
도 7을 참조하면, 영상(picture)은 인코딩의 기본 단위인 매크로 블록으로 나누어진다. 매크로 블록은 일반적으로 16x16 byte의 크기를 가진다. 본 발명에 따른 메모리 맵핑 방법은 영상을 각각의 매크로 블록 단위로 스캔한 후 매크로 블록 단위로 순차적으로 메모리에 맵핑한다. 다시 말하면, 첫 번째 매크로 블록내의 영상을 스캔하여 얻은 데이터를 메모리의 첫 번째 위치에 맵핑하고, 두 번째 매크로 블록내의 영상을 스캔하여 얻은 데이터를 메모리의 두 번째 위치에 맵핑한다. 이런 방법으로 영상의 마지막 매크로 블록까지 메모리 맵핑을 수행한다.
도 8를 참조하면, 도 7의 도시된 메모리 맵핑 방법은 종래의 메모리 저장 방법(도 4 및 도 5)과 달리 한번의 지연(latency)만으로 하나의 매크로 블록 내의 영상 데이터를 메모리로부터 읽을 수 있다. 따라서, 본 발명에 따른 메모리 맵핑 방법은 효율적인 버스 활용이 가능하며, 동일 시간에 종래보다 많은 데이터의 액세스가 가능한다. 즉, 도 8은 한 번의 버스트 모드 연산으로 하나의 매크로 블록을 모두 액세스할 수 있다.
그러나, 버스트 모드가 64비트의 버스를 사용하고, 도 3b 및 도 3c에 도시된 버스트 모드 방법을 통해 메모리로부터 16x16 byte 크기의 매크로 블록을 읽는 경우에는 추가적인 지연이 발생한다.
먼저, 도 3b의 버스트 모드를 사용하는 경우를 살펴보면, 한 번의 버스트 모드로 읽을 수 있는 데이터의 크기는 32 byte(8 byte(64 비트)x4)이므로, 매크로 블 록(16x16 byte)을 모두 읽는 데 8번((16x16)/32)의 지연이 발생한다.
도 3c의 버스트 모드를 사용하는 경우를 살펴보면, 한 번의 버스트 모드로 읽을 수 있는 데이터의 크기는 64 byte(8 byte(64 비트)x8)이므로, 매크로 블록을 모두 읽는 데 4번((16x16)/64)의 지연이 발생한다. 이러한, 추가적인 지연을 방지하기 위한 구성이 도 9 및 도 10a,b에 도시되어 있다.
도 9 및 도 10a,b는 인터리빙(interleaving)된 메모리 구조를 이용하여 메모리를 맵핑하고 액세스하는 방법을 도시한 도면이다.
도 9를 참조하면, 메모리(920)는 서로 독립된 주소 액세스 구조를 가지는 4개의 뱅크(bank)(922,924,926,928)로 구성된다. 디코더 코어(900)와 메모리 컨트롤러(910)는 m 비트 크기의 버스로 연결되며, 메모리 컨트롤러(910)와 메모리(920)는 n 비트 크기의 버스로 연결된다. 메모리로 SDRAM을 사용하는 경우에 m과 n은 같은 값을 가지며, DDR(Doble Data Rate) SDRAM을 사용하는 경우 m은 n의 2배이다. 왜냐하면, DDR SDRAM은 한 클럭 사이클에 두 번의 데이터 액세스가 가능하기 때문이다.
도 10a 및 도 10b를 참조하면, 도 9에 도시된 메모리(920)에 액세스하는 구체적인 과정이 도시되어 있다. 디코더 코더(900)가 메모리(920)의 각각의 뱅크(922,924,926,928)에서 각각 일정 크기의 데이터(100,1002,1004,1006)를 액세스 하고자 하는 경우에, 메모리 컨트롤러(910)는 액세스 하고자 하는 데이터가 위치한 곳의 주소(1020,1022,1024,1026)를 주소 버스(1008)를 통해 각각의 뱅크(922,924,926,928)로 전송한다.
메모리 컨트롤러(910)는 뱅크 0(922)의 데이터(1000)를 액세스 하기 위해 주 소 버스(1008)를 통해 주소를 전송하고 데이터 액세스까지의 지연(latency) 시간 동안, 뱅크 1(924), 뱅크 2(926), 뱅크 3(928)에 대한 각각의 주소(1020,1022,1024,1026)를 차례 대로 주소 버스(1008)를 통해 각각의 뱅크(924,926,928)로 전송한다. 따라서, 순차적으로 뱅크 0 부터 뱅크 3(922 내지 928)에 위치한 데이터(100,1002,1004,1006)를 액세스할 수 있다. 즉, 뱅크 구조를 사용하지 않는 경우에는 4번의 지연이 발생하지만 인터리빙된 뱅크 구조를 사용하면 1번의 지연으로 4개의 뱅크에 위치한 데이터를 액세스할 수 있다.
따라서, 인터리빙된 뱅크 구조의 메모리를 사용하면 도 8에서 설명한 추가적인 지연을 방지하고 한 번의 지연으로 메모리에 저장된 매크로 블록의 데이터를 액세스할 수 있다.
도 11a은 본 발명에 따른 메모리 맵핑 장치의 구성을 도시한 도면이다.
도 11a를 참조하면, 메모리 맵핑 장치는 분할부(1100), 메모리 할당부(1110) 및 저장부(1120)로 구성된다.
분할부(1100)는 영상 데이터를 부호화(encoding)의 기본 단위인 매크로 블록으로 분할한다. 일반적으로 매크로 블록의 크기는 16x16 byte이며, 매크로 블록에 대하여는 도 2에서 설명하였다. 한편, 분할부(1100)는 각각의 매크로 블록을 소정 크기의 파티션으로 분할한다. 파티션의 크기는 버스트 모드에서 한 번의 주소 요청 후 연속하여 액세스 가능한 데이터의 크기이다. 예를 들어, 64비트(8바이트)의 데이터 버스를 사용하고 도 3a에 도시된 버스트 모드 방법을 사용하는 경우에 파티션의 크기는 8바이트이고, 도 3b의 경우에는 32바이트(8x4)이며, 도 3c의 경우에는 64바이트(8x8)이다.
그리고, 분할부(1100)는 영상 데이터의 다수의 매크로 블록 및 다수의 파티션을 구분하기 위하여 각각의 매크로 블록 및 파티션에 인덱스 번호를 부여한다. 예를 들어, 분할부(1100)는 영상 데이터를 매크로 블록으로 분할한 후, 위에서 아래로, 좌측에서 우측으로 각각의 매크로 블록에 0부터 n까지 순차적으로 인덱스 번호를 할당하고, 각각의 매크로 블록 내의 파티션들도 메모리 뱅크에 대응되는 순서에 따라 0부터 n까지 순차적으로 인덱스 번호를 할당한다.
또한, 분할부(1100)는 영상 데이터의 부호화 방식이 프레임 단위인지 필드 단위인지에 따라 프레임 단위 또는 필드 단위로 영상 데이터를 분할한다. 프레임 단위 또는 필드 단위의 영상 데이터 분할에 대하여는 도 22a 및 도 22b를 참조하여 상세히 설명한다.
저장부(1120)는 각각 독립적으로 액세스 가능한 여러개의 메모리 뱅크로 구성된다. 메모리 뱅크의 구조는 도 9 및 도 10a에서 설명하였다. 도 10a에서 설명한 바와 같이 각각의 메모리 뱅크는 각각 독립적으로 주소를 전송받아 주소에 해당하는 위치의 데이터를 출력한다. 따라서, 도 10b에 도시된 바와 같이 한번의 지연으로 다수의 메모리 뱅크에 위치한 데이터를 액세스할 수 있다. 한편, 저장부(1120)는 각각의 메모리 뱅크에 파티션 단위로 데이터를 저장한다.
메모리 할당부(1110)는 각각의 매크록 블록의 파티션들을 저장부의 각각의 메모리 뱅크에 할당한다. 이 때, 메모리 할당부(1110)는 매크로 블록내의 다수의 파티션들 중 인접한 파티션이 서로 다른 메모리 뱅크에 할당되도록 한다. 예를 들 어, 도 14를 참조하면, 파티션 0은 파티션 1,2와 인접하므로 파티션 0을 메모리 뱅크 0에 할당하면, 파티션 1,2를 메모리 뱅크 0 외의 다른 메모리 뱅크로 할당한다. 이에 대하여는 도 14 내지 도 21을 참조하여 상세히 설명한다.
한편, 메모리 할당부(1110)는 파티션들과 각각의 메모리 뱅크와의 대응관계를 나타내는 주소 대응 참조표를 생성하고 관리한다. 즉, 메모리 할당부(1110)는 매크로 블록 및 파티션의 인덱스 번호와 메모리 뱅크의 주소를 대응시킨 주소 대응 참조표를 생성하고 관리한다. 이로써, 디코더 또는 엔코더가 영상 데이터의 소정 위치의 데이터를 메모리 뱅크에 저장하고나 읽고자 할 경우 해당하는 주소 대응 참조표를 통해 메모리 뱅크의 실제 주소를 파악할 수 있다.
도 11b는 본 발명에 따른 메모리 맵핑 장치의 다른 실시예의 구성을 도시한 도면이다.
도 11b를 참조하면, 메모리 맵핑 장치는 메모리 할당부(1150), 주소 발생부(1160), 저장부(1170) 및 데이터 액세스부(1180)로 구성된다.
메모리 할당부(1150) 및 저장부(1170)는 도 11a에서 설명한 메모리 할당부(1110) 및 저장부(1120)와 그 기능 및 구성이 동일하므로 여기서 상세한 설명은 생략한다.
데이터 액세스부(1180)가 영상 데이터의 소정 위치(x,y)의 데이터를 저장부(1170)에 쓰거나 읽고자 할 경우에, 데이터 액세스부(1180)는 주소 발생부(1160)에게 소정 위치의 데이터에 대응되는 메모리 뱅크의 주소를 요청한다.
그러면, 주소 발생부(1160)는 소정 위치(x,y)에 대한 데이터를 저장하는 저 장부(1170)의 메모리 뱅크의 주소를 생성한다. 버스트 모드에서는 픽셀 단위로 데이터를 액세스를 하지 않고 한 번에 액세스 할 수 있는 기본 데이터 단위인 파티션 단위로 데이터를 액세스하므로 소정 위치의 픽셀 데이터가 위치한 파티션이 저장된 메모리 뱅크의 주소를 구해야 한다.
구체적으로 살펴보면, 주소 발생부(1160)는 소정 위치(x,y)의 픽셀 데이터를 포함하는 매크로 블록의 인덱스 번호를 찾는다. 그리고, 주소 발생부(1160)는 소정 위치(x,y)의 픽셀 데이터를 포함하는 액세스 기본 단위인 파티션의 영역을 구하고, 이 파티션 영역이 속한 매크로 블록들을 파악한다. 예를 들어, 파티션의 크기가 4x8바이트이면, 주소 발생부(1160)는 (x,y) 위치에서 수평방향으로 4바이트, 수직 방향으로 8바이트의 크기로 이루어진 직사각형의 영역을 구하고, 이 영역이 속하는 매크로 블록 및 파티션의 인덱스 번호를 구한다. 그리고, 주소 발생부(1160)는 파악한 매크로 블록 및 파티션의 인덱스 번호를 기초로 메모리 할당부(1150)의 주소 대응 참조표를 참조하여 실제 메모리 뱅크의 주소를 구한다.
데이터 액세스부(1180)는 영상 데이터의 소정 위치의 데이터가 필요하면, 소정 위치의 실제 주소를 주소 발생부(1160)를 통해 구하고, 구한 실제 주소를 기초로 저장부(1170)에 데이터를 요청하여 데이터를 수신한다. 이 경우에 인접한 파티션들은 각각 다른 메모리 뱅크에 저장되므로 도 10b에서 살핀 바와 같이 한 번의 지연(latency)으로 다수의 메모리 뱅크에 저장된 데이터를 액세스 할 수 있다.
데이터 액세스부(1180)는 영상 데이터의 인코딩 또는 디코딩하는 인코더 또는 디코더이며, 이 외에 영상 데이터를 필요로 하는 다른 모듈일 수 있다.
도 12는 본 발명에 따른 메모리 맵핑 방법의 일 실시예의 흐름을 도시한 흐름도이다.
도 12를 참조하면, 분할부(1100)는 영상 데이터를 매크로 블록으로 구분한다(S1200). 그리고, 분할부(1100)는 매크로 블록을 버스트 모드에서의 데이터 기본 전송 단위인 파티션으로 매크로 블록을 분할한다(S1210).
메모리 할당부(1110)는 이웃하는 파티션들이 서로 다른 메모리 뱅크의 주소에 할당되도록 각각의 파티션들을 메모리 뱅크에 할당한다(S1220). 또한, 메모리 할당부(1110)는 파티션들과 메모리 뱅크의 주소와의 대응관계를 나타내는 주소 대응 참조표를 생성하고 관리한다(S1230).
도 13은 본 발명에 따른 메모리 맵핑 방법의 다른 실시예의 흐름을 도시한 흐름도이다.
도 13을 참조하면, 주소 발생부(1160)는 저장부(1170)에 쓰거나 읽고자하는 영상 데이터의 소정 위치의 픽셀 데이터가 속한 매크로 블록의 위치를 구한다(S1300). 그리고, 주소 발생부(1160)는 픽셀 데이터의 위치를 포함하는 파티션 영역을 구하고, 파티션 영역이 속한 매크로 블록들을 파악한다. 주소 발생부(1160)는 파악한 매크로 블록 및 파티션의 인덱스를 기초로 주소 대응 참조표를 참조하여 메모리 뱅크의 주소를 구한다.
이하, 도 14 내지 도 21에서는 영상 데이터의 기본 부호화 단위는 16x16 바이트 크기의 매크로 블록이고, 버스트 모드의 기본 전송 단위인 파티션의 크기는 64비트(8바이트, 도 3b)이며, 메모리는 4개의 메모리 뱅크(도 9, 도 10a)로 이루어 진 경우를 가정한다.
도 14는 프레임 luma 데이터를 프레임 단위로 메모리에 할당하는 방법의 일 실시예를 도시한 도면이다.
도 14를 참조하면, 버스트 모드는 64비트의 데이터 버스를 사용하고, 도 3b의 버스트 모드를 사용한다. 따라서, 버스트 모드의 액세스 기본 단위인 파티션의 크기는 4x8바이트이다. 따라서, 매크로 블록은 총 8개의 파티션으로 분할된다.
8개의 각각의 파티션은 4개의 메모리 뱅크로 이루어진 저장부에 각각 대응된다. 이 때 인접하는 파티션들은 서로 다른 메모리 뱅크에 대응된다. 즉, 파티션 0은 파티션 1 및 2와 인접하므로, 파티션 0은 메모리 뱅크 0에 대응되고 파티션 1 및 2는 각각 메모리 뱅크 1 및 2에 대응된다.
도 15는 프레임 chroma 데이터를 프레임 단위로 메모리에 맵핑하는 방법의 일 실시예를 도시한 도면이다.
도 15를 참조하면, 4:2:0 chroma 샘플링 방식에 의해 영상 정보를 표시하는 경우, 8x8 바이트 크기의 Cb 및 Cr 성분의 각 라인은 서로 쌍을 이루며 배치된다. 그러면, 도 15에서 처럼 8x16바이트 크기의 블록이 생성되며, 분할부는 이 블록을 4x8 바이트 크기의 파티션으로 분할한다. 그리고, 메모리 할당부는 인접한 파티션이 서로 다른 메모리 뱅크에 대응되도록 한다.
도 16은 본 발명에 따른 프레임 단위 메모리 맵핑 방법에서, 프레임 단위의 움직임 예측 보상을 수행하기 위해 비디오 디코더가 4x4 크기의 파티션에 대해 프레임 구조의 참조 블록을 액세스 하는 일 실시예를 도시한 도면이다.
H.264 표준은 6탭 필터를 사용하므로 4x4 바이트의 파티션에 대한 움직임 예측 보상을 수행하기 위해서 디코더가 실제 액세스하는 블록의 크기는 9x9 바이트이다. 그리고, 움직임 벡터로 인해 액세스해야 할 영역이 매크로 블록이나 파티션의 경계와 정확히 일치하지 않을 수 있으며 최악의 경우 도 16에 도시된 바와 같인 6개의 파티션을 모두 액세스 해야 하는 경우가 있다.
도 16을 참조하면, 디코더는 움직임 예측 보상을 수행하기 위해서는 파티션 0부터 6까지의 모든 파티션을 액세스해야 한다. 이 때, 액세스되는 메모리 뱅크는 0,1,2,3,0,2의 순서이다. 도 14에서 살핀바와 같이, 인접한 파티션은 서로 다른 메모리 뱅크에 대응되므로 한 번의 지연으로 메모리 뱅크 0,1,2,3,0,2에 저장된 데이터를 액세스 할 수 있다. 따라서, 도 16의 경우에는 하나의 메모리 뱅크를 연속하여 액세스하지 않으므로 한 번의 지연만으로 모든 파티션을 액세스할 수 있다.
예를 들어, 지연에 6사이클이 걸린다고 하면, 모두 30사이클이 4x4 블록의 움직임 예측 보상을 위해 필요하다.
도 17은 본 발명에 따른 프레임 단위 메모리 맵핑 방법에서, 필드 단위의 움직임 예측 보상을 수행하기 위해 비디오 디코더가 4x4 크기의 파티션에 대해 필드 구조의 참조 블록을 액세스 하는 방법의 일 실시예를 도시한 도면이다.
디코더는 필드 단위의 움직임 예측 보상을 위해서 영상 데이터의 짝수 필드(even field) 및 홀수 필드(odd field) 중 어느 하나의 필드 데이터만을 액세스한다. 따라서, 필드 단위의 움직임 예측 보상을 위해서는 9x9 크기가 아닌 수직 방향으로 두배의 크기인 9x18 크기의 참조 영역이 필요하다. 최악의 경우 도 17에 도시 된 바와 같이 12개의 파티션을 액세스 해야 한다.
도 17을 참조하면, 4x4 크기의 파티션에 대한 움지임 예측 보상을 위해 필요한 파티션은 0,1,2,3,4,6,0,1,2,3,4,6 파티션이며, 이를 위해 액세스되는 메모리 뱅크는 0,1,2,3,0,2,0,1,2,3,0,1의 순서이다. 필드 단위의 움직임 예측 보상을 위해 발생하는 지연은 한 번이며, 지연에 6사이클이 걸린다면 움직임 예측 보상을 위해서 소요되는 총 사이클은 54사이클(지연 6 사이클 + 12x4사이클)이다.
도 18은 필드 luma 데이터를 메모리에 맵핑하는 방법을 도시한 도면이다.
도 18을 참조하면, 영상 데이터를 패리티(parity)의 필드 데이터 끼리 묶어 4x8바이트 크기의 파티션으로 나눈다. 기본적으로 H.264의 경우는 4x4블록의 작은 블록의 액세스도 필요하므로 도 18에서는 4x4보다 크면서 가장 작은 기본 단위인 4x8크기의 블록으로 나누었다. 이 경우에 하나의 매크로 블록은 8개의 파티션으로 나누어진다.
이웃하는 파티션을 서로 다른 메모리 뱅크에 위치하도록 하기 위하여 뱅크 0과 뱅크 2에는 짝수 필드(even field or top field)를 대응시키고 뱅크 1과 뱅크 3에는 홀수 필드(odd filed or bottom field)를 대응시킨다.
도 19는 필드 chroma 데이터를 메모리에 맵핑하는 방법을 도시한 도면이다.
도 19를 참조하면, 4:2:0 chroma 샘플링 방식에 의해 영상 정보를 표시하는 경우, 8x8 바이트 크기의 Cb 및 Cr의 각 라인을 서로 쌍을 이루어 도 19처럼 구성한다. 이 경우 4개의 파티션으로 나눌 수 있으며, 4개의 파티션은 4개의 메모리 뱅크에 각각 대응된다. Cb 및 Cr은 항상 같은 위치를 액세스하므로 도 19처럼 Cb 및 Cr 성분을 격 주사 방식으로 구성한다.
도 20은 본 발명에 따른 필드 단위의 메모리 맵핑 방법에서, 움직임 예측 보상을 수행하기 위하여 비디오 디코더가 4x4 크기의 파티션에 대해 프레임 구조의 참조 블록을 액세스하는 일 실시예를 도시한 도면이다.
디코더는 H.264의 경우 6탭 필터를 사용하므로 움직임 예측 보상을 수행하기 위해 실제 액세스해야 할 블록의 크기는 9x9이다. 그리고, 움직임 벡터로 인해 액세스해야 할 영역이 매크로 블록이나 파티션의 경계에 정확히 일치하지 않을 수 있으며, 최악의 경우 움직임 예측 보상을 위해 도 20과 같이 12개의 파티션이 필요하다.
도 16과 달리 액세스해야 하는 파티션의 수가 증가한 것은 도 18에서와 같이 필드 데이터 별로 파티션을 나누고 각각을 메모리 뱅크로 대응하였기 때문이다. 도 20을 참조하면, 4x4 크기의 파티션에 대한 움직임 예측 보상을 위해 필요한 파티션은 0,1,2,3,4,5,0,1,2,3,4,5의 파티션이며, 이를 위해 액세스되는 메모리 뱅크는 0,1,2,3,0,1,0,1,2,3,0,1의 순서이다. 인접한 파티션을 액세스 하는 경우 서로 다른 메모리 뱅크를 액세스 하므로 도 10에서 처럼 지연 발생을 감소시킨다.
도 20에서는 한번의 지연만이 발생하므로 지연이 6사이클이 소요된다면, 움직임 예측 보상을 위해 파티션을 액세스 하는데 소요되는 총 사이클은 54사이클(지연 6 사이클 + 12x4사이클)이다.
도 21은 본 발명에 따른 필드 단위의 메모리 맵핑 방법에서, 움직임 예측 보상을 수행하기 위하여 비디오 디코더가 4x4 크기의 파티션에 대해 필드 구조의 참 조 블록을 액세스하는 일 실시예를 도시한 도면이다.
디코더는 필드 단위의 움직임 예측 보상은 영상 데이터의 짝수 필드(even field) 및 홀수 필드(odd field) 중 어느 하나의 필드 데이터만을 액세스하므로 9x9 크기가 아닌 수직 방향으로 두배의 크기인 9x18크기의 참조 영역이 필요하다. 움직임 벡터로 인해 액세스해야 할 영역이 매크로 블록이나 파티션의 경계에 정확히 일치하지 않을 수 있으며, 최악의 경우 디코더는 4x4 크기의 파티션에 대해 움직임 예측 보상을 위해 도 21과 같이 6개의 파티션을 액세스해야 한다.
도 21을 참조하면, 짝수 필드의 움직임 예측 보상을 위해 필요한 파티션은 0,2,4,0,2,4 파티션되면, 이 때 액세스되는 메모리 뱅크는 0,2,0,0,2,0의 순서이다. 인접한 파티션들은 서로 다른 메모리 뱅크에 대응되므로 도 10에서 처럼 지연 발생이 감소한다. 도 21에서는, 파티션에 액세스를 시작할 때 한 번의 지연이 발생하고, 파티션 액세스 과정에서 0번의 메모리 뱅크를 연속하여 액세스 하므로 한 번의 지연이 추가로 발생한다. 따라서, 한 번의 지연이 6사이클이 소요된다면, 4x4블록의 움직임 예측 보상을 위해 소요되는 총 사이클은 36사이클(6x2 + 6x4)이다.
만약, 홀수 필드를 액세스하는 경우에는 파티션 1,3,5,1,3,5의 순서로 액세스되면, 이 때 액세스되는 메모리 뱅크는 1,3,1,1,3,1의 순서로 이루어진다. 짝수 필드의 경우와 마찬가지로, 액세스를 시작할 때 한 번 지연이 발생하고, 중간에 1번 뱅크의 연속적인 액세스에 의해 또 한 번의 지연이 발생한다. 따라서, 짝수 필드의 경우와 마찬가지로 홀수 필드의 경우에도 총 36사이클이 소요된다.
도 14 내지 도 21을 참조하면, 프레임 단위의 데이터를 액세스하고자 하는 경우에는 프레임 단위로 파티션을 나누고, 필드 단위의 데이터를 액세스하고자 하는 경우에는 필드 단위로 파티션을 나누어 각각을 메모리 뱅크에 대응시키는 것이 효율적이라는 것을 알 수 있다. 이런 특징을 반영한 메모리 맵핑 장치 및 방법의 일 실시예를 도 22a 및 도 22b에서 상세히 설명한다.
도 22a는 본 발명에 따른 메모리 맵핑 장치의 다른 실시예의 구성을 도시한 도면이다.
도 22a를 참조하면, 메모리 맵핑 장치는 부호화 방법 파악부(2270), 분할부(2275), 메모리 할당부(2280), 저장부(2285)로 구성된다.
저장부(2285)는 도 11a에서 설명하였으므로 여기서 상세한 설명은 생략한다.
부호화 방법 파악부(2270)는 영상 데이터의 부호화 방법을 파악한다. 부호화 방법에는 프레임 단위의 부호화 방법 및 필드 단위의 부호화 방법이 있다.
분할부(2275)는 영상 데이터를 매크로 블록으로 분할한다. 그리고, 부호화 방법 파악부(2270)에 의해 영상 데이터의 부호화 방법이 프레임 단위의 부호와 방법으로 파악되면, 분할부(2275)는 매크로 블록을 프레임 단위의 파티션으로 분할한다(도 14 및 도 15). 한편, 부호화 방법 파악부(2270)에 의해 영상 데이터의 부호화 방법이 필드 단위의 부호화 방법으로 파악되면, 분할부(2275)는 매크로 블록을 필드 단위의 파티션으로 분할한다(도 18 및 도 19).
메모리 할당부(2280)는 프레임 단위 파티션 또는 필드 단위 파티션을 저장부(2285)의 메모리 뱅크에 대응시킨다. 이 때, 메모리 할당부(2280)는 인접한 파티션들이 서로 다른 메모리 뱅크에 대응되도록 한다.
도 22b는 본 발명에 따른 메모리 맵핑 방법의 다른 실시예의 흐름을 도시한 흐름도이다.
도 22b를 참조하면, 부호화 방법 파악부(2270)는 영상 데이터의 부호화 방법을 해석한다(S2200). 즉, 부호화 방법 파악부(2270)는 부호화된 영상이 프레임 데이터만이 존재하는지 검사한다(S2210). 여기서, 프레임 데이터는 짝수 필드 및 홀수 필드로 이루어지고, 움직임 보상시 프레임 단위의 예측만이 수행될 때 프레임 영상만 존재한다고 한다.
분할부(2275)는 블록 단위의 비디오 예측 부호화기에 적용하기 위해 영상 데이터를 부호화의 기본 단위인 매크로 블록으로 구분한다(S2205). 프레임 데이터만 존재하는 경우에, 분할부(2275)는 도 14 및 도 15에서 처럼 프레임 단위의 파티션으로 매크로 블록을 분할한다(S2220). 메모리 할당부(2280)는 프레임 단위의 파티션을 다수의 메모리 뱅크로 구성된 저장부에 대응시킨다(S2230). 이 때, 메모리 할당부(2280)는 인접하는 파티션은 서로 다른 메모리 뱅크에 대응시킨다.
또한, 영상 데이터가 프레임 데이터 이외에 필드 데이터 예측을 수행하는 경우에, 분할부(2275)는 도 18 및 도 19에서 처럼 필드 단위의 파티션으로 매크로 블록을 나눈다(S2240). 메모리 할당부(2280)는 필드 단위의 파티션을 다수의 메모리 뱅크에 대응시킨다(S2250). 이 때, 메모리 할당부(2280)는 인접하는 파티션은 서로 다른 메모리 뱅크에 대응시킨다.
또한, 메모리 할당부(2280)는 프레임 단위 파티션 또는 필드 단위 파티션으로 나누어진 파티션들이 메모리 뱅크에 대응된 후에 각각의 대응관게를 나타내는 주소 대응 참조표를 생성하고 관리한다(S2260). 그러면, 디코더/엔코더는 생성한 주소 대응 참조표를 통해 영상 데이터의 소정 위치의 데이터가 저장된 메모리 뱅크의 실제 주소를 파악할 수 있다.
도 23은 디코더의 메모리 버스 구조를 도시한 도면이다
도 10에 도시된 독립적으로 액세스 가능한 메모리 뱅크를 이용하여 지연 발생을 줄이기 위해서는 특정 하드웨어 모듈이 현재 메모리를 액세스하는 도중에 다른 모듈이 메모리를 액세스하지 않아야 하는 가정이 필요하다. 이를 위해서, 메모리 액세스가 많이 필요한 데이터와 그렇지 않은 데이터를 분리하여 독립된 메모리에 저장하는 것이 필요하다.
도 23을 참조하면, 디코더 코어(2300)는 두개의 독립된 버스(2330,2340)를 통해 각각 독립된 메모리(2310,2320)에 연결된다. 여기서, 메모리 액세스가 과도한 움직임 예측 보상에 필요한 이전 복원 영상 데이터는 다른 데이터와 별도의 메모리(2310)에 저장한다. 이렇게 함으로써, 디코더 코어(2300)가 움직임 예측 보상을 위해 이전 복원 영상 데이터를 액세스하는 동안 다른 필요한 데이터를 위해 다른 메모리(2320)를 액세스할 수 있다.
도 24는 본 발명에 따른 메모리 맵핑 방법에서 움직임 예측 보상에 필요한 총 사이클과 종래 기술에서 움직임 예측 보상에 필요한 총 사이클을 비교한 도면이다.
도 24를 참조하면, 4x4 크기의 파티션부터 16x16 크기의 파티션에 대한 움직임 예측 보상에 소용되는 총 사이클이 도시되어 있으며 모든 경우에 있어 본 발명 에 따른 메모리 맵핑 방법에서 총 사이클이 현저히 감소되는 것을 알 수 있다.
본 발명에 따르면, 메모리 뱅크 구조를 이용하여 디코더/엔코더가 움직임 예측 보상에 필요한 데이터를 메모리에 쓰거나 읽는 경우에 소용되는 총 사이클수를 종래 기술보다 약 2배 정도 감소시킨다. 또한, 본 발명은 프레임 단위의 움직임 예측 보상 또는 필드 단위의 움직임 예측 보상에 따라 매크로 블록을 각각 프레임 단위 또는 필드 단위의 파티션으로 분할하여 각각 인접하지 않게 메모리 뱅크에 저장함으로써 움직임 예측 보상을 위해 디코더가 메모리에서 데이터를 읽는 데 소요되는 총 사이클수를 감소시킨다.

Claims (23)

  1. 영상 데이터를 부호화의 기본 단위인 매크로 블록으로 나누고 상기 각각의 매크로 블록을 소정 크기의 파티션으로 분할하는 분할부;
    각각 독립적으로 액세스 가능한 적어도 하나 이상의 메모리 뱅크들을 포함하는 저장부; 및
    상기 파티션들 중 서로 인접한 파티션들을 상기 메모리 뱅크들 중 서로 다른 메모리 뱅크에 대응시키는 메모리 할당부;를 포함하는 것을 특징으로 하는 비디오 디코더/엔코더에서의 메모리 맵핑 장치.
  2. 제 1항에 있어서,
    상기 메모리 할당부는 상기 파티션들과 상기 메모리 뱅크들의 주소와의 대응관계를 나타내는 주소 대응 참조표를 생성하고 관리하는 것을 특징으로 하는 비디오 디코더/엔코더에서의 메모리 맵핑 장치.
  3. 제 1항에 있어서,
    상기 분할부는 버스트 모드에서 한 번의 주소할당 후 연속하여 액세스 가능한 데이터 크기의 파티션으로 상기 매크로 블록을 분할하는 것을 특징으로 하는 비디오 디코더/엔코더에서의 메모리 맵핑 장치.
  4. 제 1항에 있어서,
    상기 분할부는 영상을 16x16 byte 크기의 매크로 블록으로 분할하고, 상기 각각의 매크로 블록을 4x8 byte 크기의 파티션으로 분할하는 것을 특징으로 하는 비디오 디코더/엔코더에서의 메모리 맵핑 장치.
  5. 제 1항에 있어서,
    상기 저장부는 4개의 메모리 뱅크로 구성되고 각각의 메모리 뱅크는 독립적으로 데이터를 읽고 쓰는 것을 특징으로 하는 비디오 디코더/엔코더에서의 메모리 맵핑 장치.
  6. 제 1항에 있어서,
    상기 분할부는 chroma 데이터의 Cb 및 Cr 성분을 격주사 방법으로 배치한 영상 데이터를 만든 후 상기 영상 데이터를 매크로 블록으로 나누고 상기 매크로 블록을 소정 크기의 파티션으로 분할하는 것을 특징으로 하는 비디오 디코더/엔코더에서의 메모리 맵핑 장치.
  7. 제 1항에 있어서,
    상기 분할부는 상기 영상 데이터를 제1매크로 블록으로 분할하고 상기 각각의 제1매크로 블록을 홀수 필드 및 짝수 필드로 구분한 후 상기 각각의 필드로 구성되는 제2매크로 블록을 소정 크기의 파티션으로 분할하는 것을 특징으로 하는 비디오 디코더/엔코더에서의 메모리 맵핑 장치.
  8. 각각 독립적으로 액세스 가능한 적어도 하나 이상의 메모리 뱅크들로 구성되는 저장부;
    영상 데이터의 매크로 블록을 구성하는 파티션들 중 인접한 파티션들을 상기 메모리 뱅크들 중 서로 다른 메모리 뱅크에 대응시키고, 상기 파티션들과 상기 메모리 뱅크들의 주소와의 대응관계를 나타내는 주소 대응 참조표를 생성하고 관리하는 메모리 할당부; 및
    상기 영상 데이터의 소정 위치의 데이터가 속한 매크로 블록 및 파티션 위치를 파악하고, 상기 파악된 매크로 블록 및 파티션 위치 정보를 기초로 상기 주소 대응 참조표를 참조하여 상기 소정 위치의 데이터가 저장된 상기 메모리 뱅크의 주 소를 생성하는 주소 발생부;를 포함하는 것을 특징으로 하는 비디오 디코더/엔코더에서의 메모리 맵핑 장치.
  9. 제 8항에 있어서,
    상기 영상 데이터의 소정 위치의 데이터가 위치한 상기 메모리 뱅크의 주소가 상기 주소 발생부에 의해 생성되면, 상기 생성한 주소를 기초로 상기 저장부로부터 해당하는 데이터를 독출하는 데이터 액세스부;를 더 포함하는 것을 특징으로 하는 디코더/엔코더에서의 메모리 맵핑 장치.
  10. 제 8항에 있어서,
    상기 메모리 할당부는 상기 영상 데이터를 구성하는 각각의 매크로 블록 및 상기 매크로 블록을 구성하는 각각의 파티션에 대해 각각 고유의 인덱스 번호를 부여하고 상기 인덱스 번호와 상기 메모리 뱅크의 주소와의 관계를 나타내는 주소 대응 참조표를 생성하고 관리하는 것을 특징으로 하는 비디오 디코더/엔코더에서의 메모리 맵핑 장치.
  11. 제 8항에 있어서,
    상기 파티션의 크기는 버스트 모드에서 한 번의 주소할당 후 연속하여 액세스 가능한 데이터 크기인 것을 특징으로 하는 비디오 디코더/엔코더에서의 메모리 맵핑 장치.
  12. 영상 데이터의 부호화 방식이 프레임 단위인지 필드 단위인지 파악하는 부호화 방법 파악부;
    상기 데이터를 부호화의 기본 단위인 매크로 블록으로 분할하고, 상기 부호화 방식이 프레임 단위이면 상기 각각의 매크로 블록을 프레임 단위 파티션으로 분할하고, 상기 부호화 방식이 필드 단위이면 상기 각각의 매크로 블록을 상기 필드 단위 파티션으로 분할하는 분할부;
    각각 독립적으로 액세스 가능한 적어도 하나 이상의 메모리 뱅크들을 포함하는 저장부; 및
    상기 파티션들 중 서로 인접한 파티션들을 상기 메모리 뱅크들 중 서로 다른 메모리 뱅크에 대응시키는 메모리 할당부;를 포함하는 것을 특징으로 하는 비디오 디코더/엔코더에서의 메모리 맵핑 장치.
  13. 제 12항에 있어서,
    상기 파티션들과 상기 메모리 뱅크들의 주소와의 대응관계를 나타내는 주소 대응 참조표를 생성하고 관리하는 주소 대응부;를 더 포함하는 것을 특징으로 하는 비디오 디코더/엔코더에서의 메모리 맵핑 장치.
  14. 제 12항에 있어서,
    상기 분할부는 버스트 모드에서 한 번의 주소할당 후 연속하여 액세스 가능 한 데이터 크기의 파티션으로 상기 매크로 블록을 분할하는 것을 특징으로 하는 비디오 디코더/엔코더에서의 메모리 맵핑 장치.
  15. 영상 데이터를 부호화의 기본 단위인 매크로 블록으로 나누는 단계;
    상기 각각의 매크로 블록을 소정 크기의 파티션으로 분할하는 단계;
    상기 파티션들 중 인접한 파티션들을 각각 독립적으로 액세스 가능한 적어도 하나 이상의 메모리 뱅크들 중 서로 다른 메모리 뱅크들에게 대응시키는 단계; 및
    상기 파티션들이 대응되는 메모리 뱅크들의 주소와 상기 파티션들의 대응관계를 나타내는 주소 대응 참조표를 생성하고 관리하는 단계;를 포함하는 것을 특징으로 하는 비디오 디코더/엔코더에서의 메모리 맵핑 방법.
  16. 제 15에 있어서,
    상기 파티션의 크기는 버스트 모드에서 한 번의 주소할당 후 연속하여 액세스 가능한 데이터 크기인 것을 특징으로 하는 비디오 디코더/엔코더에서의 메모리 맵핑 방법.
  17. 제 15항에 있어서,
    상기 파티션 분할 단계는 상기 각각의 매크로 블록을 홀수 필드 및 짝수 필드로 구분한 후 상기 각각의 필드별로 상기 매크로 블록을 소정 크기의 파티션으로 분할하는 것을 특징으로 하는 비디오 디코더/엔코더에서의 메모리 맵핑 방법.
  18. 영상 데이터의 매크로 블록을 구성하는 파티션들 중 인접한 파티션들을 각각 독립적으로 액세스 가능한 메모리 뱅크들 중 서로 다른 메모리 뱅크들에 저장하는 단계;
    상기 파티션들이 대응되는 상기 메모리 뱅크들의 주소와 상기 파티션들 사이의 대응관계를 나타내는 주소 대응 참조표를 생성하고 관리하는 단계; 및
    상기 영상 데이터의 소정 위치의 데이터가 속한 매크로 블록 및 파티션 위치를 파악하고, 상기 파악된 파티션 위치 정보를 기초로 상기 소정 위치의 데이터를 포함하는 파티션이 위치한 메모리 뱅크의 주소를 상기 주소 대응 참조표를 참조하여 생성하는 단계;를 포함하는 것을 특징으로 하는 비디오 디코더/엔코더에서의 메모리 맵핑 방법.
  19. 제 18항에 있어서,
    상기 영상 데이터의 소정 위치의 데이터가 위치한 상기 메모리 뱅크의 주소가 생성되면, 상기 생성한 주소를 기초로 상기 메모리 뱅크로부터 해당하는 데이터를 독출하는 단계;를 더 포함하는 것을 특징으로 하는 디코더/엔코더에서의 메모리 맵핑 방법.
  20. 제 18항에 있어서,
    상기 파티션의 크기는 버스트 모드에서 한 번의 주소할당 후 연속하여 액세 스 가능한 데이터 크기인 것을 특징으로 하는 비디오 디코더/엔코더에서의 메모리 맵핑 방법.
  21. 영상 데이터의 부호화 방식이 프레임 단위인지 필드 단위인지 파악하는 단계;
    상기 데이터를 부호화의 기본 단위인 매크로 블록으로 분할하고, 상기 부호화 방식이 프레임 단위이면 상기 각각의 매크로 블록을 프레임 단위로 파티션하고, 상기 부호화 방식이 필드 단위이면 상기 각각의 매크로 블록을 상기 필드 단위로 파티션하는 단계; 및
    상기 파티션들 중 서로 인접한 파티션들을 각각 독립적으로 액세스 가능한 메모리 뱅크들 중 서로 다른 메모리 뱅크들에게 대응시키는 단계;를 포함하는 것을 특징으로 하는 비디오 디코더/엔코더에서의 메모리 맵핑 방법.
  22. 제 21항에 있어서,
    상기 파티션들과 대응되는 상기 메모리 뱅크들의 주소와 상기 파티션들 사이의 대응관계를 나타내는 주소 대응 참조표를 생성하고 관리하는 단계;를 더 포함하는 것을 특징으로 하는 비디오 디코더/엔코더에서의 메모리 맵핑 방법.
  23. 제 21항에 있어서,
    상기 파티션의 크기는 버스트 모드에서 한 번의 주소할당 후 연속하여 액세 스 가능한 데이터 크기인 것을 특징으로 하는 비디오 디코더/엔코더에서의 메모리 맵핑 방법.
KR20040059193A 2004-07-28 2004-07-28 비디오 디코더/엔코더에서의 메모리 맵핑 장치 및 그 방법 KR100668302B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR20040059193A KR100668302B1 (ko) 2004-07-28 2004-07-28 비디오 디코더/엔코더에서의 메모리 맵핑 장치 및 그 방법
EP20050250305 EP1622391A1 (en) 2004-07-28 2005-01-21 Memory mapping apparatus and method for video decoder/encoder
US11/068,969 US8442107B2 (en) 2004-07-28 2005-03-02 Memory mapping apparatus and method for video decoder/encoder
JP2005218214A JP5301761B2 (ja) 2004-07-28 2005-07-28 ビデオデコーダ/エンコーダでのメモリマッピング装置及びビデオデコーダ/エンコーダでのメモリマッピング方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR20040059193A KR100668302B1 (ko) 2004-07-28 2004-07-28 비디오 디코더/엔코더에서의 메모리 맵핑 장치 및 그 방법

Publications (2)

Publication Number Publication Date
KR20060010474A true KR20060010474A (ko) 2006-02-02
KR100668302B1 KR100668302B1 (ko) 2007-01-12

Family

ID=34940379

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20040059193A KR100668302B1 (ko) 2004-07-28 2004-07-28 비디오 디코더/엔코더에서의 메모리 맵핑 장치 및 그 방법

Country Status (4)

Country Link
US (1) US8442107B2 (ko)
EP (1) EP1622391A1 (ko)
JP (1) JP5301761B2 (ko)
KR (1) KR100668302B1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100846791B1 (ko) * 2006-09-08 2008-07-16 삼성전자주식회사 비디오 데이터 저장 방법 및 장치
WO2012172393A1 (en) * 2011-06-16 2012-12-20 Freescale Semiconductor, Inc. Method and device for encoding and decoding an image
US8681879B2 (en) 2007-03-28 2014-03-25 Samsung Electronics Co., Ltd. Method and apparatus for displaying video data
KR20150017275A (ko) * 2013-08-06 2015-02-16 삼성전자주식회사 복수 개의 메모리 컨트롤러를 이용한 영상 데이터 저장 방법 및 장치

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ATE543179T1 (de) 2002-09-04 2012-02-15 Microsoft Corp Entropische kodierung mittels anpassung des kodierungsmodus zwischen niveau- und lauflängenniveau-modus
JP4570532B2 (ja) * 2005-08-02 2010-10-27 パナソニック株式会社 動き検出装置、動き検出方法、集積回路およびプログラム
CN101031052B (zh) * 2006-02-28 2010-11-03 上海奇码数字信息有限公司 图像在存储器中的地址映射方法
US8787465B2 (en) * 2006-03-31 2014-07-22 Intel Corporation Method for neighboring block data management of advanced video decoder
JP4757080B2 (ja) * 2006-04-03 2011-08-24 パナソニック株式会社 動き検出装置、動き検出方法、動き検出集積回路および画像符号化装置
JP4909779B2 (ja) * 2006-04-17 2012-04-04 パナソニック株式会社 画像データ転送方法、画像処理装置、及び撮像システム
JP4182442B2 (ja) 2006-04-27 2008-11-19 ソニー株式会社 画像データの処理装置、画像データの処理方法、画像データの処理方法のプログラム及び画像データの処理方法のプログラムを記録した記録媒体
JP4682384B2 (ja) * 2006-07-11 2011-05-11 株式会社メガチップス 1/4画素輝度用動き予測機構、組合せ輝度用動き予測機構、及び組合せ輝度・色差用動き予測機構
JP2008048258A (ja) * 2006-08-18 2008-02-28 Fujitsu Ltd 画像データ記憶装置、および記憶方法
US7463267B2 (en) 2006-10-26 2008-12-09 Lsi Corporation System for interleaved storage of video data
US8737469B1 (en) * 2007-04-03 2014-05-27 Mediatek Inc. Video encoding system and method
EP2141930A4 (en) * 2007-04-26 2011-03-23 Panasonic Corp MOTION DETECTION APPARATUS, MOTION DETECTION METHOD, AND MOTION DETECTION PROGRAM
JP4695124B2 (ja) 2007-09-13 2011-06-08 日本電信電話株式会社 動画像符号化における動き探索装置
US8542725B1 (en) 2007-11-14 2013-09-24 Marvell International Ltd. Decision feedback equalization for signals having unequally distributed patterns
FR2925189A1 (fr) * 2007-12-14 2009-06-19 Thomson Licensing Sas Dispositif et procede de gestion de memoire
EP2250568B1 (en) * 2008-01-17 2012-10-17 Edgeware AB A method for data storage means and a system with data storage means
US8565325B1 (en) 2008-03-18 2013-10-22 Marvell International Ltd. Wireless device communication in the 60GHz band
GB0807803D0 (en) * 2008-04-29 2008-06-04 Imagination Tech Ltd An efficient apparatus for fast video edge filitering
US8179974B2 (en) * 2008-05-02 2012-05-15 Microsoft Corporation Multi-level representation of reordered transform coefficients
US8498342B1 (en) 2008-07-29 2013-07-30 Marvell International Ltd. Deblocking filtering
US8406307B2 (en) * 2008-08-22 2013-03-26 Microsoft Corporation Entropy coding/decoding of hierarchically organized data
US9253496B2 (en) * 2008-12-12 2016-02-02 Qualcomm Incorporated Intelligent decoded picture buffering
KR101060492B1 (ko) 2009-01-06 2011-08-30 주식회사 코아로직 픽셀의 버퍼링 방법 및 버퍼 시스템
US8520771B1 (en) 2009-04-29 2013-08-27 Marvell International Ltd. WCDMA modulation
WO2010124736A1 (en) * 2009-04-30 2010-11-04 Telefonaktiebolaget Lm Ericsson (Publ) Efficient internal cache for hardware motion estimation
US9319880B2 (en) * 2010-09-15 2016-04-19 Intel Corporation Reformatting data to decrease bandwidth between a video encoder and a buffer
JP4982907B2 (ja) * 2010-12-07 2012-07-25 株式会社メガチップス 1/4画素色差用動き予測機構及び1/4画素輝度・色差用動き予測機構
US8819379B2 (en) 2011-11-15 2014-08-26 Memory Technologies Llc Allocating memory based on performance ranking
US9083977B2 (en) * 2012-11-27 2015-07-14 Omnivision Technologies, Inc. System and method for randomly accessing compressed data from memory
US9241169B2 (en) 2013-12-17 2016-01-19 Broadcom Corporation Raster to block conversion in a compressed domain
CN105335296B (zh) * 2014-07-30 2018-08-14 华为技术有限公司 一种数据处理方法、装置及系统
CN105681789B (zh) * 2014-11-20 2018-07-17 炬芯(珠海)科技有限公司 一种参考帧数据读取命令的重排方法及装置
GB2559042B (en) 2015-12-21 2019-06-05 Imagination Tech Ltd Allocation of tiles to processing engines in a graphics processing system

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1568379A (en) * 1976-02-19 1980-05-29 Micro Consultants Ltd Video store
JP3331351B2 (ja) * 1991-12-27 2002-10-07 ソニー株式会社 画像データ符号化方法及び装置
KR0122741B1 (ko) 1992-09-23 1997-11-17 배순훈 병렬 구조를 갖는 기억 장치
CA2145365C (en) 1994-03-24 1999-04-27 Anthony M. Jones Method for accessing banks of dram
US6301299B1 (en) * 1994-10-28 2001-10-09 Matsushita Electric Industrial Co., Ltd. Memory controller for an ATSC video decoder
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
JPH10191236A (ja) 1996-12-25 1998-07-21 Nec Corp 画像処理装置及び画像データメモリ配置方法
JPH11298857A (ja) 1998-02-13 1999-10-29 Matsushita Electric Ind Co Ltd 記憶装置において多くの領域を占めているフレ―ム領域に他の用途を与えるよう画像復号を行う画像復号装置及び画像復号プログラムを記録したコンピュ―タ読取可能な記録媒体
US6356962B1 (en) * 1998-09-30 2002-03-12 Stmicroelectronics, Inc. Network device and method of controlling flow of data arranged in frames in a data-based network

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100846791B1 (ko) * 2006-09-08 2008-07-16 삼성전자주식회사 비디오 데이터 저장 방법 및 장치
US8681879B2 (en) 2007-03-28 2014-03-25 Samsung Electronics Co., Ltd. Method and apparatus for displaying video data
WO2012172393A1 (en) * 2011-06-16 2012-12-20 Freescale Semiconductor, Inc. Method and device for encoding and decoding an image
KR20150017275A (ko) * 2013-08-06 2015-02-16 삼성전자주식회사 복수 개의 메모리 컨트롤러를 이용한 영상 데이터 저장 방법 및 장치

Also Published As

Publication number Publication date
US8442107B2 (en) 2013-05-14
JP5301761B2 (ja) 2013-09-25
KR100668302B1 (ko) 2007-01-12
US20060023792A1 (en) 2006-02-02
EP1622391A1 (en) 2006-02-01
JP2006042364A (ja) 2006-02-09

Similar Documents

Publication Publication Date Title
KR100668302B1 (ko) 비디오 디코더/엔코더에서의 메모리 맵핑 장치 및 그 방법
KR100695141B1 (ko) 영상처리시스템에 있어서 메모리 억세스장치 및 방법, 데이터 기록장치 및 방법과 데이터 독출장치 및 방법
KR101127962B1 (ko) 영상 처리 장치 및 영상 처리를 위한 프레임 메모리 관리 방법
TWI544751B (zh) 重新製作資料的格式以降低視訊編碼器與緩衝器之間的頻寬
US9509992B2 (en) Video image compression/decompression device
US8890881B2 (en) Mapping method and video system for mapping pixel data included in the same pixel group to the same bank of memory
JP5309700B2 (ja) 動画像復号装置および符号化装置
KR100606812B1 (ko) 비디오 디코딩 시스템
JPH08123953A (ja) 画像処理装置
JP2006520551A (ja) メモリワードアレイ構成およびメモリアクセス予測結合
CN103947211A (zh) 具有已分区比特流的视频编码装置及方法
JP6679290B2 (ja) 半導体装置
US20080158601A1 (en) Image memory tiling
Bonatto et al. Multichannel SDRAM controller design for H. 264/AVC video decoder
TWI418219B (zh) 用於動態補償系統之資料映像方法及快取記憶體系統
US20060227876A1 (en) System, method, and apparatus for AC coefficient prediction
KR20110065617A (ko) 프레임 메모리의 단일뱅크 내 참조 영상의 픽셀 인터리빙 방법 및 장치, 이를 포함하는 영상코덱 시스템
Zhang et al. An efficient reference frame storage scheme for H. 264 HDTV decoder
KR100248085B1 (ko) 영상 관련 데이터를 저장하기 위한 메모리 맵 구조를 가지는 에스디램
KR100556341B1 (ko) 메모리 대역폭이 감소된 비디오 디코더 시스템
CN102625095B (zh) 一种基于avs的帧间预测方法
CN102625091B (zh) 一种基于avs的帧间预测方法
JP4983160B2 (ja) 動画像処理装置
WO2009080590A1 (en) Method and apparatus for performing de-blocking filtering of a video picture
Soares et al. Integration issues on the development of an H. 264/AVC video decoder SoC for SBTVD set top box

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20121228

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20131230

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20141223

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20151229

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20161228

Year of fee payment: 11

LAPS Lapse due to unpaid annual fee