KR101050188B1 - 멀티프로세서를 이용한 동영상 디코딩 장치 및 그 장치에서의 동영상 디코딩 방법 - Google Patents

멀티프로세서를 이용한 동영상 디코딩 장치 및 그 장치에서의 동영상 디코딩 방법 Download PDF

Info

Publication number
KR101050188B1
KR101050188B1 KR1020080118992A KR20080118992A KR101050188B1 KR 101050188 B1 KR101050188 B1 KR 101050188B1 KR 1020080118992 A KR1020080118992 A KR 1020080118992A KR 20080118992 A KR20080118992 A KR 20080118992A KR 101050188 B1 KR101050188 B1 KR 101050188B1
Authority
KR
South Korea
Prior art keywords
scheduling
data
video decoding
level
processors
Prior art date
Application number
KR1020080118992A
Other languages
English (en)
Other versions
KR20100060408A (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 KR1020080118992A priority Critical patent/KR101050188B1/ko
Publication of KR20100060408A publication Critical patent/KR20100060408A/ko
Application granted granted Critical
Publication of KR101050188B1 publication Critical patent/KR101050188B1/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
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • 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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors

Landscapes

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

Abstract

본 발명은 멀티프로세서를 이용한 동영상 디코딩 장치 및 그 장치에서의 동영상 디코딩 방법에 관한 것으로서, 상기 동영상 디코딩 장치는, 병렬 처리가 불가능한 가변 길이 부호화를 수행하여 스케줄링을 위한 정보를 파싱하고, 매크로 블록 단위별로 가공되지 않은 비트 스트림을 나누어 나누어진 매크로 블록 단위의 비트 데이터를 출력하고, 파싱된 스케줄링을 위한 정보를 이용하여 나누어진 비트 데이터를 매크로 블록 단위로 스케줄링하고, 스케줄링된 매크로 블록들을 데이터 레벨 및 기능적 레벨로 구분된 해당 프로세서에 각각 할당함으로써, 각 프로세서에 할당된 매크로 블록을 상기 데이터 레벨 및 상기 기능적 레벨로 각각 디코딩함을 특징으로 하며, 이로 인해, 영상 압축 알고리즘에 내재되어 있는 병렬성을 최대한 이끌어내어 디코딩 성능 향상시킬 수 있다.
동영상 표준(H.264), 동영상 디코딩, 멀티프로세서, 파싱 전처리부, 스케줄러, 프로세서, 프레임 메모리, 매크로 블록, 데이터 레벨 분할, 기능적 레벨 분할.

Description

멀티프로세서를 이용한 동영상 디코딩 장치 및 그 장치에서의 동영상 디코딩 방법{Apparatus and Method for decoding video using multiprocessor}
본 발명은 동영상 디코딩에 관한 것으로서, 특히 병렬적으로 처리할 수 있는 매크로 블록을 기반으로 각 매크로 블록 처리를 다수의 프로세서에 효율적으로 할당하여 처리하기 위한 동영상 디코딩 장치 및 그 장치에서의 동영상 디코딩 방법에 관한 것이다.
본 발명은 지식경제부 및 정보통신연구진흥원의 IT성장동력기술개발사업의 일환으로 수행한 연구로부터 도출된 것이다[과제관리번호:2006-S26-02, 과제명: MPCore 플랫폼 기반 다중 포맷 멀티미디어 SoC].
멀티미디어에 필수적인 동영상 압축/복원 기술은 현재 HDTV 방송에서 사용되고 있는 MPEG뿐만 아니라 H.264/AVC, VC-1, AVS 와 같은 동영상 표준들에 의해 실용화되고 있다.
동영상 압축 기술은 가능하면 비트 사이즈를 줄여 대역폭을 줄이고자 하는데 목적을 두고 발전되어 왔다. 그러나 이렇게 대역폭을 줄이면 그에 비례하여 계산 량은 증가하게 된다.
또한, 종래 기술은 화면 해상도가 커짐에 따라 더욱더 알고리즘 complexity 가 증가하게 되므로 이로 인해 동영상 압축/복원을 위한 효율적인 하드웨어 또는 장치가 필요하게 되었다. 이에 따라 H.264/AVC는 인코딩뿐만 아니라 디코딩도 전용 하드웨어를 이용하여 동영상을 처리하고 있다.
최근에는 전용 하드웨어로 처리하는 시도뿐만 아니라, 여러 개의 프로세서로 동영상 처리하기 위한 기술을 개발하기 위한 노력이 이루어지고 있다. 이와 같이 여러 개의 프로세서 처리는 전체 잡(job)을 여러 개의 병렬 처리 가능한 서브 테스크(sub-task)들로 나누어 프로세서를 실행시키고, 그들 사이의 인터페이스를 통해 전체 잡을 마치는 형태로 이루어진다. 이러한 기술을 실현하기 위해 반드시 전체 잡을 분할하고, 적절하게 각각의 프로세서에 할당 및 처리하기 위한 기술이 필요하다.
그러나 하나의 전체 테스크를 여러 개의 프로세서가 실행가능하고, 그들 사이의 데이터 트랜스퍼를 고려하여 분할하는 것은 상당히 어려운 작업이며, 현재까지 일반적인 최적화된 솔루션은 없다.
본 발명의 해결하고자 하는 과제는 영상 디코딩의 병렬성을 높여 각각의 프로세서의 활용성을 높임으로써 전체 디코딩 성능을 높이기 위한 동영상 디코딩 장치 및 그 장치에서의 동영상 디코딩 방법을 제공함에 있다.
또한, 본 발명의 해결하고자 하는 과제는 동영상을 효율적으로 디코딩하기 위해 디코딩부의 프로세서들을 데이터 레벨 및 기능적 레벨로 분할하고, 분할된 해당 프로세서에 스케줄링한 결과를 할당 및 디코딩하기 위한 동영상 디코딩 장치 및 그 장치에서의 동영상 디코딩 방법을 제공함에 있다.
상기 이러한 본 발명의 목적들을 달성하기 위한 멀티프로세서를 이용한 동영상 디코딩 장치는, 병렬 처리가 불가능한 가변 길이 부호화를 수행하고, 스케줄링을 위한 정보들을 파싱하여 파싱된 스케줄링을 위한 정보를 전송하고, 매크로 블록 단위별로 가공되지 않은 비트 스트림을 나누어서 나누어진 매크로 블록 단위별 비트 데이터를 전송하는 파싱 전처리부(preparser); 상기 파싱 전처리부로부터 수신된 정보를 이용하여 수신된 비트 데이터를 매크로 블록 단위로 스케줄링하고, 데이터 레벨 및 기능적 레벨로 스케줄링된 매크로 블록들을 해당 프로세서에 각각 할당하는 스케줄러; 다수의 프로세서를 포함하고, 상기 스케줄링된 매크로 블록들이 해당 프로세서에 각각 할당되면, 각 프로세서에 할당된 매크로 블록을 상기 데이터 레벨 및 상기 기능적 레벨로 각각 디코딩하는 디코딩부; 및 상기 디코딩부에서 디코딩된 결과를 저장하는 프레임 메모리를 포함하는 것을 특징으로 한다.
상기 본 발명의 목적들을 달성하기 위한 동영상 디코딩 장치에서의 멀티프로세서를 이용한 동영상 디코딩 방법은, 병렬 처리가 불가능한 가변 길이 부호화를 수행하여 스케줄링을 위한 정보를 파싱하는 단계; 매크로 블록 단위별로 가공되지 않은 비트 스트림을 나누어 나누어진 매크로 블록 단위의 비트 데이터를 출력하는 단계; 파싱된 스케줄링을 위한 정보를 이용하여 나누어진 비트 데이터를 매크로 블록 단위로 스케줄링하는 단계; 스케줄링된 매크로 블록들을 데이터 레벨 및 기능적 레벨로 구분된 해당 프로세서에 각각 할당하는 단계; 상기 스케줄링된 매크로 블록들이 해당 프로세서에 각각 할당되면, 각 프로세서에 할당된 매크로 블록을 상기 데이터 레벨 및 상기 기능적 레벨로 각각 디코딩하는 단계; 및 디코딩된 결과를 저장하는 단계를 포함하는 것을 특징으로 한다.
따라서 본 발명은 멀티 프로세서를 이용하고, 기능적 레벨 분할 및 데이터 레벨 분할 방식을 모두 적용하여 동영상의 디코딩을 수행함으로써, 영상 압축 알고리즘에 내재되어 있는 병렬성을 최대한 이끌어내어 디코딩 성능 향상시킬 수 있으며, 매크로 블록 수행 시간을 정확하게 예측할 수 있으므로 스케줄링의 효율성을 높일 수 있다.
이하, 본 발명의 바람직한 실시 예를 첨부한 도면을 참조하여 상세히 설명한다. 본 발명을 설명함에 있어, 관련된 공지 기능 혹은 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
영상 디코딩은 매크로 블록 간에 데이터 의존성이 존재하며, 매크로 블록들 사이에 여러 가지 정보의 커뮤니케이션이 이루어져야 하며, 데이터 의존성이 만족된다면, 여러 개의 매크로 블록이 동시에 처리할 수 있는 특성을 가지므로 동시에 처리할 수 있는 매크로 블록은 여러 개의 프로세서에 동시에 실행될 수 있다. 따라서 본 발명의 실시예에서는 적절한 잡 분할(job-partition)과 효율적인 매핑(mapping strategy), 인터 프로세싱 스케줄링(inter-process scheduling) 수행을 통해 매크로 블록 간의 병렬성을 높이도록 한다.
또한, 영상과 같이 데이터 의존성이 일정하고, 병렬 처리가 가능한 어플리케이션에서는 효율적인 어플리케이션 분할이 가능하므로 멀티프로세서에 적합한 어플리케이션 분할(partitioning) 방식은 첨부된 도 1에 도시된 바와 같이 크게 데이터 분할과 기능적 레벨 분할로 구분할 수 있다. 상기 기능적 레벨 분할은 상기 도 1의 (a)와 같이, 하나의 잡을 여러 개의 기능블록으로 나누고, 나누어진 하나의 기능블록을 하나의 프로세서에 매핑시키므로 매핑된 프로세서는 매핑된 기능블록만을 수행하고, 기능 블록들 간의 데이터 전송이 필요하다. 반면, 데이터 분할은 상기 도 1의 (b)와 같이, 모든 프로세서가 모든 기능을 다 수행하는데, 전체 잡의 일부분의 데이터를 가지고만 모든 기능을 수행한다.
본 발명의 실시예에서는 동영상 표준들(H.264/AVC, VC-1, AVS 등)에 적용할 수 있으며, 상술한 바와 같이 상기 도 1에 도시된 바와 같은 기능블록 분할 및 데이터 분할 방식을 모두 적용한 혼합 분할 방식을 이용한다.
그러면 본 발명의 실시예에서는 멀티프로세서를 이용한 동영상 디코딩 장치의 구조를 첨부된 도면을 참조하여 구체적으로 설명하기로 한다.
도 2는 본 발명의 실시예에 따른 동영상 디코딩 장치의 구조를 도시한 도면이다.
상기 도 2를 참조하면, 동영상 디코딩 장치는 파싱 전처리부(preparser) (110), 스케줄러(120), 다수의 프로세서를 갖는 디코딩부(130) 및 프레임 메모리(140)로 이루어질 수 있다.
파싱 전처리부(110)는 병렬 처리가 불가능한 가변 길이 부호화를 프레임 단위로 수행하고, 매크로 블록 스케줄링 및 할당에 필요한 여러 정보들(움직임 벡터(Motion Vectors, 레퍼런스 프레임 정보 등)을 먼저 파싱하여 파싱된 정보들을 스케줄러(120)로 전송한다. 이때, 파싱 전처리부(110)는 비록 가변 길이 부호화를 실행하여 잔여 데이터(Residual Data)를 디코딩 함에도 불구하고 데이터 커뮤니케이션을 줄이기 위해 가변되지 않은 비트 스트림(raw bit stream)을 전송한다. 또한, 파싱 전처리부(110)는 가변되지 않은 비트 스트림을 매크로 블록 단위별로 나누어서, 나누어진 매크로 블록 단위별 비트 데이터를 스케줄러(120)로 전송한다.
스케줄러(120)는 상기 파싱 전처리부(110)에서 수신된 스케줄링을 위한 정보를 이용하여 수신된 매크로 블록 단위별 비트 데이터를 매크로 블록 단위로 스케줄링을 수행하고, 실행 순서와 그에 대응되는 가공되지 않은 비트 스트림에서 나눠진 비트 데이터를 기능적 레벨 및 데이터 레벨로 수행되어야 할 해당 프로세서에 전달한다. 스케줄러(120)의 구체적인 설명은 첨부된 도 3 및 도 4를 참조하여 후술하기로 한다.
디코딩부(130)는 다수의 프로세서를 포함하며, 각 프로세서는 스케줄러(120)에서 스케줄링된 매크로 블록 단위별 비트 데이터(이하, 매크로 블록이라 칭함) 및 실행 순서를 데이터 레벨 및 기능적 레벨 분할 방식으로 구분된 각 프로세서에 할당한다. 그리고 디코딩부(130)는 각 프로세스에 할당된 매크로 블록을 각각 디코딩한 결과를 프레임 메모리(140)에 저장한다. 여기서 디코딩부(130)의 다수의 프로세서 중 가로 방향의 프로세서들은 기능적 레벨로 분할되고, 세로 방향의 프로세서들은 데이터 레벨로 분할되어 할당된 매크로 블록을 각각 디코딩한다. 따라서 가로 방향은 기능 레벨 분할을 나타내며, 세로 방향은 데이터 레벨 분할을 나타낸다. 예를 들어, 도 1에 도시된 바와 같이, 프로세서 1, 2, 3, 4는 스케줄러(120)가 스케줄링한 매크로 블록 디코딩을 데이터 레벨로 나누어 수행하고, 프로세서 1, 5, 9, 13은 같은 매크로 블록 디코딩을 기능레벨 나누어 수행한다. 이에 따라 최종적으로 디코딩된 결과는 프로세서 13, 14, 15, 16의 디코딩이 완료되면 출력되어 프레임 메모리(140)에 저장된다. 이러한 예는 하나의 예일 뿐이며, 여러 수의 프로세서가 기능 레벨 또는 데이터 레벨 단위로 처리될 수 있음을 알 수 있다.
상기 스케줄러(120)에서 스케줄링을 수행하기 위해 필요한 정보를 살펴보기 위해 먼저, 동영상 표준(H.264)의 매크로 블록 사이의 데이터 의존성을 살펴보면 상기 도 3 및 도 4에 도시된 바와 같다. 상기 도 3은 기능 레벨 사이에서의 데이터 의존성을 나타내는데, 여기서 도 3의 (a)는 인트라(Intra)/움직임(motion) 벡터 방향을 나타내고, (b)는 스킵 카운터(skip count)/매크로 블록(MB)에 대한 양자화 파라미터(QP : Quantization Parameter) 의존성을 나타내며, (c)는 디블록킹(de-blocking) 필터의 공간적(spatial)/시간적(temporal) 의존성을 나타낸다. 상기 도 4의 (a)는 I 영상(Picture)의 데이터 의존성을 나타내며, 도 4의 (b)는 P 영상(Picture)의 데이터 의존성을 나타낸다.
상기 도 4의 (b)에 도시된 바와 같이, P 영상은 매크로 블록간 데이터 의존성이 거의 존재하지 않으나, 프레임 메모리(140)를 액세스하는 경우의 매크로 블록 간 충돌, 충돌을 피하기 위한 의존성이 반드시 존재하게 된다. 따라서 스케줄러(120)는 P 영상의 메모리 충돌 의존성도 함께 고려해야 한다. 이러한 메모리 충돌 의존성은 메모리와 캐시의 설계에 따라 달라지므로 구성하고자 하는 시스템에 따라 스케줄링 방법도 달라질 수 있다. 따라서 스케줄러(120)는 이러한 데이터 의존성을 피해 매크로 블록을 잘 오더링(ordering)하게 되면, 동시에 여러 개의 매크로 블록을 스케줄링하게 된다.
또한, 스케줄러(120)는 각각의 매크로 블록을 스케줄링하는데 걸리는 시간이 각각 다르므로 스케줄링 시 이러한 수행 시간도 고려해야 한다. 여기서 상기 수행 시간은 통상적으로 파싱 전처리부(110)에서 가변 길이 부호화를 통해 얻어질 수 있 는 각 매크로 블록당 비트 사이즈를 보고 경험적으로 추측될 수 있다. 그러나 이렇게 추출된 수행 시간은 정확하지 않으므로 본 발명의 실시예에서는 각 매크로 블록의 실행 시간을 예측하기 위해, 각 매크로 블록의 움직임 벡터(Motion Vector) 값 혹은 예측모드 값을 이용하여 실행 시간을 추정한다. 예를 들어 인터(inter)로 코딩된 매크로 블록에서는 16×16 모드가 4×4 모드 보다 실행 시간이 적고, 인트라(intra)로 코딩된 매크로 블록에서는 예측 모드(prediction mode)인 DC 모드가 평면(Plane) 모드나 여러 예측 모드보다 실행 시간이 적다. 이를 바탕으로 스케줄러(120)는 각 모드 별 실행 시간을 여러 테스트 영상을 수행하여 얻은 인터(inter)에서의 움직임 벡터 타입, 인트라(Intra)에서의 예측 모드 별로 수행 시간을 측정, 평균하여 스케줄링에 사용한다. 스케줄링의 효율성을 높이기 위해 각 영상(picture)의 타입, 예측 모드, 메모리 의존성 등을 이용하여 매크로 블록 수행 시간을 정확하게 예측할 수 있다. 이러한 방법은 기존의 가변길이 알고리즘을 이용하여 수행 시간을 측정하는 것보다 정교한 방법이다.
스케줄러(120)의 알고리즘은 기존의 알려진 여러 알고리즘 중에서 상술한 바와 같은 스케줄링에 적합한 알고리즘을 선택하거나, 기존 알고리즘을 수정하여 이용할 수도 있다. 본 발명의 실시예에서는 스케줄링 알고리즘 자체에 중점을 두고 있지 않으므로 이는 사용자가 각각의 상황에 맞는 적절한 알고리즘을 선택 또는 개발하여 사용할 수 있다.
이와 같은 구조를 갖는 동영상 디코딩 장치에서 데이터 의존성을 피해 병렬 적으로 매크로 블록을 처리할 수 있는 멀티 프로세서를 이용하여 동영상을 효율적으로 디코딩하기 위한 방법을 첨부된 도면을 참조하여 구체적으로 설명하기로 한다.
도 5는 본 발명의 실시예에 따라 동영상 디코딩 장치에서의 동영상 디코딩 방법을 도시한 도면이다.
상기 도 5를 참조하면, 201단계에서 동영상 디코딩 장치는 영상 디코딩의 병렬성을 저해하는 즉, 병렬 처리가 불가능한 가변 길이 부호화를 프레임 단위로 수행한다.
202단계에서 동영상 디코딩 장치의 파싱 전처리부(110)는 부호화된 프레임에서 매크로 블록 스케줄링 및 할당에 필요한 여러 정보들(움직임 벡터, 레퍼런스 프레임 정보 등)을 파싱하고, 203단계에서 동영상 디코딩 장치의 파싱 전처리부(110)는 가공되지 않은 비트 스트림을 매크로 블록 단위별로 나누고 나눠진 매크로 블록 단위별 비트 데이터를 스케줄러(130)로 전달한다.
그런 다음 204단계에서 동영상 디코딩 장치의 스케줄러(130)는 상기 파싱된 정보를 이용하여 전달된 매크로 블록 단위별 비트 데이터 스케줄링을 수행한다. 이후, 205단계에서 동영상 디코딩 장치의 스케줄러(130)는 실행 순서와 그에 대응되는 가공되지 않은 비트 스트림 즉, 스케줄링된 매크로 블록들을 수행되어야 할 해당 프로세서에 각각 할당한다.
205단계에서 동영상 디코딩 장치의 디코딩부(130)는 프로세서들 각각에 대해 디코딩을 수행한다. 이때, 다수의 프로세서 중 가로 방향 프로세서들은 기능적 레 벨로 분할되어 디코딩되고, 세로 방향의 프로세서들은 데이터 레벨로 분할되어 디코딩된다.
206단계에서 동영상 디코딩 장치의 디코딩부(130)는 디코딩된 결과를 프레임 메모리(140)에 저장한 후 동작을 종료한다.
상술한 바와 같은 본 발명의 실시예에 따라 동영상 디코딩을 위해 기능블록 분할 및 데이터 분할 방식을 모두 적용한 혼합 분할 방식을 이용함으로써, 본 발명의 실시예에 따른 동영상 디코딩 장치는 프로세서 간의 데이터 트랜스퍼를 최대한 줄이면서 병렬 처리를 가능하게 하는 일반적인 영상 압축 디코딩뿐만 아니라 그래픽 처리 등에 적용 가능할 수 있다. 즉, H. 264뿐만 아니라 일정한 크기의 블록을 기반으로 하는 코딩(Coding) 되는 이미지 또는 영상 압축/복원 알고리즘에 적용 가능할 수 있다.
한편, 본 발명의 상세한 설명에서는 구체적인 실시 예에 관하여 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 발명의 범위는 설명된 실시 예에 국한되어 정해져서는 안되며 후술하는 발명청구의 범위뿐만 아니라 이 발명청구의 범위와 균등한 것들에 의해 정해져야 한다.
도 1은 멀티프로세서에 적합한 어플리케이션 분할 방식들을 도시한 도면,
도 2는 본 발명의 실시예에 따른 동영상 디코딩 장치의 구조를 도시한 도면,
도 3 및 도 4는 본 발명의 실시예에 따른 매크로 블록들 사이의 데이터 의존성을 도시한 도면,
도 5는 본 발명의 실시예에 따라 동영상 디코딩 장치에서의 동영상 디코딩 방법을 도시한 도면.

Claims (9)

  1. 병렬 처리가 불가능한 가변 길이 부호화를 수행하고, 스케줄링을 위한 정보들을 파싱하여 파싱된 스케줄링을 위한 정보를 전송하고, 매크로 블록 단위별로 가공되지 않은 비트 스트림을 나누어서 나누어진 매크로 블록 단위별 비트 데이터를 전송하는 파싱 전처리부;
    상기 파싱 전처리부로부터 수신된 정보를 이용하여 수신된 비트 데이터를 매크로 블록 단위로 스케줄링하고, 데이터 레벨 및 기능적 레벨로 스케줄링된 매크로 블록들을 해당 프로세서에 각각 할당하는 스케줄러;
    다수의 프로세서를 포함하고, 상기 스케줄링된 매크로 블록들이 해당 프로세서에 각각 할당되면, 각 프로세서에 할당된 매크로 블록을 상기 데이터 레벨 및 상기 기능적 레벨로 각각 디코딩하는 디코딩부; 및
    상기 디코딩부에서 디코딩된 결과를 저장하는 프레임 메모리를 포함하는 것을 특징으로 하는 멀티프로세서를 이용한 동영상 디코딩 장치.
  2. 제1항에 있어서,
    상기 디코딩부에 포함된 세로 방향의 프로세서들은 상기 데이터 레벨로 분할되어 할당된 매크로 블록을 데이터 레벨별로 각각 디코딩하고, 가로 방향의 프로세서들은 상기 기능적 레벨로 분할되어 할당된 매크로 블록을 각각 기능적으로 디코 딩함을 특징으로 하는 멀티프로세서를 이용한 동영상 디코딩 장치.
  3. 제1항에 있어서,
    상기 스케줄러는 실행 순서와 상기 스케줄링된 매크로 블록들을 상기 데이터 레벨 및 상기 기능적 레벨로 구분된 해당 프로세서에 각각 할당함을 특징으로 하는 멀티프로세서를 이용한 동영상 디코딩 장치.
  4. 제3항에 있어서,
    상기 스케줄러는 매크로 블록들 간의 데이터 의존성을 고려하여 스케줄링을 수행함을 특징으로 하는 멀티프로세서를 이용한 동영상 디코딩 장치.
  5. 제4항에 있어서,
    상기 스케줄러는 각 매크로 블록의 움직임 벡터(Motion Vector) 값 또는 예측 모드 값을 이용하여 추정되는 각 매크로 블록별 실행 시간을 고려하여 스케줄링을 수행함을 특징으로 하는 멀티프로세서를 이용한 동영상 디코딩 장치.
  6. 병렬 처리가 불가능한 가변 길이 부호화를 수행하여 스케줄링을 위한 정보를 파싱하는 단계;
    매크로 블록 단위별로 가공되지 않은 비트 스트림을 나누어 나누어진 매크로 블록 단위의 비트 데이터를 출력하는 단계;
    파싱된 스케줄링을 위한 정보를 이용하여 나누어진 비트 데이터를 매크로 블록 단위로 스케줄링하는 단계;
    스케줄링된 매크로 블록들을 데이터 레벨 및 기능적 레벨로 구분된 해당 프로세서에 각각 할당하는 단계;
    상기 스케줄링된 매크로 블록들이 해당 프로세서에 각각 할당되면, 각 프로세서에 할당된 매크로 블록을 상기 데이터 레벨 및 상기 기능적 레벨로 각각 디코딩하는 단계; 및
    디코딩된 결과를 저장하는 단계를 포함하는 것을 특징으로 하는 동영상 디코딩 장치에서의 멀티프로세서를 이용한 동영상 디코딩 방법.
  7. 제6항에 있어서, 상기 스케줄링된 매크로 블록들을 데이터 레벨 및 기능적 레벨로 구분된 해당 프로세서에 각각 할당하는 단계는,
    다수의 프로세서 중 세로 방향의 프로세서들을 상기 데이터 레벨로 분할하는 단계;
    상기 스케줄링된 매크로 블록들을 해당 실행순서와 함께 상기 데이터 레벨로 분할된 해당 프로세서에 각각 할당하는 단계;
    상기 다수의 프로세서 중 가로 방향의 프로세서들을 상기 기능적 레벨로 분할하는 단계; 및
    상기 스케줄링된 매크로 블록들을 해당 실행순서와 함께 상기 기능적 레벨로 분할된 해당 프로세서에 각각 할당하는 단계를 포함하는 것을 특징으로 하는 동영상 디코딩 장치에서의 멀티프로세서를 이용한 동영상 디코딩 방법.
  8. 제7항에 있어서,
    상기 스케줄링은 매크로 블록들 간의 데이터 의존성을 고려하여 스케줄링을 수행함을 특징으로 하는 동영상 디코딩 장치에서의 멀티프로세서를 이용한 동영상 디코딩 방법.
  9. 제8항에 있어서,
    상기 스케줄링은 각 매크로 블록의 움직임 벡터(Motion Vector) 값 또는 예측 모드값을 이용하여 추정되는 각 매크로 블록별 실행 시간을 고려하여 스케줄링을 수행함을 특징으로 하는 동영상 디코딩 장치에서의 멀티프로세서를 이용한 동영상 디코딩 방법.
KR1020080118992A 2008-11-27 2008-11-27 멀티프로세서를 이용한 동영상 디코딩 장치 및 그 장치에서의 동영상 디코딩 방법 KR101050188B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020080118992A KR101050188B1 (ko) 2008-11-27 2008-11-27 멀티프로세서를 이용한 동영상 디코딩 장치 및 그 장치에서의 동영상 디코딩 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080118992A KR101050188B1 (ko) 2008-11-27 2008-11-27 멀티프로세서를 이용한 동영상 디코딩 장치 및 그 장치에서의 동영상 디코딩 방법

Publications (2)

Publication Number Publication Date
KR20100060408A KR20100060408A (ko) 2010-06-07
KR101050188B1 true KR101050188B1 (ko) 2011-07-19

Family

ID=42361330

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080118992A KR101050188B1 (ko) 2008-11-27 2008-11-27 멀티프로세서를 이용한 동영상 디코딩 장치 및 그 장치에서의 동영상 디코딩 방법

Country Status (1)

Country Link
KR (1) KR101050188B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101172346B1 (ko) 2012-02-03 2012-08-14 이노뎁 주식회사 데이터 처리 속도를 개선한 데이터 처리장치 및 그 동작방법

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101219220B1 (ko) * 2010-10-20 2013-01-08 성균관대학교산학협력단 병렬 부호화를 위한 데이터 파티션 방법 및 이를 수행하는 프로그램을 기록한 기록매체
WO2014209366A1 (en) * 2013-06-28 2014-12-31 Hewlett-Packard Development Company, L.P. Frame division into subframes
CN114697705B (zh) * 2020-12-29 2024-03-22 深圳云天励飞技术股份有限公司 视频流对象处理方法、装置、视频流处理系统、电子设备

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060105352A (ko) * 2005-04-04 2006-10-11 삼성전자주식회사 인트라 예측 방법 및 그 장치

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060105352A (ko) * 2005-04-04 2006-10-11 삼성전자주식회사 인트라 예측 방법 및 그 장치

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101172346B1 (ko) 2012-02-03 2012-08-14 이노뎁 주식회사 데이터 처리 속도를 개선한 데이터 처리장치 및 그 동작방법

Also Published As

Publication number Publication date
KR20100060408A (ko) 2010-06-07

Similar Documents

Publication Publication Date Title
US11388405B2 (en) Content aware scheduling in a HEVC decoder operating on a multi-core processor platform
US8213518B1 (en) Multi-threaded streaming data decoding
Meenderinck et al. Parallel scalability of video decoders
Chi et al. Parallel scalability and efficiency of HEVC parallelization approaches
JP5545288B2 (ja) タスク割当装置、タスク割当方法、及び、タスク割当プログラム
US20060215754A1 (en) Method and apparatus for performing video decoding in a multi-thread environment
US20160191922A1 (en) Mixed-level multi-core parallel video decoding system
US20100246679A1 (en) Video decoding in a symmetric multiprocessor system
Meenderinck et al. Parallel scalability of H. 264
KR101292668B1 (ko) 멀티프로세서기반의 영상 복호화 장치 및 방법
US20130028332A1 (en) Method and device for parallel decoding of scalable bitstream elements
Mesa et al. Scalability of macroblock-level parallelism for h. 264 decoding
KR101050188B1 (ko) 멀티프로세서를 이용한 동영상 디코딩 장치 및 그 장치에서의 동영상 디코딩 방법
Juurlink et al. Scalable parallel programming applied to H. 264/AVC decoding
Enfedaque et al. GPU implementation of bitplane coding with parallel coefficient processing for high performance image compression
Radicke et al. A multi-threaded full-feature HEVC encoder based on wavefront parallel processing
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
US20130148717A1 (en) Video processing system and method for parallel processing of video data
Jo et al. Efficient coordination of parallel threads of H. 264/AVC decoder for performance improvement
Radicke et al. Many-core HEVC encoding based on wavefront parallel processing and GPU-accelerated motion estimation
Georgakarakos et al. Performance evaluation of parallel HEVC strategies
Gulati et al. Efficient mapping of the H. 264 encoding algorithm onto multiprocessor DSPs
EP3149943B1 (en) Content aware scheduling in a hevc decoder operating on a multi-core processor platform
EP3777168B1 (en) Accelerating video encoding and decoding

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
LAPS Lapse due to unpaid annual fee