KR100714096B1 - 온-칩 네트워크를 구비한 동영상 인코딩 장치 및 그 설계방법 - Google Patents

온-칩 네트워크를 구비한 동영상 인코딩 장치 및 그 설계방법 Download PDF

Info

Publication number
KR100714096B1
KR100714096B1 KR1020050029718A KR20050029718A KR100714096B1 KR 100714096 B1 KR100714096 B1 KR 100714096B1 KR 1020050029718 A KR1020050029718 A KR 1020050029718A KR 20050029718 A KR20050029718 A KR 20050029718A KR 100714096 B1 KR100714096 B1 KR 100714096B1
Authority
KR
South Korea
Prior art keywords
module
image data
slave
slave module
cluster
Prior art date
Application number
KR1020050029718A
Other languages
English (en)
Other versions
KR20060071075A (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 KR20060071075A publication Critical patent/KR20060071075A/ko
Application granted granted Critical
Publication of KR100714096B1 publication Critical patent/KR100714096B1/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/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/436Methods 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 using parallelised computational arrangements
    • 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/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • G06F13/366Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using a centralised polling arbiter
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package

Landscapes

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

Abstract

온-칩 네트워크를 구비한 동영상 인코딩 장치 및 그 설계 방법이 개시된다. 본 발명에 따른 동영상 인코딩 장치는 마스터 모듈과 슬레이브 모듈 사이의 복수 채널을 제공하는 크로스바 스위치, 마스터 모듈과 크로스바 스위치를 연결하는 마스터 네트워크 인터페이스 및 슬레이브 모듈과 크로스바 스위치를 연결하는 슬레이브 네트워크 인터페이스를 포함한다. 본 발명에 의하면, 클러스터 분리에 의해 병렬 처리의 수를 증가시켜 데이터 대역폭을 향상시키고 시스템 전체의 성능을 향상시킬 수 있다.

Description

온-칩 네트워크를 구비한 동영상 인코딩 장치 및 그 설계 방법{Apparatus with on-chip network for encoding moving picture and design method thereof}
도1a는 본 발명의 일 실시예에 따른 동영상 인코딩 장치의 블록도이다.
도1b는 도1a에서 크로스바 스위치의 개념도이다.
도2a는 도1a에서 병렬 처리를 고려하여 클러스터를 분리한 블록도이다.
도2b는 도2a에서 병렬 처리를 설명하는 도면이다.
도3은 본 발명의 일 실시예에 따른 동영상 인코딩 장치의 설계 방법의 흐름도이다.
본 발명은 온-칩 네트워크를 구비한 동영상 인코딩 장치 및 그 설계 방법에 관한 것으로서, 보다 상세하게는 온-칩 네트워크를 구비한 MPEG-4 인코더(encoder) SOC(System On Chip) 및 그 설계 방법에 관한 것이다.
일반적으로, MPEG-4 인코더 설계 분야는 멀티미디어 응용 분야이다. 멀티미디어 응용 분야에 사용되는 SOC의 구조는 마이크로 프로세서를 내장하고 있으며 멀티미디어를 전용으로 처리하는 마이크로 프로세서나 DSP(Digital Signal Processing) 및 주변장치 모듈을 장착하고 있다.
멀티미디어를 처리하는 하드웨어를 설계하고 이를 제어하는 프로그램은 버스에 연결된 마이크로 프로세서에서 동작하는 구조이다. 다수의 버스 마스터들과 IP(Intellectual Property)들로 구성된 MPEG-4 인코더 설계에 온-칩 버스(On-Chip Bus)를 많이 사용하고 있다.
종래에는 온-칩 버스에 다수의 마이크로 프로세서와 IP들을 연결하고 주변장치 버스에 주변장치 모듈을 연결하여 멀티미디어 칩을 설계하는 구조를 많이 이용해왔다.
그러나, 최근에는 멀티미디어 사양과 성능의 향상으로 인하여 단일 또는 다수의 마이크로 프로세서나 온-칩 버스 구조로는 이와 같은 요구를 만족하기 어려운 상황이 되었다.
다수의 마이크로 프로세서들로 구성된 시스템에서는 버스 마스터들이 온-칩 버스를 공유하므로 버스의 대역폭(bandwidth) 저하를 가져온다. 그리고, IP들의 수가 증가함에 따라서 온-칩 버스에 IP들을 확장하여 연결하는데 어려움이 있다. 또한, 전력 소모가 증가하게 되므로 기존의 온-칩 버스를 이용하여 대규모 데이터 전송이 필요한 MPEG-4 인코더(Encoder)를 설계하는 데 제약사항이 존재한다.
종래의 MPEG-4 인코더 SOC는 단일 계층 버스 구조를 이용함으로 병렬처리가 불가능하다. 즉, 마이크로 프로세서가 영상 입력 모듈인 VIM(Video Input Module)의 제어 레지스터에 제어 정보를 보내기 위해서 온-칩 버스를 사용하는 경우에 DMAC(Direct Memory Access Controller)는 버스를 사용할 수 없고, 마이크로 프로 세서의 동작이 종료될 때까지 기다려야 한다.
또한, VIM이 입력되는 영상을 DMAC를 통해서 SDRAM으로 전송하는 동안에는 마이크로 프로세서는 DMAC가 종료될 때까지 온-칩 버스를 이용하지 못하고 기다려야 한다.
온-칩 버스 통신 구조를 갖는 MPEG-4 인코더에서는 마이크로 프로세서가 MEC(Motion Estimation Coarse)와 같은 슬레이브 하드웨어의 제어 레지스터에 제어 정보를 설정하는 동안 DMAC가 영상 데이터를 SDRAM으로부터 MEC로 전달할 수 없고 DMAC가 영상 데이터를 입출력 모듈인 VIM으로부터 SDRAM으로 전달할 수도 없으며 마이크로 프로세서가 VIM의 제어 레지스터에 제어 정보를 설정할 수도 없다. 그리고, 마이크로 프로세서가 VIM의 제어 레지스터에 제어 정보를 설정하는 동안 DMAC가 영상 데이터를 VIM으로부터 SDRAM으로 전송할 수도 없다.
이는 버스의 사용률을 저하하므로 버스의 대역폭(bandwidth)저하를 가져오며 전체적인 시스템 성능을 저하시킨다는 문제점이 있다.
본 발명이 이루고자 하는 기술적 과제는 크로스바 스위치가 마스터 모듈과 슬레이브 모듈 사이의 복수 채널을 제공함으로써 동영상 인코딩을 병렬 처리할 수 있는 동영상 인코딩 장치를 제공하는데 있다.
본 발명이 이루고자 하는 기술적 과제는 동영상 인코딩 과정의 병렬성에 기초하여 분리한 클러스터를 온-칩 네트워크에 연결함으로써 동영상 인코딩을 병렬 처리할 수 있는 동영상 인코딩 장치의 설계 방법을 제공하는 데 있다.
상기의 기술적 과제를 달성하기 위한 본발명의 일 실시예에 따른 동영상 인코딩 장치는, 마스터 모듈과 슬레이브 모듈 사이의 복수 채널을 제공하는 크로스바 스위치, 상기 마스터 모듈과 상기 크로스바 스위치를 연결하는 마스터 네트워크 인터페이스 및 상기 슬레이브 모듈과 상기 크로스바 스위치를 연결하는 슬레이브 네트워크 인터페이스를 포함한다.
상기의 기술적 과제를 달성하기 위한 본발명의 일 실시예에 따른 동영상 인코딩 장치의 설계 방법은, 동영상 인코딩 과정 중에서 병렬 처리 가능한 과정을 검출하는 단계, 상기 검출된 과정을 수행하는 모듈을 클러스터로 분리하는 단계 및 상기 분리된 클러스터를 온-칩 네트워크에 연결하는 단계를 포함한다.
이하에서는 본 발명의 일 실시예에 따른 동영상 인코딩 장치를 설명함에 있어서 MPEG-4 인코더(encoder) SOC(System On Chip)에 관하여 기술한다. 그러나, 이것은 예시에 불과하다. 다른 압축 표준 및 다른 반도체 장치에 대하여 본 발명을 적용하는 것도 가능하다.
멀티미디어 응용분야인 MPEG-4 인코더(encoder) 칩(chip)에서는 대량의 데이터 처리가 요구된다. 본 발명의 일 실시예에 따른 동영상 인코딩 장치는 이러한 MPEG-4 칩에 적합한 온-칩 네트워크 구조를 제공한다.
본 발명의 일 실시예에 따른 동영상 인코딩 장치는 컴퓨터 네트워크의 스위칭 방법을 사용하는 통신 개념의 버스 구조로서 버스 마스터와 슬레이브들이 스위칭 방법에 의해 데이터를 병렬로 통신하는 구조이다.
본 발명의 일 실시예에 따른 동영상 인코딩 장치는 병렬 통신 구조를 제공하는 온-칩 네트워크에 MPEG-4 인코더의 병렬성을 분석하여 적용한 온-칩 네트워크 구조를 제공한다.
온-칩 네트워크 통신 구조는 컴퓨터 네트워크에서 사용하는 다중 채널을 제공함으로써 마스터들이 지연시간 없이 다중 채널을 통해서 슬레이브 인코더 모듈들과 데이터 통신할 수 있다. 따라서, 클러스터 분리에 의해 병렬 처리의 수를 증가시켜 데이타 대역폭(bandwidth)을 향상시켜서 시스템 전체의 성능을 향상시킬 수 있다.
이하 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 설명하기로 한다.
도1a는 본 발명의 일 실시예에 따른 동영상 인코딩 장치의 블록도이다. 도1a를 참조하면, 동영상 인코딩 장치는 CPU 클러스터(110), DMAC(Direct Memory Access Controller) 클러스터(120), 인코더 클러스터(130) 및 온-칩 네트워크(170)를 포함한다.
동영상 인코딩 장치는 클러스터 분리에 의해 병렬 처리의 수가 증가된다. 도1a는 온-칩 버스 구조에서 온-칩 버스를 이용하여 데이터 통신을 하는 가장 간단한 형태인 3개의 클러스터로 구성된 통신 구조이다.
CPU 클러스터(110)는 프로세서(110-1) 및 SRAM(110-2)을 포함한다. 프로세서(110-1)는 버스 마스터로서 마스터 모듈이다. 프로세서(110-1)로는 ARM 프로세서가 사용될 수 있다. SRAM(110-2)은 프로그램 메모리이다.
프로세서(110-1)는 SRAM(110-2)로부터 명령어를 실행하거나 슬레이브 모듈의 제어 레지스터를 초기화한다.
DMAC 클러스터(120)는 DMAC(120-1), SDRAM(120-2) 및 SDRAM 제어부(120-3)를 포함한다. DMAC(Direct Memory Access Controller)(120-1)는 메모리 접근 제어기로서 마스터 모듈이다. SDRAM(120-2)은 MPEG-4 형식의 영상 데이터를 저장하는 프레임 메모리이다. SDRAM 제어부(120-3)는 SDRAM의 데이터 입출력을 제어한다.
DMAC(120-1)는 메모리 직접 접근(Direct Memory Access: DMA) 방식으로 데이터를 전송할 때, CPU 클러스터(110)와는 독립된 전송 회로(채널)를 만들어 SDRAM(120-2)과 인코더 클러스터(130) 사이에서 직접 데이터를 교환할 수 있도록 제어하는 회로이다.
인코더 클러스터(130)는 멀티미디어 인코더 하드웨어 IP(Intellectual Property)들을 포함한다. 멀티미디어 인코더 하드웨어 IP들은 VIM(Video Input Module)(130-1), MEC(Motion Estimation Coarse) 모듈(130-2), MEF(Motion Estimation Fine)/MC(Motion Compensation) 모듈 (130-3), DCT/Q(Discrete Cosine Transform/Quantization) 및 IDCT/IQ(Inverse Discrete Cosine Transform/Inverse Quantization) 모듈(130-4), MVMVD(Motion Vector/Motion Vector Difference) 모듈(130-5), HVLC(Horizontal Variable Coding) 모듈(130-6), TVLC(Texture Variable Length Coding) 모듈(130-7), REC(Re-Construction) 모듈(130-8), SP(Stream Producer) 모듈(130-9) 등이다.
인코더 하드웨어 IP들은 슬레이브 하드웨어들이다. 슬레이브 하드웨어는 제 어 레지스터, 실제 기능 담당 하드웨어, 로컬 버퍼로 구성된다. 제어 레지스터는 슬레이브 하드웨어를 동작시키기 위한 정보를 가지고, 로컬 버퍼는 실제 기능 담당 하드웨어에서 처리된 결과를 저장하는 로컬 메모리이다.
VIM(Video Input Module)(130-1)은 영상 입력 모듈이다. VIM(130-1)은 외부 CMOS 이미지 센서로 입력된 영상 데이터를 MPEG-4 표준 입력 형태인 4:2:0(Y:Cr:Cb) 형태로 변환한다. VIM(130-1)은 변환된 데이터를 내부 메모리에 저장한다. 내부 메모리는 입력 프레임 버퍼인 IF_BUF이다.
저장된 영상 데이터는 MEC 모듈(130-2)의 내부 메모리인 SWC_BUF와 MEF 모듈(130-3)의 내부 메모리인 SWF_BUF에 저장된다. MEC 모듈(130-2)은 개략적 움직임 추정 모듈이다. MEC 모듈(130-2)는 매크로 블록 단위로 개략적인 (Coarse Resolution) 움직임 추정을 한다.
MEF/MC 모듈(130-3)은 영상 데이터에서 움직임 벡터를 추출한다. 이를 위하여, MEF는 완벽한 영상(Fine Resolution) 움직임 추정을 한다. 그리고, MC는 움직임 추정을 위한 데이터 생성을 조정하고 움직임 보상을 수행한다.
영상 데이터의 공간적 여분을 줄이기 위하여 DCT/Q 모듈(130-4)은 영상 데이터에 이산 여현 변환(Discrete Cosine Transform)을 사용하고 양자화(Quantization)한다. IDCT/Q(130-4)는 역 이산 여현 변환(Inverse Discrete Cosine Transform)을 사용하고 역양자화(Inverse Quantization)한다.
MVMVD 모듈(130-5)은 MEF/MC 모듈(130-3)에서 추출된 움직임 벡터(Motion Vector: MV)값을 가변 길이 코드화(Variable Length Coding: VLC)하기 위한 움직임 벡터 데이터(Motion Vector Data: MVD)값으로 변환한다.
HVLC 모듈(130-6)은 스트림 헤더(Stream Header) 정보와 움직임 정보를 입력받아 실제 비트 스트림(bit stream) 제작에 필요한 고정 길이 코드(Fixed Length Coding: FLC) 데이터를 생성한다. HVLC 모듈(130-6)은 프로세서(110-1)에서 실행되는 펌웨어(Firmware)이다.
TVLC(130-7)는 가변 길이 변환 모듈이다. TVLC(130-7)는 DCT(130-4)에서 계산된 계수(Coefficient)를 가변 길이 부호화한다. 또한, TVLC(130-7)는 가변 길이 부호화된 데이터에서 DCT(130-4)에 사용될 계수(Coefficient)를 생성한다.
REC(130-8)는 재구성 모듈이다. REC 모듈(130-8)은 기준되는 영상 데이터에 차 영상 데이터를 더하여 현재 영상을 구성한다. 재구성된 영상은 SDRAM(120-2)에 저장된다. SP 모듈(130-9)은 TVLC 비트 스트림 정보와 프로세서(110-1)에 넘겨주는 HVLC 정보를 넘겨받아 최종 압축된 비트 스트림을 생성한다.
온-칩 네트워크(170)는 크로스바 스위치(crossbar switch)(180), MNI(Master Network Interface)(190) 및 SNI(Slave Network Interface)(192)를 포함한다.
일반적으로, 크로스바 스위치는 입선 수를 m, 출선 수를 n이라 할 때 임의의 입선과 출선의 접속, 즉 (m × n) 종류의 접속을 (m + n - 1)개의 제어 소자로서 수행하는 것이다. 이것으로 동시에 m과 n 중 어느 하나가 작은 쪽의 수만큼 독립하여 접속을 실현할 수도 있다.
도1b는 도1a에서 크로스바 스위치(180)의 개념도이다. 도1b를 참조하면, 복식으로 접속된 수평로와 수직로가 서로 교차하고 있다. 그리고, 그 교차점에는 접 점 기구가 배치되어 있다.
또, 각 수평로와 수직로에는 각각 하나씩의 수평 전자석이나 수직 전자석이 있어 임의의 한 기구(수직, 수평)의 전자석을 동작시키면 그 교차점의 접점 기구가 닫혀서 접속된다. 도1b에서는 두 번째 수평로와 다섯 번째 수직로, 다섯 번째 수평로와 세 번째 수직로가 접속되어 있다.
다시 도1a를 참조하면, 크로스바 스위치(180)는 마스터 모듈(110, 120)과 슬레이브 모듈(130) 사이의 복수 채널을 제공한다. 크로스바 스위치(180)는 마스터 모듈(110, 120)과 슬레이브 모듈 사이의 데이터 전송을 스위칭함으로써 데이터가 충돌을 피해서 전송될 수 있도록 복수의 패스를 설정한다.
크로스바 스위치(180)는 복수의 입력 포트(180-1)들 및 복수의 아비터(180-6)들을 포함한다. 입력 포트(180-1)는 마스터 모듈(110, 120) 및 슬레이브 모듈(130)로부터 전송된 데이터를 입력받는다. 아비터(180-6)는 마스터 모듈(110, 120)의 버스 사용권을 우선순위에 따라 중재하는 버스 중재기이다.
온-칩 네트워크(170) 구조는 컴퓨터 네트워크를 온-칩 버스에 적용시킨 것으로 마스터와 슬레이브들 간의 병렬 처리를 향상시킴으로 전체 시스템의 성능을 향상시킨다. 온-칩 네트워크(170) 구조는 IP(Intellectual Property)들간의 병렬 처리가 증가할수록 높은 성능을 제공한다.
MNI(190)는 마스터 모듈(110,120)을 크로스바 스위치(180)에 연결하는 마스터 인터페이스 모듈이다. SNI(192)는 슬레이브 모듈(130)을 크로스바 스위치(180)에 연결하는 슬레이브 인터페이스 모듈이다.
마스터 모듈(110, 120) 및 슬레이브 모듈(130)은 UPS(Up-sampler)(195) 및 DNS(Down-sampler)(197)를 포함한다. UPS(195)는 데이터 송신을 위한 것이고, DNS(197)는 데이터 수신을 위한 것이다.
동영상 인코딩 장치는 인코딩 과정의 병렬 처리가 가능하다. 즉, 프로세서(110-1)가 MEC 모듈(130-2)의 제어 레지스터를 설정(M-F)하는 동안 DMAC(120-1)가 SWC-BUF로부터 영상 데이터를 수신하여 SDRAM(120-2)에 저장(M-D)하는 것이 가능하다.
프로세서(110-1)가 MEC 모듈(130-2)의 제어 레지스터를 초기화하는 동안 DMAC(120-1)가 지연시간 없이 다른 데이터 채널을 이용하여 데이터를 전송할 수 있으므로 데이터 전송 지연시간이 감소된다. 따라서, MPEG-4 인코더(encoder)의 성능이 향상된다.
도2a는 도1a에서 병렬 처리를 고려하여 클러스터를 분리한 블록도이다. 도2a를 참조하면, 동영상 인코딩 장치는 CPU 클러스터(110), DMAC 클러스터(120), Vim 클러스터(230), 인코더 클러스터(240), Rec 클러스터(250), 로컬 버퍼 클러스터(260) 및 온-칩 네트워크(170)를 포함한다.
Vim 클러스터(230)는 도1a의 인코더 클러스터(130)에서 IF_BUF를 제외한 VIM을 클러스터로 분리한 것이다.
인코더 클러스터(240)는 도1a의 인코더 클러스터(130)에서 SWC_BUF를 제외한 MEC 모듈(130-2), SWF_BUF를 제외한 MEF/MC 모듈(130-3), DCT/IDCT 모듈(130-4), MVMVD 모듈(130-5), HVLC 모듈(130-6), TVLC 모듈(130-7), SP 모듈(130-9)을 클러 스터로 분리한 것이다.
Rec 클러스터(250)는 도1a의 인코더 클러스터(130)에서 REC_BUF를 제외한 REC 모듈을 클러스터로 분리한 것이다.
즉, 네트워크 스위치(180)를 이용하여 통신하는 하드웨어 모듈인 VIM(230), MEC 모듈(240-1), MEF/MC 모듈(240-2) 및 REC 모듈(250)을 클러스터로 분리하여 병렬성을 고려한 온-칩 네트워크 통신 구조를 구성한다.
로컬 버퍼 클러스터(260)는 도1a의 인코더 클러스터(130)에서 VIM 모듈(130-1)의 IF_BUF, MEC 모듈(130-2)의 SWC_BUF, MEF/MC 모듈(130-3)의 SWF_BUF, REC 모듈(130-8)의 REC_BUF를 클러스터로 분리한 것이다.
스위치 모듈(180)을 이용하여 SDRAM(120-2)과 데이터 통신을 하는 VIM(230). MEC(240-1), MEF/MC(240-2). REC(250) 하드웨어 모듈에서 로컬 버퍼를 분리하여 병렬성을 높이는 것이다. 로컬 버퍼들로 구성된 로컬 버퍼 클러스터를 인코더 클러스터와 분리하여 이들을 서로 다른 데이터 전송 채널을 이용하여 전송한다.
CPU 클러스터(110)는 하드웨어 모듈을 동작시키기 위하여 제어 레지스터를 초기화하는 부분이다. DMAC 클러스터(120), Vim 클러스터(230), 인코더 클러스터(240) 및 Rec 클러스터(250)는 인코딩 기능을 수행하는 하드웨어이다. 로컬 버퍼 클러스터(260)는 하드웨어에 의해 처리된 영상 데이터를 저장하는 부분이다.
동영상 인코딩 장치는 로컬 버스를 포함한다. 로컬 버스는 네트워크 스위치(180)를 이용하여 통신하는 모듈(230, 240-1, 240-2, 250, 260)과 다른 하드웨어 모듈을 연결한다. 하드웨어 모듈은 로컬 버스를 이용하여 통신한다.
도2b는 도2a에서 병렬 처리를 설명하는 도면이다. 도2b를 참조하면, 프로세서(110-1)가 하드웨어 모듈의 제어 레지스터를 초기화하는 동안 DMAC(120-1)는 로컬 버퍼(260)의 데이터를 SDRAM(120-2)으로 전송할 수 있다. 하드웨어에서 로컬 버퍼를 분리함으로 각 하드웨어 모듈의 제어 레지스터 설정과 데이터 전송을 병렬 처리하는 것이 가능한 것이다.
구체적으로는, 프로세서(110-1)가 VIM(230)의 제어 레지스터를 초기화(V-F)하는 동안, DMAC는 IF_BUF의 데이터를 SDRAM(120-2)으로 전송(V-D)하거나, WC_BUF의 데이터를 SDRAM(120-2)으로 전송(M-D)하거나, REC_BUF의 데이터를 SDRAM(120-2)으로 전송(R-D)하는 병렬 처리가 가능하다.
프로세서(110-1)가 VIM(230)의 제어 레지스터에 제어 정보를 설정하는 동작을 V-F, DMAC(120-1)가 영상 데이터를 VIM(230)으로부터 SDRAM(120-2)으로 전송하는 동작을 V-D, 프로세서(110-1)가 MEC 모듈(240-1)과 같은 슬레이브 하드웨어의 제어 레지스터에 제어 정보를 설정하는 동작을 M-F, DMAC(120-1)가 영상 데이터를 SDRAM(120-2)으로부터 MEC 모듈(240-1)로 전달하는 동작을 M-D, 프로세서(110-1)가 REC 모듈(250)의 제어 레지스터에 제어 정보를 설정하는 동작을 R-F, DMAC(120-1)가 영상 데이터를 REC 모듈(250)로부터 SDRAM(120-2)으로 전송하는 동작을 R-D라고 했을 때, 온-칩 네트워크 통신 구조의 병렬성은 다음의 표1과 같다.
V-F V-D M-F M-D R-F R-D
V-F o o o
V-D o o o
M-F o o o
M-D o o o
R-F o o o
R-D o o o
표1을 참조하면, VIM(230)이 DMAC(120-1)를 통해서 데이터를 전송하는 동안, 프로세서(110-1)는 V-F, M-F, R-F 중의 하나와 병렬처리가 가능하다. 따라서 도2b와 같이 6개의 클러스터로 구성된 온-칩 네트워크 구조를 통해서 6가지 형태의 병렬 처리가 가능한 구조를 가짐으로써 데이터 대역폭(bandwidth)을 향상시켜 전체적인 시스템 성능을 향상시킬 수 있다.
도3은 본 발명의 일 실시예에 따른 동영상 인코딩 장치의 설계 방법의 흐름도이다. 도3을 참조하면, 동영상 인코딩 과정 중에서 병렬 처리 가능한 과정을 검출한다(S310). 즉, MPEG-4 인코더에서 병렬성을 찾는다.
병렬 처리 가능한 과정을 수행하는 모듈을 클러스터로 분리한다(S320). 즉, 병렬 처리를 고려하여 클러스터를 분리한다. 프로세서 및 SRAM을 CPU 클러스터로 분리하고, DMAC 및 SDRAM 등을 DMAC 클러스터로 분리하고, 영상 데이터를 소정의 압축 표준에 따라 인코딩하는 슬레이브 모듈들인 VIM, MEC, MEF/MC, DCT/Q 및 IDCT/IQ, MVMVD, HVLC, TVLC, REC, SP 모듈 등을 인코더 클러스터로 분리한다. 상기 인코더 클러스터에서 VIM을 VIM 클러스터로 분리하고, REC 모듈을 Rec 클러스터로 분리하고, 소정 모듈의 내부 메모리를 로컬 버퍼 클러스터로 분리한다.
분리된 클러스터를 온-칩 네트워크에 연결한다(S330). 온-칩 네트워크는 크로스바 스위치를 이용하여 마스터 모듈과 슬레이브 모듈 사이에 복수 채널을 제공한다.
이제까지 본 발명에 대하여 그 바람직한 실시 예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
상술한 바와 같이 본 발명에 따르면, 온-칩 네트워크 통신 구조는 컴퓨터 네트워크에서 사용하는 다중 채널을 제공함으로 마스터들이 지연시간 없이 다중 채널을 통해서 슬레이브인 인코더 모듈들과 데이터 통신할 수 있다. 따라서, 클러스터 분리에 의해 병렬 처리의 수를 증가시켜 데이터 대역폭을 향상시키고 시스템 전체의 성능을 향상시킬 수 있다.

Claims (9)

  1. 영상 데이터를 소정의 압축 표준에 따라 인코딩하는 슬레이브 모듈과 상기 슬레이브 모듈을 제어하는 마스터 모듈 사이의 복수 채널을 제공하는 크로스바 스위치;
    상기 마스터 모듈과 상기 크로스바 스위치를 연결하는 마스터 네트워크 인터페이스;및
    상기 슬레이브 모듈과 상기 크로스바 스위치를 연결하는 슬레이브 네트워크 인터페이스를 포함하는 것을 특징으로 하는 동영상 인코딩 장치.
  2. 제1항에 있어서, 상기 마스터 모듈은
    상기 슬레이브 모듈의 제어 레지스터를 초기화하는 프로세서 모듈;및
    상기 슬레이브 모듈의 데이터 전송을 제어하는 메모리 접근 제어 모듈을 포함하는 것을 특징으로 하는 동영상 인코딩 장치.
  3. 제1항에 있어서, 상기 슬레이브 모듈은
    외부 센서로 입력된 영상 데이터를 소정의 압축 표준에 따른 입력 형태로 변환하는 영상 입력 모듈;
    상기 변환된 영상 데이터의 움직임을 추정하는 움직임 추정 모듈;
    상기 변환된 영상 데이터의 움직임을 보상하는 움직임 보상 모듈;및
    상기 변환된 영상 데이터에서 기준되는 영상 데이터에 차 영상 데이터를 더 하여 현재 영상을 구성하는 재구성 모듈을 포함하는 것을 특징으로 하는 동영상 인코딩 장치.
  4. 제3항에 있어서,
    상기 슬레이브 모듈에서 처리된 영상 데이터를 저장하는 로컬 버퍼 메모리;
    상기 로컬 버퍼 메모리와 상기 크로스바 스위치를 연결하는 슬레이브 네트워크 인터페이스;및
    상기 슬레이브 모듈과 상기 로컬 버퍼 메모리 사이에서 데이터를 전송하는 로컬 버스를 더 포함하는 것을 특징으로 하는 동영상 인코딩 장치.
  5. 동영상 인코딩 과정 중에서 병렬 처리 가능한 과정을 검출하는 단계;
    상기 검출된 과정을 수행하는 모듈을 클러스터로 분리하는 단계;및
    상기 분리된 클러스터를 온-칩 네트워크에 연결하는 단계를 포함함을 특징으로 하는 동영상 인코딩 장치의 설계 방법.
  6. 제5항에 있어서, 상기 클러스터 분리 단계는
    영상 데이터를 소정의 압축 표준에 따라 인코딩하는 슬레이브 모듈, 상기 슬레이브 모듈의 제어 레지스터를 초기화하는 프로세서 모듈 및 상기 슬레이브 모듈의 데이터 전송을 제어하는 메모리 제어 모듈을 클러스터로 분리하는 단계를 포함함을 특징으로 하는 동영상 인코딩 장치의 설계 방법.
  7. 제6항에 있어서, 상기 슬레이브 모듈은
    외부 센서로 입력된 영상 데이터를 소정의 압축 표준에 따른 입력 형태로 변환하는 영상 입력 모듈, 상기 변환된 영상 데이터의 움직임을 추정하는 움직임 추정 모듈, 상기 변환된 영상 데이터의 움직임을 보상하는 움직임 보상 모듈 및 상기 변환된 영상 데이터에서 기준되는 영상 데이터에 차 영상 데이터를 더하여 현재 영상을 구성하는 재구성 모듈을 포함함을 특징으로 하는 동영상 인코딩 장치의 설계 방법.
  8. 제7항에 있어서,
    상기 슬레이브 모듈에서 상기 영상 입력 모듈 및 상기 재구성 모듈을 각각 클러스터로 분리하는 단계를 더 포함함을 특징으로 하는 동영상 인코딩 장치의 설계 방법.
  9. 제7항에 있어서,
    상기 슬레이브 모듈에서 버퍼 메모리를 분리하는 단계; 및
    상기 버퍼 메모리가 분리된 슬레이브 모듈과 상기 버퍼 메모리를 로컬 버스로 연결하고, 상기 버퍼 메모리를 상기 온-칩 네트워크에 연결하는 단계를 더 포함함을 특징으로 하는 동영상 인코딩 장치의 설계 방법.
KR1020050029718A 2004-12-21 2005-04-09 온-칩 네트워크를 구비한 동영상 인코딩 장치 및 그 설계방법 KR100714096B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020040109695 2004-12-21
KR20040109695 2004-12-21

Publications (2)

Publication Number Publication Date
KR20060071075A KR20060071075A (ko) 2006-06-26
KR100714096B1 true KR100714096B1 (ko) 2007-05-02

Family

ID=37164626

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050029718A KR100714096B1 (ko) 2004-12-21 2005-04-09 온-칩 네트워크를 구비한 동영상 인코딩 장치 및 그 설계방법

Country Status (1)

Country Link
KR (1) KR100714096B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100839593B1 (ko) * 2006-09-29 2008-06-19 한국전자통신연구원 온칩 네트워크의 병렬성을 높이기 위한 슬레이브 네트워크인터페이스 회로 및 그 시스템
KR100862918B1 (ko) * 2007-05-04 2008-10-13 성균관대학교산학협력단 멀티프로세서 SoC 플랫폼 및 이를 사용하는 DVB-T베이스밴드 수신장치

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19980081401A (ko) * 1997-04-15 1998-11-25 가네꼬히사시 코프로세서 집적 패킷형 메모리 lsi, 패킷형 메모리/코프로세서 버스 및 그 제어방법
KR20040040458A (ko) * 2001-09-07 2004-05-12 인텔 코오퍼레이션 시스템 온 칩에 대한 분산형 직접 메모리 액세스 방법 및장치
US20050031042A1 (en) 2003-07-09 2005-02-10 Broadlogic Network Technologies Inc. Method and system for providing a high speed multi-stream MPEG processor
WO2005036300A2 (en) 2003-10-10 2005-04-21 Nokia Corporation Microcontrol architecture for a system on a chip (soc)
KR20050090849A (ko) * 2004-03-10 2005-09-14 충남대학교산학협력단 병렬성을 증대시키는 버스 구조 및 중재 방식

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19980081401A (ko) * 1997-04-15 1998-11-25 가네꼬히사시 코프로세서 집적 패킷형 메모리 lsi, 패킷형 메모리/코프로세서 버스 및 그 제어방법
KR20040040458A (ko) * 2001-09-07 2004-05-12 인텔 코오퍼레이션 시스템 온 칩에 대한 분산형 직접 메모리 액세스 방법 및장치
US20050031042A1 (en) 2003-07-09 2005-02-10 Broadlogic Network Technologies Inc. Method and system for providing a high speed multi-stream MPEG processor
WO2005036300A2 (en) 2003-10-10 2005-04-21 Nokia Corporation Microcontrol architecture for a system on a chip (soc)
KR20050090849A (ko) * 2004-03-10 2005-09-14 충남대학교산학협력단 병렬성을 증대시키는 버스 구조 및 중재 방식

Also Published As

Publication number Publication date
KR20060071075A (ko) 2006-06-26

Similar Documents

Publication Publication Date Title
JP6721729B2 (ja) スケーラブルビデオ符号化空間モードの帯域幅節約アーキテクチャ
US9807410B2 (en) Late-stage mode conversions in pipelined video encoders
US20100177585A1 (en) Memory subsystem
JPH05308622A (ja) 画像符号化・復号化装置
WO2009130871A1 (ja) 復号化装置
US9218639B2 (en) Processing order in block processing pipelines
US9305325B2 (en) Neighbor context caching in block processing pipelines
US9299122B2 (en) Neighbor context processing in block processing pipelines
KR20160065900A (ko) 병렬 하드웨어 및 소프트웨어 블록 프로세싱 파이프라인들
KR101160640B1 (ko) 데이터 처리 시스템 및 데이터 처리 방법
KR20060068092A (ko) 이중 계층 버스 구조, 이중 계층 버스 구조를 가진 시스템온 칩 시스템 및 시스템 온 칩 시스템의 버스 액세스 방법
KR100714096B1 (ko) 온-칩 네트워크를 구비한 동영상 인코딩 장치 및 그 설계방법
US10313683B2 (en) Video encoder with context switching
KR100817022B1 (ko) 스타-메쉬 혼합형 구조를 갖는 온칩 네트워크 기반의동영상 디코더
WO2002087248A2 (en) Apparatus and method for processing video data
US9473782B2 (en) Loop filtering managing storage of filtered and unfiltered pixels
Iwata et al. A 256 mW 40 Mbps full-HD H. 264 high-profile codec featuring a dual-macroblock pipeline architecture in 65 nm CMOS
US20040146213A1 (en) System and method for video data compression
Ooi et al. An MPEG-2 encoder architecture based on a single-chip dedicated LSI with a control MPU
Milojevic et al. Power dissipation of the network-on-chip in multi-processor system-on-chip dedicated for video coding applications
Iwata et al. A 256mW Full-HD H. 264 high-profile CODEC featuring dual macroblock-pipeline architecture in 65nm CMOS
Mizosoe et al. A single chip H. 264/AVC HDTV encoder/decoder/transcoder system LSI
WO2019127432A1 (zh) 视频解码器及其制造方法,数据处理电路、系统和方法
Lee Smart Bus Arbiter for QoS control in H. 264 decoders
US20090006665A1 (en) Modified Memory Architecture for CODECS With Multiple CPUs

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: 20120330

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20130325

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee