KR101292668B1 - 멀티프로세서기반의 영상 복호화 장치 및 방법 - Google Patents

멀티프로세서기반의 영상 복호화 장치 및 방법 Download PDF

Info

Publication number
KR101292668B1
KR101292668B1 KR1020090095604A KR20090095604A KR101292668B1 KR 101292668 B1 KR101292668 B1 KR 101292668B1 KR 1020090095604 A KR1020090095604 A KR 1020090095604A KR 20090095604 A KR20090095604 A KR 20090095604A KR 101292668 B1 KR101292668 B1 KR 101292668B1
Authority
KR
South Korea
Prior art keywords
stream
processors
decoding
processor
information
Prior art date
Application number
KR1020090095604A
Other languages
English (en)
Other versions
KR20110038349A (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 KR1020090095604A priority Critical patent/KR101292668B1/ko
Priority to US12/836,979 priority patent/US20110085601A1/en
Publication of KR20110038349A publication Critical patent/KR20110038349A/ko
Application granted granted Critical
Publication of KR101292668B1 publication Critical patent/KR101292668B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/24Systems for the transmission of television signals using pulse code modulation
    • 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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/22Microcontrol or microprogram arrangements
    • G06F9/28Enhancement of operational speed, e.g. by using several microcontrol devices operating in parallel
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

본 발명은 멀티프로세서기반의 영상 복호화 장치 및 방법에 관한 것으로, 그 방법은 멀티프로세서기반의 영상 복호화 장치는, 입력 스트림을 열 단위로 분할하며, 상기 입력 스트림의 스킵 카운터 및 양자화 파라미터를 파싱하는 스트림 파서; 및 상기 스트림 파서를 통해 생성된 다수의 분할 스트림과 상기 스킵 카운터 및 양자화 파라미터를 획득하고, 인접 프로세서들 중 상위 프로세서의 복호화 정보를 열단위로 획득하여, 상기 다수의 분할 스트림의 복호화를 열 단위로 병렬처리하는 다수의 프로세서를 포함하여, 데이터 의존성에 상관없이 입력 스트림의 복호화를 열 단위로 병렬 처리할 수 있도록 해준다.
멀티코어, 멀티프로세서, 영상 복호화, 병렬 처리, 데이터 의존성

Description

멀티프로세서기반의 영상 복호화 장치 및 방법{Video encoding apparatus and method based-on multi-processor}
본 발명은 영상 복호화 기술에 관한 것으로, 특히 입력 스트림의 병렬 처리를 보다 효율적으로 수행할 수 있도록 하는 멀티프로세서기반의 영상 복호화 기술에 관한 것이다.
본 발명은 지식경제부의 IT성장동력기술개발사업의 일환으로 수행한 연구로부터 도출된 것이다[과제관리번호: 2007-S-026-03, 과제명: MPCore 플랫폼 기반 다중 포맷 멀티미디어 SoC].
멀티미디어에 필수적인 영상 압축/복원 기술은 현재 HDTV 방송에서 사용되고 있는 MPEG뿐만 아니라 H.264/AVC, VC-1, AVS 등과 같은 매우 높은 압축률과 신뢰성있는 전송을 가능하게 하는 새로운 영상 압축 표준들에 의하여 구현되고 있다.
특히, 이러한 영상 압축 표준들은 디지털 데이터 방송, 차세대 휴대전화, IPTV, 및 위성 DMB등과 같은 차세대 서비스와 접목되면서 그 응용이 기대되고 있다.
영상 압축 기술은 복원 화면의 화질을 최대한 원본과 같이 유지하면서 비트 사이즈를 줄여 대역폭을 최소화하는데 목적을 두고 발전되어 왔다.
따라서 새로운 영상 압축 표준들을 MPEG-2와 같은 기존의 영상 압축 표준과 비교했을 때, 알고리즘의 복잡도가 현저히 증가하였으며 높은 연산량을 필요로 하기 때문에 실시간 압축/복원을 위한 전용 하드웨어 또는 장치가 요구된다.
최근에는 하드웨어에 비해 프로세서가 가지는 장점인 유용성(flexibility)과 프로세서의 공정 기술 및 성능향상에 기인한 멀티프로세서기반 다중 포맷 비디오 영상 복호화 방법에 관한 시도가 계속되고 있다.
그러나 이러한 영상 표준들은 화면간의 데이터의 상호 의존성뿐 만 아니라 한 화면 내에서도 데이터의 상호 의존성이 존재하므로, 멀티프로세서기반의 영상 복호화 시스템의 병렬 처리 구현이 어려우며, 현재까지 제시된 일반적인 최적의 해결책은 없다.
종래의 병렬 처리를 위한 분할 방식으로는 프로세서에서 처리된 데이터 자체를 분할하는 데이터 분할 방식과, 기능모듈을 파이프라인 방식처럼 나누어서 처리하는 기능 분할 방식이 있다.
도 1은 종래의 기술에 따른 데이터 분할 방식에 따른 멀티프로세서기반의 영상 복호화 장치를 도시한 도면이다.
도1에 도시된 바와 같이, 데이터 분할 방식에서는 입력 스트림을 일정 레벨(예를 들어, 프레임, 슬라이스, 매크로블록 열, 매크로 블록(16Ⅹ16), 블록(4Ⅹ픽셀))에 따라 입력 스트림을 다수의 데이터(111~116)로 분할한 후, 분할된 데이 터(111~116) 각각이 서로 다른 프로세서(121~123)에서 병렬 처리되도록 한다.
도1의 데이터 분할 방식은, 분할된 데이터들간에 상호 의존성이 없는 경우에는 높은 병렬화를 실현할 수 있지만, 화면내 또는 화면간 데이터 의존성을 가지는 멀티미디어 어플리케이션에서는 비효율적인 단점을 가진다.
도 2는 종래의 기술에 따른 기능 분할 방식에 따른 멀티프로세서기반의 영상 복호화 장치를 도시한 도면이다.
도2에 도시된 바와 같이, 기능 분할 방식에서는 복호화 기능을 다수의 기능(211~216)으로 분할할 후, 이들 기능들이 서로 다른 프로세서(221~226)에서 병렬 처리되도록 한다.
그러나 도2의 기능 분할 방식은 프로세서간 수행 시간이 다른 경우, 자원의 효율성이 떨어지게 되므로 기능을 균등하게 분할하는 과정이 추가적으로 요구된다. 이에 특정 프로세서의 처리 시간이 상대적으로 길어지게 되면, 해당 프로세서의 초과 처리 시간만큼 나머지 프로세서의 사용성이 저하되어, 영상 복호화 장치의 병렬성 및 활용성이 감소되게 된다.
또한 기능 분할 방식은 고정된 파이프 라인 구조로 인해 영상 복호화 장치의 성능과 처리 가능한 스트림 크기를 설계 완료 이후에는 변경할 수 없어, 상대적으로 낮은 확장성과 범용성을 가지게 된다.
이에 본 발명에서는 데이터 의존성에 상관없이 복호화 동작의 병렬성 및 활용성을 최대화할 수 있는 영상 복호화 장치 및 방법을 제공하고자 한다.
또한, 프로세서간 통신 오버헤드를 최소화하여 한정된 메모리 자원으로 멀티미디어 복호화 시스템을 보다 효율적으로 구현할 수 있도록 하는 영상 복호화 장치 및 방법을 제공하고자 한다.
상기 과제를 해결하기 위한 수단으로서, 본 발명의 일 실시 형태에 따른 멀티프로세서기반의 영상 복호화 장치는, 입력 스트림을 열 단위로 분할하며, 상기 입력 스트림의 스킵 카운터 및 양자화 파라미터를 파싱하는 스트림 파서; 및 상기 스트림 파서를 통해 생성된 다수의 분할 스트림과 상기 스킵 카운터 및 양자화 파라미터를 획득하고, 인접 프로세서들 중 상위 프로세서의 복호화 정보를 열단위로 획득하여, 상기 다수의 분할 스트림의 복호화를 열 단위로 병렬처리하는 다수의 프로세서를 포함한다.
상기 장치는 상기 스트림 파서를 통해 생성된 다수의 분할 스트림을 병렬저장하는 다수의 스트림 버퍼; 인접 프로세서들에 의해 각각 공유되며, 인접 프로세서들 중 상위 프로세서의 복호화 정보를 인접 프로세서들 중 하위 프로세서로 각각 제공하는 다수의 공유 메모리들을 더 포함할 수 있으며, 필요에 따라 상기 스킵 카 운터 및 양자화 파라미터를 저장하는 프레임 메모리를 더 포함할 수도 있다.
상기 상위 프로세서의 복호화 정보는 인접 프로세서들 중 상위 프로세서가 복호화한 매크로 블록의 X 좌표, 타입, 인트라 및 움직임 벡터 예측치에 대한 정보를 포함할 수 있다.
그리고, 상기 다수의 프로세서 각각은 자신에 대응되는 스트림 버퍼에 저장된 분할 스트림, 상기 프레임 메모리에 저장된 스킵 카운터 및 양자화 파라미터, 및 상기 상위 프로세서의 복호화 정보에 포함된 인트라 및 움직임 벡터 예측치를 이용하여 상기 분할 스트림에 대한 복호화를 수행할 수 있다.
그리고 상기 다수의 프로세서 각각은 상기 상위 프로세서의 복호화 정보에 포함된 X 좌표를 통해 인트라 및 움직임 벡터 방향에 의한 데이터 의존성을 검사하여, 상기 분할 스트림의 복호화 수행 여부를 결정할 수 있다.
또한 상기 다수의 프로세서 각각은 자신이 복호화한 분할 스트림에 대한 복호화 정보를 수집하여, 자신과 하위 프로세서에 의해 공유되는 공유 메모리에 저장하는 기능과, 자신의 복호화 동작 결과를 상기 프레임 메모리에 저장하는 기능을 더 포함할 수 있다.
상기 다수의 스트림 버퍼, 상기 다수의 프로세서, 및 상기 다수의 공유 메모리의 개수는 영상 복호화 장치의 성능과 처리하고자 하는 스트림 크기에 따라 조절 가능한 것을 특징으로 하는 멀티프로세서기반의 영상 복호화 장치.
상기 과제를 해결하기 위한 수단으로서, 본 발명의 일 실시 형태에 따른 스 트림 파서와 다수의 프로세서를 구비하는 영상 복호화 방법은, 상기 스트림 파서가 입력 스트림을 열 단위로 분할하며, 상기 입력 스트림의 스킵 카운터 및 양자화 파라미터를 파싱하는 전처리 및 파싱 단계; 상기 다수의 프로세서가 상기 스트림 파서를 통해 생성된 다수의 분할 스트림과 상기 스킵 카운터 및 양자화 파라미터를 획득하고, 인접 프로세서들 중 상위 프로세서의 복호화 정보를 열단위로 획득하는 획득 단계; 및 상기 다수의 프로세서가 상기 획득 단계를 통해 획득된 정보를 이용하여, 상기 다수의 분할 스트림의 복호화를 열 단위로 병렬처리하는 병렬처리 단계를 포함한다.
상기 전처리 및 파싱 단계는 상기 입력 스트림을 열 단위로 분할하여 다수의 스트림 버퍼에 병렬저장하는 단계; 및 상기 입력 스트림을 파싱하여 상기 스킵 카운터 및 양자화 파라미터를 추출하고 프레임 메모리에 저장하는 단계를 포함할 수 있다.
상기 획득 단계는 상기 다수의 프로세서 각각이 자신에 대응되는 스트림 버퍼에 저장된 분할 스트림, 상기 프레임 메모리에 저장된 스킵 카운터 및 양자화 파라미터를 획득하는 단계; 및 상기 다수의 프로세서 각각이 자신과 상위 프로세서에 의해 공유되는 공유 메모리를 읽어, 상기 상위 프로세서의 복호화 정보를 열 단위로 획득하는 단계를 포함할 수 있다.
상기 상위 프로세서의 복호화 정보는 인접 프로세서들 중 상위 프로세서가 복호화한 매크로 블록의 X 좌표, 타입, 인트라 및 움직임 벡터 예측치에 대한 정보를 포함할 수 있다.
상기 획득 단계는 상기 상위 프로세서의 복호화 정보에 포함된 X 좌표를 통해 인트라 및 움직임 벡터 방향에 의한 데이터 의존성을 검사하여, 상기 획득 단계로의 진입 여부를 결정하는 단계를 더 포함할 수 있다.
상기 병렬처리 단계는 상기 다수의 프로세서 각각이 상기 획득 단계를 통해 획득된 분할 스트림, 스킵 카운터 및 양자화 파라미터, 상위 프로세서의 복호화 정보를 이용하여, 상기 분할 스트림에 대한 복호화를 수행하는 단계; 및 상기 다수의 프로세서 각각이 자신이 복호화한 분할 스트림에 대한 복호화 정보를 수집하여, 자신과 하위 프로세서에 의해 공유되는 공유 메모리에 저장하는 단계를 포함할 수 있다.
또한, 상기 방법은 상기 병렬처리 단계 이후에, 상기 다수의 프로세서가 상기 다수의 분할 스트림에 대한 복호화 동작 결과를 상기 프레임 메모리에 저장하는 저장 단계를 더 포함할 수 있다.
본 발명의 멀티프로세서기반의 영상 복호화 장치 및 방법에 따르면, 데이터 의존성에 상관없이 입력 스트림을 열 단위로 분할하여 처리할 수 있도록 함으로써, 복호화 동작의 병렬성 및 활용성을 최대화하여 프로세서의 사용성을 높여준다.
또한, 인접 프로세서간 데이터 통신이 공유 메모리를 통해 수행되도록 함으로써 프로세서간 통신 오버헤드를 최소화시키고, 이에 따라 한정된 메모리 자원으로 영상 복호화 장치를 효율적으로 구현할 수 있도록 한다.
뿐만 아니라, 스트림 버퍼, 공유 메모리, 및 프로세서의 개수를 영상 복호화 장치의 성능과 입력 스트림 크기에 따라 가변적으로 조절할 수 있도록 하여, 높은 확장성과 범용성을 가질 수 있도록 한다.
이하 첨부된 도면을 참조하여 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있는 바람직한 실시 예를 상세히 설명한다. 다만, 본 발명의 바람직한 실시 예에 대한 동작 원리를 상세하게 설명함에 있어 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략한다.
도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
또한, 어떤 부분이 어떤 구성 요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
본 발명의 영상 복호화 장치 및 방법을 설명하기에 앞서, 본 발명의 이해를 돕기 위해 영상 복호화 동작시 발생하는 데이터들간 상호 의존성을 먼저 설명하기로 한다.
도3는 일반적인 영상 압축 표준이 갖는 데이터 의존성을 설명하기 위한 도면으로, (a)는 인트라 및 움직임 벡터 방향에 의한 데이터 의존성을, (b)는 스킵 카운터 및 양자화 파라메타(Quantization Parameter)에 따른 데이터 의존성을 나타낸다.
(a)를 참조하면, 영상 스트림이 현재 매크로 블록(Macro block, 이하 MB)에 대한 인트라 및 움직임 벡터 예측 동작을 수행하기 위해서는, 인접 MB들의 인트라 및 움직임 벡터 예측치가 반드시 필요하다.
또한, (b)를 참조하면, 현재 행에 대한 복호화를 완료한 후, 다음 행의 시작점을 파악하고 이에 대한 복호화를 정상적으로 수행하기 위해서는 스킵 카운터와 양자화 파라메타가 반드시 필요함을 알 수 있다.
이에 본 발명에서는 도3와 같은 데이터 의존성에 상관없이 입력 스트림을 열 단위로 병렬 처리할 수 있도록 하는 새로운 구조의 영상 복호화 장치 및 방법을 제안하고자 한다.
도4는 본 발명의 일실시예에 따른 멀티프로세서기반의 영상 복호화 장치를 도시한 도면이다.
도4를 참조하면, 영상 복호화 장치는 스트림 파서(410), 다수의 스트림 버퍼(421~42N), 다수의 프로세서(431~43N), 다수의 공유 메모리(441~44N), 프레임 메모리(450), 및 버스(460)를 포함하여 구성된다.
이때, 스트림 버퍼, 프로세서, 및 공유 메모리의 개수는 영상 복호화 장치의 성능과 처리하고자 하는 스트림 크기에 따라 가변적으로 조절되는 특징을 가진다.
이하, 각 구성요소의 기능을 살펴보면 다음과 같다.
스트림 파서(410)는 입력 스트림에 대한 파싱 및 전처리 동작을 수행한다. 즉, 입력 스트림을 열 단위로 분할하여 다수의 분할 스트림을 생성한 후, 다수의 스트림 버퍼(421~42N)에 병렬 저장한다. 또한, 다수의 프로세서(431~43N)가 스킵 카운터 및 양자화 파라메타에 따른 데이터 의존성을 제거할 수 있도록, 입력 스트림을 파싱하여 스킵 카운터 및 양자화 파라미터 등을 추출하여 프레임 메모리(450)에 저장한다.
그리고 스트림 파서(410)는 입력 스트림이 NULL이 될 때까지 상기의 동작을 반복수행하며, 고속의 파싱 및 전처리 동작을 지원할 수 있도록 하는 고성능의 프로세서 또는 하드웨어 모듈로 구현되어 프로세서(431~43N)의 스트림 대기 시간을 최소화시켜 준다. 이는 프로세서(431~43N)이 복호화할 스트림이 준비되기를 기다림으로써 영상 복호화 장치의 성능이 저하되는 것을 방지하기 위함이다.
다수의 스트림 버퍼(421~42N)는 스트림 파서(410)에 의해 생성된 상기 다수의 분할 스트림을 다수의 프로세서(431~43N)에 병렬 전송해준다. 즉, 스트림 파서(410)와 다수의 프로세서(431~43N) 사이에서, 스트림 파서(410)와 다수의 프로세서(431~43N)간 데이터 통신을 지원해준다.
다수의 프로세서(431~43N)은 다수의 분할 스트림에 대한 복호화를 열 단위로 병렬 처리한다.
이를 위해, 각 프로세서(예를 들어, 431)는 우선 상위 프로세서의 복호화 정보(특히, 상위 프로세서가 복호화한 매크로 블록의 X 좌표)를 통해 인트라 및 움직임 벡터 방향에 의한 데이터 의존성을 검사한다.
검사 결과, 인트라 및 움직임 벡터 방향에 의한 데이터 의존성이 만족되면(즉, 자신이 현재 복호화할 매크로 블록에 인접된 매크로 블록들의 복호화가 완료되었으면), 자신에 대응되는 스트림 버퍼(421)에 저장된 분할 스트림, 자신과 상위 프로세서(43N)에 의해 공유되는 공유 메모리(44N)에 저장된 복호화 정보(특히, 상위 프로세서가 복호화한 매크로 블록의 인트라 및 움직임 벡터 예측치), 및 프레임 메모리(450)에 저장된 스킵 카운터 및 양자화 파라미터 등을 획득한다.
그리고 획득한 정보들을 통해 분할 스트림에 대한 엔트로피 디코딩, 역양자화, 역이산코사인변환, 인트라 예측, 움직임 보상 및 디블록킹 연산을 순차적으로 수행한 후, 복호화 동작 결과(또는 복호화된 영상 데이터)를 프레임 메모리(450)에 저장해준다.
이때, 상위 프로세서의 복호화 정보는 인접 프로세서들 중 상위 프로세서가 복호화한 매크로 블록의 X 좌표, 타입, 인트라 및 움직임 벡터 예측치에 대한 정보를 포함한다.
또한 각 프로세서(431)는 자신의 하위 프로세서 상기에서와 동일한 방식으로 복호화 동작을 수행할 수 있도록, 자신의 복호화 정보를 수집하여 자신과 하위 프 로세서에 의해 공유되는 공유 메모리에 저장해준다.
다수의 공유 메모리(441~44N)은 인접 프로세서들에 의해서만 공유되는 지역성(locality)을 가져, 인접 프로세서들 중 상위 프로세서의 복호화 정보를 인접 프로세서들 중 하위 프로세서에 제공해준다. 이때, 서로 인접되지 않는 프로세서간 데이터 통신은 프레임 메모리(450)의 특정 영역을 통해 실현할 수 있도록 한다.
프레임 메모리(450)는 스트림 파서(410)를 통해 파싱된 스킵 카운터 및 양자화 파라미터와 다수의 프로세서(431~43N)로부터 출력되는 복호화된 영상 데이터를 저장한다. 이때, 복호화된 영상 데이터는 차후에 매크로 블록의 디블록킹 영상이나 움직임 보상을 위한 참조 데이터로 사용된다.
버스(460)는 스트림 파서(410)와 프레임 메모리(450)간 또는 다수의 프로세서(431~43N)와 프레임 메모리(450)간의 데이터 통신을 지원한다.
이와 같이, 본 발명에서는 열 단위로 분할된 분할 스트림이외에 도3에서와 같은 데이터 의존성을 제거하기 위한 정보들(즉, 스킵 카운터 및 양자화 파라미터, 현재 복호화할 매크로 블록의 인접된 매크로 블록들의 X 좌표, 인트라 및 움직임 벡터 예측치 등)도 다수의 프로세서에 제공해준다. 이에 본 발명에 따른 다수의 프로세서는 도3에서와 같은 데이터 의존성에 상관없이 입력 스트림을 열 단위로 병렬 처리할 수 있게 되며, 이에 따라 보다 높은 사용성을 가지게 된다.
또한 본 발명에서는 인접 프로세서간 데이터 통신을 다수의 공유 메모리를 통해 수행함으로써, 프로세서간 통신을 위한 버스 사용량을 감소시켜 준다.
도5 및 도6은 본 발명의 영상 복호화 방법을 설명하기 위한 도면이다.
도5에 도시된 바와 같이, 본 발명의 동작 방법은 크게 입력 스트림의 파싱 및 전처리 과정(S10), 입력 스트림의 복호화를 열 단위로 병렬 처리하는 과정(S20), 및 병렬 처리 결과를 저장하는 과정(S30)으로 이루어짐을 알 수 있다.
계속하여 도6을 참조하여, 도5의 동작 방법을 보다 상세히 설명하면 다음과 같다. 도6에서는 설명의 편이를 위해, 영상 복호화 장치는 스트림 크기가 D1(720*480픽셀)이며 40*35개의 매크로 블록(MB)을 가지는 비트 스트림을 입력받으며, 6개의 스트림 버퍼(421~426), 프로세서(431~436), 및 공유 메모리(431~436)를 구비한다고 가정한다.
먼저, 입력 스트림이 발생되면, 스트림 파서(410)는 입력 스트림을 열 단위로 분할한 후, 1 내지 6열의 분할 스트림을 스트림 버퍼1 내지 6(421~426)에 병렬 저장한다(S11~S16). 또한 스트림 파서(410)는 입력 스트림을 파싱하여 스킵 카운터 및 양자화 파라미터 등을 추출하고, 프레임 메모리(450)에 저장한다(S17).
프로세서1(431)은 공유 메모리6(446)에 저장된 복호화 정보(특히, 상위 프로 세서가 복호화한 매크로 블록의 X 좌표)를 통해 자신이 현재 복호화할 매크로 블록에 인접된 매크로 블록들의 복호화가 완료될 때까지 대기한다. 자신이 현재 복호화할 매크로 블록에 인접된 매크로 블록들의 복호화가 완료되면, 스트림 버퍼1(421)에 저장된 분할 스트림, 프레임 메모리(450)에 저장된 스킵 카운터 및 양자화 파라미터, 및 공유 메모리(446)에 저장된 복호화 정보(특히, 상위 프로세서가 복호화한 매크로 블록의 인트라 및 움직임 벡터 예측치)를 읽어와(S21-1, S21-2), 1열의 분할 스트림에 대한 복호화를 수행한다. 그리고 이와 동시에 프로세서1(431)는 1열의 복호화 정보를 공유 메모리1(441)에 저장한다(S21-3).
그러면, 프로세서2(432)은 공유 메모리1(441)에 저장된 복호화 정보(즉, 1열의 복호화 정보)를 통해 다시 도3a에 대한 데이터 의존성을 검사한 후, 스트림 버퍼2(422)에 저장된 1열의 분할 스트림과 공유 메모리1(441)에 저장된 복호화 정보와 프레임 메모리(450)에 저장된 스킵 카운터 및 양자화 파라미터를 읽어와(S22-1, S22-2, S22-3), 2열의 분할 스트림에 대한 복호화 동작을 수행하기 시작한다. 또한 이와 동시에 2열의 복호화 정보를 공유 메모리2(442)에 저장해준다(S22-4).
나머지 프로세서들(433~436)도 이와 동일한 방식으로 자신에 대응되는 스트림 버퍼, 프레임 메모리, 및 자신과 상위 프로세서에 의해 공유되는 공유 메모리를 읽어 복호화 동작을 수행하면서, 자신이 처리하고 있는 열의 복호화 정보를 하위 프로세서에 알려준다.
그리고, 소정의 시간이 경과하여 프로세서1 내지 6(431~436)의 복호화 동작이 완료되면, 프로세서1 내지 6(431~436)는 1 내지 6열의 분할 스트림에 대한 복호 화 동작 결과를 프레임 메모리(450)에 저장한다(S31~S36).
상기의 단계들을 통해 프로세서1 내지 6(431~436)은 도3에서와 같은 데이터 의존성에 상관없이 1 내지 6열의 분할 스트림에 대한 복호화를 열 단위로 병렬 처리할 수 있게 된다.
또한 스트림 파서(410)는 프로세서1 내지 6(431~436)의 복호화 동작 완료되기 전에 7내지 12열의 분할 스트림을 스트림 버퍼1 내지 6(421~426)에 병렬 저장함으로써(S11~S16), 프로세서1 내지 6(431~436)가 7내지 12열의 분할 스트림에 대한 복호화 동작을 끊김없이 수행할 수 있도록 해준다.
이와 같은 동작은 입력 스트림이 NULL이 될 때까지(즉, 복호화할 분할 스트림이 더 이상 존재하지 않거나 새로운 입력 스트림이 더 이상 입력되지 않을 때까지) 반복 수행되며, 더 이상 처리할 입력 스트림이 존재하지 않으면 동작 종료된다.
이상에서 설명한 본 발명은 전술한 실시 예 및 첨부된 도면에 의해 한정되는 것이 아니고, 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경할 수 있다는 것은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 당업자에게 있어 명백할 것이다.
도 1은 종래의 기술에 따른 데이터 분할 방식에 따른 멀티프로세서기반의 영상 복호화 장치를 도시한 도면이다.
도 2는 종래의 기술에 따른 기능 분할 방식에 따른 멀티프로세서기반의 영상 복호화 장치를 도시한 도면이다.
도3는 영상 압축 표준이 갖는 데이터 의존성을 설명하기 위한 도면이다.
도4는 본 발명의 일실시예에 따른 멀티프로세서기반의 영상 복호화 장치를 도시한 도면이다.
도5는 본 발명의 영상 복호화 방법을 개략적으로 설명하기 위한 도면이다.
도6은 본 발명의 영상 복호화 방법을 보다 상세히 설명하기 위한 도면이다.

Claims (16)

  1. 입력 스트림을 열 단위로 분할하며, 상기 입력 스트림의 스킵 카운터 및 양자화 파라미터를 파싱하는 스트림 파서; 및
    상기 스트림 파서를 통해 생성된 다수의 분할 스트림과 상기 스킵 카운터 및 양자화 파라미터를 획득하고, 인접 프로세서들 중 상위 프로세서의 복호화 정보를 열단위로 획득하여, 상기 다수의 분할 스트림의 복호화를 열 단위로 병렬처리하는 다수의 프로세서를 포함하는 멀티프로세서기반의 영상 복호화 장치.
  2. 제1항에 있어서,
    상기 스트림 파서를 통해 생성된 다수의 분할 스트림을 병렬저장하는 다수의 스트림 버퍼; 및
    인접 프로세서들에 의해 각각 공유되며, 인접 프로세서들 중 상위 프로세서의 복호화 정보를 인접 프로세서들 중 하위 프로세서로 각각 제공하는 다수의 공유 메모리들을 포함하는 멀티프로세서기반의 영상 복호화 장치.
  3. 제2항에 있어서,
    상기 스킵 카운터 및 양자화 파라미터를 저장하는 프레임 메모리를 더 포함 하는 것을 특징으로 하는 멀티프로세서기반의 영상 복호화 장치.
  4. 제3항에 있어서, 상기 상위 프로세서의 복호화 정보는
    인접 프로세서들 중 상위 프로세서가 복호화한 매크로 블록의 X 좌표, 타입, 인트라 및 움직임 벡터 예측치에 대한 정보를 포함하는 것을 특징으로 하는 멀티프로세서기반의 영상 복호화 장치.
  5. 제4항에 있어서, 상기 다수의 프로세서 각각은
    자신에 대응되는 스트림 버퍼에 저장된 분할 스트림, 상기 프레임 메모리에 저장된 스킵 카운터 및 양자화 파라미터, 및 상기 상위 프로세서의 복호화 정보에 포함된 인트라 및 움직임 벡터 예측치를 이용하여 상기 분할 스트림에 대한 복호화를 수행하는 것을 특징으로 하는 멀티프로세서기반의 영상 복호화 장치.
  6. 제5항에 있어서, 상기 다수의 프로세서 각각은
    상기 상위 프로세서의 복호화 정보에 포함된 X 좌표를 통해 인트라 및 움직임 벡터 방향에 의한 데이터 의존성을 검사하여, 상기 분할 스트림의 복호화 수행 여부를 결정하는 것을 특징으로 하는 멀티프로세서기반의 영상 복호화 장치.
  7. 제5항에 있어서, 상기 다수의 프로세서 각각은
    자신이 복호화한 분할 스트림에 대한 복호화 정보를 수집하여, 자신과 하위 프로세서에 의해 공유되는 공유 메모리에 저장하는 기능을 더 포함하는 것을 특징으로 하는 멀티프로세서기반의 영상 복호화 장치.
  8. 제5항에 있어서, 상기 다수의 프로세서 각각은
    자신의 복호화 동작 결과를 상기 프레임 메모리에 저장하는 기능을 더 포함하는 것을 특징으로 하는 멀티프로세서기반의 영상 복호화 장치.
  9. 제3항에 있어서,
    상기 다수의 스트림 버퍼, 상기 다수의 프로세서, 및 상기 다수의 공유 메모리의 개수는 영상 복호화 장치의 성능과 처리하고자 하는 스트림 크기에 따라 조절 가능한 것을 특징으로 하는 멀티프로세서기반의 영상 복호화 장치.
  10. 스트림 파서와 다수의 프로세서를 구비하는 영상 복호화 방법에 있어서,
    상기 스트림 파서가 입력 스트림을 열 단위로 분할하며, 상기 입력 스트림의 스킵 카운터 및 양자화 파라미터를 파싱하는 전처리 및 파싱 단계;
    상기 다수의 프로세서가 상기 스트림 파서를 통해 생성된 다수의 분할 스트림과 상기 스킵 카운터 및 양자화 파라미터를 획득하고, 인접 프로세서들 중 상위 프로세서의 복호화 정보를 열단위로 획득하는 획득 단계; 및
    상기 다수의 프로세서가 상기 획득 단계를 통해 획득된 정보를 이용하여, 상기 다수의 분할 스트림의 복호화를 열 단위로 병렬처리하는 병렬처리 단계를 포함하는 멀티프로세서기반의 영상 복호화 방법.
  11. 제10항에 있어서, 상기 전처리 및 파싱 단계는
    상기 입력 스트림을 열 단위로 분할하여 다수의 스트림 버퍼에 병렬저장하는 단계; 및
    상기 입력 스트림을 파싱하여 상기 스킵 카운터 및 양자화 파라미터를 추출하고 프레임 메모리에 저장하는 단계를 포함하는 것을 특징으로 하는 멀티프로세서기반의 영상 복호화 방법.
  12. 제11항에 있어서, 상기 획득 단계는
    상기 다수의 프로세서 각각이 자신에 대응되는 스트림 버퍼에 저장된 분할 스트림, 상기 프레임 메모리에 저장된 스킵 카운터 및 양자화 파라미터를 획득하는 단계; 및
    상기 다수의 프로세서 각각이 자신과 상위 프로세서에 의해 공유되는 공유 메모리를 읽어, 상기 상위 프로세서의 복호화 정보를 열 단위로 획득하는 단계를 포함하는 것을 특징으로 하는 멀티프로세서기반의 영상 복호화 방법.
  13. 제12항에 있어서, 상기 상위 프로세서의 복호화 정보는
    인접 프로세서들 중 상위 프로세서가 복호화한 매크로 블록의 X 좌표, 타입, 인트라 및 움직임 벡터 예측치에 대한 정보를 포함하는 것을 특징으로 하는 멀티프로세서기반의 영상 복호화 방법.
  14. 제13항에 있어서, 상기 획득 단계는
    상기 상위 프로세서의 복호화 정보에 포함된 X 좌표를 통해 인트라 및 움직임 벡터 방향에 의한 데이터 의존성을 검사하여, 상기 획득 단계로의 진입 여부를 결정하는 단계를 더 포함하는 것을 특징으로 하는 멀티프로세서기반의 영상 복호화 방법.
  15. 제13항에 있어서, 상기 병렬처리 단계는
    상기 다수의 프로세서 각각이 상기 획득 단계를 통해 획득된 분할 스트림, 스킵 카운터 및 양자화 파라미터, 상위 프로세서의 복호화 정보를 이용하여, 상기 분할 스트림에 대한 복호화를 수행하는 단계; 및
    상기 다수의 프로세서 각각이 자신이 복호화한 분할 스트림에 대한 복호화 정보를 수집하여, 자신과 하위 프로세서에 의해 공유되는 공유 메모리에 저장하는 단계를 포함하는 것을 특징으로 하는 멀티프로세서기반의 영상 복호화 방법.
  16. 제10항에 있어서,
    상기 병렬처리 단계 이후에, 상기 다수의 프로세서가 상기 다수의 분할 스트림에 대한 복호화 동작 결과를 프레임 메모리에 저장하는 저장 단계를 더 포함하는 것을 특징으로 하는 멀티프로세서기반의 영상 복호화 방법.
KR1020090095604A 2009-10-08 2009-10-08 멀티프로세서기반의 영상 복호화 장치 및 방법 KR101292668B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020090095604A KR101292668B1 (ko) 2009-10-08 2009-10-08 멀티프로세서기반의 영상 복호화 장치 및 방법
US12/836,979 US20110085601A1 (en) 2009-10-08 2010-07-15 Video decoding apparatus and method based on multiprocessor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090095604A KR101292668B1 (ko) 2009-10-08 2009-10-08 멀티프로세서기반의 영상 복호화 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20110038349A KR20110038349A (ko) 2011-04-14
KR101292668B1 true KR101292668B1 (ko) 2013-08-02

Family

ID=43854825

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090095604A KR101292668B1 (ko) 2009-10-08 2009-10-08 멀티프로세서기반의 영상 복호화 장치 및 방법

Country Status (2)

Country Link
US (1) US20110085601A1 (ko)
KR (1) KR101292668B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015076580A1 (ko) * 2013-11-20 2015-05-28 엘지전자 주식회사 비디오 신호 처리 방법 및 장치
KR20150057935A (ko) * 2013-11-20 2015-05-28 엘지전자 주식회사 비디오 신호 처리 방법 및 장치

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120066305A (ko) * 2010-12-14 2012-06-22 한국전자통신연구원 비디오 움직임 예측 및 보상용 캐싱 장치 및 방법
CN104365100A (zh) * 2012-04-15 2015-02-18 三星电子株式会社 用于并行处理的视频编码方法和装置以及视频解码方法和装置
US20160142723A1 (en) * 2013-06-28 2016-05-19 Hewlett-Packard Development Company, L.P. Frame division into subframes
US10225570B2 (en) * 2015-11-12 2019-03-05 Vmware, Inc. Split framebuffer encoding
KR102465914B1 (ko) * 2016-03-04 2022-11-14 한국전자통신연구원 영상 부호화 장치의 부호화 방법
CN109819178B (zh) * 2017-11-21 2022-07-08 虹软科技股份有限公司 一种用于帧处理的方法和装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050086623A (ko) * 2002-11-13 2005-08-30 소니 일렉트로닉스 인코포레이티드 멀티프로세서 환경에서의 실시간 mpeg-4 텍스쳐 디코딩방법
KR100827107B1 (ko) 2006-10-20 2008-05-02 삼성전자주식회사 다중 연산부 구조의 h.264 복호화기 및 그 복호화기의압축 영상 데이터 복호화 방법

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5557734A (en) * 1994-06-17 1996-09-17 Applied Intelligent Systems, Inc. Cache burst architecture for parallel processing, such as for image processing
EP1107107A1 (en) * 1999-12-10 2001-06-13 Koninklijke Philips Electronics N.V. Parallel data processing and shuffling
US6646578B1 (en) * 2002-11-22 2003-11-11 Ub Video Inc. Context adaptive variable length decoding system and method
KR100640876B1 (ko) * 2004-11-17 2006-11-02 엘지전자 주식회사 이동 방송 수신기의 비디오 디코딩 시스템
US8036517B2 (en) * 2006-01-25 2011-10-11 Qualcomm Incorporated Parallel decoding of intra-encoded video
JP4182442B2 (ja) * 2006-04-27 2008-11-19 ソニー株式会社 画像データの処理装置、画像データの処理方法、画像データの処理方法のプログラム及び画像データの処理方法のプログラムを記録した記録媒体
JP4789200B2 (ja) * 2006-08-07 2011-10-12 ルネサスエレクトロニクス株式会社 動画符号化と動画復号とのいずれかを実行する機能モジュールおよびそれを含む半導体集積回路
US7912302B2 (en) * 2006-09-21 2011-03-22 Analog Devices, Inc. Multiprocessor decoder system and method
JP5101128B2 (ja) * 2007-02-21 2012-12-19 株式会社東芝 メモリ管理システム
US8634470B2 (en) * 2007-07-24 2014-01-21 Samsung Electronics Co., Ltd. Multimedia decoding method and multimedia decoding apparatus based on multi-core processor
JP4896944B2 (ja) * 2008-11-13 2012-03-14 株式会社東芝 画像復号装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050086623A (ko) * 2002-11-13 2005-08-30 소니 일렉트로닉스 인코포레이티드 멀티프로세서 환경에서의 실시간 mpeg-4 텍스쳐 디코딩방법
KR100827107B1 (ko) 2006-10-20 2008-05-02 삼성전자주식회사 다중 연산부 구조의 h.264 복호화기 및 그 복호화기의압축 영상 데이터 복호화 방법

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
F. H. Seitner, M. Bleyer, R. M. Schreier, and M. Gelautz, "Evaluation of data-parallel splitting approaches for H.264 decoding," *
Ke Xu, Chiu-Sing choy, "Low-power bitstream-residual decoder for H. 264/AVC baseline profile decoding," *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015076580A1 (ko) * 2013-11-20 2015-05-28 엘지전자 주식회사 비디오 신호 처리 방법 및 장치
KR20150057935A (ko) * 2013-11-20 2015-05-28 엘지전자 주식회사 비디오 신호 처리 방법 및 장치
US10349078B2 (en) 2013-11-20 2019-07-09 Lg Electronics Inc. Method and device for processing video signal by performing inter-prediction in parallel
KR102232417B1 (ko) 2013-11-20 2021-03-26 엘지전자 주식회사 비디오 신호 처리 방법 및 장치

Also Published As

Publication number Publication date
KR20110038349A (ko) 2011-04-14
US20110085601A1 (en) 2011-04-14

Similar Documents

Publication Publication Date Title
KR101292668B1 (ko) 멀티프로세서기반의 영상 복호화 장치 및 방법
US11388405B2 (en) Content aware scheduling in a HEVC decoder operating on a multi-core processor platform
KR20110055022A (ko) 데이터 및 기능적 분할 방식에 기반한 동영상 복호화 장치 및 방법
Chi et al. Parallel scalability and efficiency of HEVC parallelization approaches
EP2659675B1 (en) Method for picture segmentation using columns
US8213518B1 (en) Multi-threaded streaming data decoding
CA2760425C (en) Method and system for parallel encoding of a video
KR102144881B1 (ko) 비디오 처리를 위한 송신 장치 및 방법
TWI512673B (zh) 視頻解碼方法及電腦可讀媒介
JP2010273190A (ja) 復号処理装置、復号処理方法、データ分配プログラムおよび復号処理プログラム
JP6242139B2 (ja) 動画像復号処理装置およびその動作方法
Meenderinck et al. Parallel scalability of H. 264
CN106851298B (zh) 一种高效视频编码方法及装置
JPWO2008020470A1 (ja) 復号化方法及び装置
KR20090020460A (ko) 비디오 디코딩 방법 및 장치
Gudumasu et al. Software-based versatile video coding decoder parallelization
Schöffmann et al. An evaluation of parallelization concepts for baseline-profile compliant H. 264/AVC decoders
De Souza et al. GPU-assisted HEVC intra decoder
KR101050188B1 (ko) 멀티프로세서를 이용한 동영상 디코딩 장치 및 그 장치에서의 동영상 디코딩 방법
Wang et al. GPU parallelization of HEVC in-loop filters
CN112422983A (zh) 通用多核并行解码器系统及其应用
EP3149943B1 (en) Content aware scheduling in a hevc decoder operating on a multi-core processor platform
Han et al. A real-time ultra-high definition video decoder of AVS3 on heterogeneous systems
KR102171119B1 (ko) 복수개의 블록 기반의 파이프라인을 이용한 데이터 처리 속도 개선 장치 및 그 동작 방법
US11509940B1 (en) Video apparatus with reduced artifact and memory storage for improved motion estimation

Legal Events

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

Payment date: 20160628

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20170627

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20180627

Year of fee payment: 6