KR101219220B1 - 병렬 부호화를 위한 데이터 파티션 방법 및 이를 수행하는 프로그램을 기록한 기록매체 - Google Patents

병렬 부호화를 위한 데이터 파티션 방법 및 이를 수행하는 프로그램을 기록한 기록매체 Download PDF

Info

Publication number
KR101219220B1
KR101219220B1 KR1020100102307A KR20100102307A KR101219220B1 KR 101219220 B1 KR101219220 B1 KR 101219220B1 KR 1020100102307 A KR1020100102307 A KR 1020100102307A KR 20100102307 A KR20100102307 A KR 20100102307A KR 101219220 B1 KR101219220 B1 KR 101219220B1
Authority
KR
South Korea
Prior art keywords
processor
data
macroblock
processors
macroblocks
Prior art date
Application number
KR1020100102307A
Other languages
English (en)
Other versions
KR20120040840A (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 KR1020100102307A priority Critical patent/KR101219220B1/ko
Publication of KR20120040840A publication Critical patent/KR20120040840A/ko
Application granted granted Critical
Publication of KR101219220B1 publication Critical patent/KR101219220B1/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/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

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

멀티 프로세서 또는 멀티 코어 환경의 병렬 부호화에서 부호화 속도를 향상시키기 위한 병렬 부호화를 위한 데이터 파티션 방법 및 이를 수행하는 프로그램을 기록한 기록매체가 개시된다. 병렬 부호화를 위한 데이터 파티션 방법은 부호화할 프레임을 프로세서의 개수에 따라 복수의 프로세서 데이터 영역으로 구분하는 단계와, 구분된 각 프로세서 데이터 영역에 포함된 매크로블록들 중 데이터 의존성을 만족하는 매크로블록을 찾는 단계 및 데이터 의존성을 만족하는 매크로블록에 대해 미리 설정된 우선순위에 따라 복수의 프로세서 중 소정 프로세서를 데이터 의존성을 만족하는 매크로블록의 처리를 위한 프로세서로 할당하는 단계를 포함한다. 따라서, 프로세서간 처리 동시성을 향상시킬 수 있고, 이를 통해 부호화 속도를 향상시킬 수 있다

Description

병렬 부호화를 위한 데이터 파티션 방법 및 이를 수행하는 프로그램을 기록한 기록매체{METHOD FOR PARTITIONING DATA FOR PARALLEL ENCODING AND RECORDED MEDIUM HAVING PROGRAM FOR PERFORMING THE SAME}
본 발명은 부호화 방법에 관한 것으로, 더욱 상세하게는 멀티 프로세서 또는 멀티 코어 환경의 부호화에 적용할 수 있는 병렬 부호화를 위한 데이터 파티션 방법 및 이를 수행하는 프로그램을 기록한 기록매체에 관한 것이다.
H.264/AVC 등의 동영상 압축 부호화 표준은 다양한 처리 블록 크기, 다중 참조 프레임, CAVLC(Context-based Adaptive Variable Length Code), CABAC(Context-based Adaptive Binary Arithmetic Code) 등의 기술을 이용하여 압축 효율을 높임으로써 비트율을 향상시키고 있다.
그러나, 부호화기에 다양한 기술이 적용되면서 부호화기의 복잡도는 증가하고 있고, 이에 상응하여 전력 소모량도 커지고 있다. 또한, 부호화 복잡도가 증가함에 따라 단일 코어 프로세서는 부호화 속도가 중요한 실시간 부호화 처리에는 적합하지 않게 되었고, 이로 인해 하드웨어 가속기능 또는 병렬 처리 방법을 통한 부호화 속도의 향상이 요구되고 있다.
상술한 바와 같은 요구에 따라 최근에는 부호화에 병렬 처리를 적용하는 방법이 활발하게 연구되고 있다. 병렬 부호화 방법에는 프레임(frame) 레벨, 슬라이스(slice) 레벨 또는 매크로블록(macro-block) 레벨로 병렬 부호화를 수행하는 방법이 있고, 이 중 매크로블록 레벨의 병렬 부호화 방법은 비디오 품질의 손상없이 병렬 부호화를 수행할 수 있는 장점이 있다.
매크로블록 사이에는 데이터 의존성이 존재하기 때문에 매크로블록 레벨의 병렬 부호화에서는 데이터 의존성을 준수하면서 각 프로세서에 매크로 블록을 균형적으로 배치하여 동시성(concurrency)을 높이는 것이 중요하다.
종래의 매크로블록 레벨의 병렬 부호화 방법에서는 한 프레임을 구성하는 복수의 매크로블록을 데이터 의존성을 만족하는 순서에 따라 서로 다른 프로세서들에 할당하고 데이터 파티션(data partition)을 통해 할당 순서들을 정하는 방법을 사용하였다.
데이터 파티션은 복수의 매크로블록을 분할하여 서로 다른 프로세서에 할당하는 것으로, 매크로블록을 분할하는 방법에 따라 처리 동시성이 결정되기 때문에 부호화 속도 측면에서 매우 중요한 부분을 차지한다.
병렬 부호화를 위한 데이터 파티션 방법은 크게 동적 데이터 파티션, 수평 데이터 파티션 및 수직 데이터 파티션 방법으로 구분할 수 있다.
도 1은 병렬 부호화를 위한 데이터 파티션 방법을 나타내는 것이다. 도 1에서, 'T'는 하나의 매크로블록을 부호화하는 시간을 의미한다.
도 1의 (a)에 도시한 바와 같이, 동적 데이터 파티션 방법은 각 프로세서의 매크로블록 선택 방법을 정의한 것으로, 프로세서들이 부호화할 매크로블록들이 확정적이지 않기 때문에 프로세서간 데이터 통신량을 보장할 수 없는 문제점이 있다.
또한, 도 1의 (b)에 도시한 바와 같이, 수평 데이터 파티션 방법에는 wave-front 기술이 있고, 동일한 행에 위치하는 매크로블록을 동일한 프로세서에 할당하는 방법으로 동적 데이터 파티션 방법에 비해 데이터 통신 오버헤드가 감소하는 특징이 있다.
또한, 도 1의 (c)에 도시한 바와 같이, 수직 데이터 파티션 방법에는 MBRP(MacroBlock Region Partition) 기술이 있고, 프레임을 수직 방향을 기준으로 복수의 영역으로 분할하고, 분할된 영역을 서로 다른 프로세서에 할당하는 방법으로 데이터 통신 오버헤드가 다른 데이터 파티션 방법보다 작다.
그러나, 도 1에 도시한 바와 같은 종래의 데이터 파티션 방법을 이용한 병렬 부호화 방법에서는 소정 매크로블록을 부호화하는 하나의 프로세서와 상기 소정 매크로블록과 인접한 매크로블록을 부호화하는 다른 프로세서 사이에 데이터 통신으로 인한 오버헤드로 인해 만족할 만한 부호화 속도를 얻지 못하는 단점이 있다.
예를 들어, 쿼드 코어 환경의 병렬 부호화에서 Wave-front 데이터 파티션 기술을 이용한 경우에는 단일 코어 환경에 비해 부호화 속도가 3.1배 향상되었고, MBRP(MacroBlock Region Partition) 데이터 파티션 기술을 이용한 경우에는 부호화 속도가 3.33배 향상되는데 그쳤다.
본 발명의 목적은 멀티 프로세서 또는 멀티 코어 환경의 병렬 부호화에서 부호화 속도를 향상시키기 위한 데이터 파티션 방법을 제공하는 것이다.
또한, 본 발명의 다른 목적은 상기 데이터 파티션 방법을 수행하는 프로그램을 기록한 기록매체를 제공하는 것이다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
상술한 본 발명의 목적을 달성하기 위한 본 발명의 일 측면에 따른 병렬 부호화를 위한 데이터 파티션 방법은, 부호화할 프레임을 프로세서의 개수에 따라 복수의 프로세서 데이터 영역으로 구분하는 단계와, 구분된 각 프로세서 데이터 영역에 포함된 매크로블록들 중 데이터 의존성을 만족하는 매크로블록을 찾는 단계 및 데이터 의존성을 만족하는 매크로블록에 대해 미리 설정된 우선순위에 따라 상기 복수의 프로세서 중 소정 프로세서를 상기 데이터 의존성을 만족하는 매크로블록의 처리를 위한 프로세서로 할당하는 단계를 포함한다.
여기서, 복수의 프로세서 데이터 영역으로 구분하는 단계는, 상기 프레임의 각 행에 포함된 매크로블록의 개수를 상기 프로세서의 개수로 나누어 상기 프레임의 세로 방향을 기준으로 데이터 영역을 구분하고, 구분된 각 데이터 영역에 서로 다른 프로세서를 할당할 수 있다.
여기서, 상기 복수의 프로세서 데이터 영역으로 구분하는 단계는, 상기 프레임의 각 행에 포함된 매크로블록의 개수를 상기 프로세서의 개수로 나누어 나머지가 존재하는 경우에는 상기 나머지에 해당하는 마크로 블록들을 공유 영역으로 할당할 수 있다.
여기서, 상기 미리 설정된 우선순위에 따라 상기 복수의 프로세서 중 소정 프로세서를 할당하는 단계는, 상기 데이터 의존성을 만족하는 매크로블록이 제k 프로세서 데이터 영역에 포함될 때 제k 프로세서에 가장 높은 우선순위를 할당하여 상기 데이터 의존성을 만족하는 매크로블록을 처리할 프로세서로 할당할 수 있다.
여기서, 상기 미리 설정된 우선순위에 따라 상기 복수의 프로세서 중 소정 프로세서를 할당하는 단계는, 상기 데이터 의존성을 만족하는 매크로블록이 제k 프로세서 데이터 영역에 포함되지 않고 공유 영역에 포함될 때, 상기 제k 프로세서를 상기 데이터 의존성을 만족하는 매크로블록을 처리할 프로세서로 할당할 수 있다.
여기서, 상기 미리 설정된 우선순위에 따라 상기 복수의 프로세서 중 소정 프로세서를 할당하는 단계는, 상기 데이터 의존성을 만족하는 매크로블록이 제k 프로세서 데이터 영역 및 공유 영역에 포함되지 않고, 제m 프로세서 데이터 영역(여기서, k와 m은 서로 다른 자연수)에 포함될 때 상기 제k 프로세서를 상기 데이터 의존성을 만족하는 매크로블록을 처리할 프로세서로 할당할 수 있다.
여기서, 상기 미리 설정된 우선순위에 따라 상기 복수의 프로세서 중 소정 프로세서를 할당하는 단계는, 상기 데이터 의존성을 만족하는 매크로블록이 제k 프로세서 데이터 영역에 두 개 이상 포함된 경우, 상기 제k 프로세서를 상기 데이터 의존성을 만족하는 두 개 이상의 매크로블록 중 하나의 매크로블록을 처리할 프로세서로 상기 제k 프로세서를 할당하고, 상기 데이터 의존성을 만족하는 두 개 이상의 매크로블록 중 나머지 매크로 블록들을 처리할 프로세서로 상기 제k 프로세서가 아닌 다른 프로세서들을 할당할 수 있다.
또한, 본 발명의 다른 목적을 달성하기 위한 본 발명의 일 측면에 따른 병렬 부호화를 수행하는 프로그램을 기록한 기록매체는, 복수의 프로세서를 구비한 디지털 처리 장치에 의해 병렬 부호화가 실행될 수 있는 명령어의 프로그램이 유형적으로 구현되어 있으며, 상기 디지털 처리 장치에 의해 판독될 수 있는 프로그램을 기록한 기록매체에 있어서, 부호화할 프레임을 프로세서의 개수에 따라 복수의 프로세서 데이터 영역으로 구분하는 단계와, 구분된 각 프로세서 데이터 영역에 포함된 매크로블록들 중 데이터 의존성을 만족하는 매크로블록을 찾는 단계 및 데이터 의존성을 만족하는 매크로블록에 대해 미리 설정된 우선순위에 따라 상기 복수의 프로세서 중 소정 프로세서를 상기 데이터 의존성을 만족하는 매크로블록의 처리를 위한 프로세서로 할당하는 단계를 수행하는 프로그램이 기록된다.
상술한 바와 같은 병렬 부호화를 위한 데이터 파티션 방법 및 이를 수행하는 프로그램을 기록한 기록매체에 따르면, 데이터 의존성을 준수하는 매크로블록들을 미리 설정된 우선순위에 따라 프로세서들이 동적으로 매크로블록을 선택할 수 있도록 함으로써 프로세서간 처리 동시성을 향상시킬 수 있고, 이를 통해 부호화 속도를 향상시킬 수 있다. 부호화 속도의 성능 평가 결과 본 발명의 일 실시예에 따른 병렬 부호화를 위한 데이터 파티션 방법을 적용한 결과, 쿼드 코어 환경의 H.264/AVC 부호화에서 3.7배 이상의 속도 향상을 얻을 수 있었다.
도 1은 병렬 부호화를 위한 데이터 파티션 방법을 나타내는 것이다.
도 2는 본 발명의 일 실시예에 따른 병렬 부호화를 위한 데이터 파티션 방법에서 프로세서 할당 기준이 되는 데이터 의존성을 설명하기 위한 개념도이다.
도 3은 본 발명의 일 실시예에 따른 병렬 부호화를 위한 데이터 파티션을 나타내는 개념도이다.
도 4는 본 발명의 일 실시예에 따른 병렬 부호화를 위한 데이터 파티션 방법에서 프로세서의 우선순위를 할당하는 과정을 설명하기 위한 개념도이다.
도 5는 본 발명의 일 실시예에 따른 병렬 부호화를 위한 데이터 파티션 방법에서 프로세서의 우선순위를 할당하는 과정을 나타내는 흐름도이다.
도 6은 본 발명의 일 실시예에 따른 병렬 부호화를 위한 데이터 파티션 방법을 이용한 부호화 속도 평가 결과를 나타내는 그래프이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어"있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어"있다거나 "직접 접속되어"있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 이하, 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
이하, 본 발명의 일 실시예에 따른 병렬 부호화를 위한 데이터 파티션 방법에서는 프로세서의 개수에 따라 데이터를 분할한 후, 매크로블록의 데이터 의존성을 고려하여 프로세서를 할당함으로써 병렬 부호화 속도를 향상시킨다.
도 2는 본 발명의 일 실시예에 따른 병렬 부호화를 위한 데이터 파티션 방법에서 프로세서 할당 기준이 되는 데이터 의존성을 설명하기 위한 개념도이다.
도 2를 참조하여 데이터 의존성을 설명하면, 소정 매크로블록(210)이 현재 부호화될 때, 상기 소정 매크로블록(210)의 부호화를 위해 상기 소정 매크로블록(210)을 기준으로 인접한 매크로블록(220, 230, 240, 250)들에 포함된 픽셀값들이 참조되는 경우 상기 소정 매크로블록(210)과 인접 매크로블록 사이(220, 230, 240, 250)에는 데이터 의존성이 존재한다.
예를 들어, H.264/AVC 부호화 방법에서 화면내 예측(Intra prediction)을 수행하는 경우 부호화될 현재 매크로블록(210)을 기준으로 주위의 인접한 매크로블록들 즉, 좌측(220), 좌측 상단(230), 상단(240), 우측 상단(250)에 포함된 픽셀값들이 참조된다. H.264/AVC 부호화 방법에서는 상기한 화면내 예측 이외에도 움직임 벡터 예측, 디블록킹 필터 등에서 매크로블록간의 데이터 의존성을 고려한다.
도 3은 본 발명의 일 실시예에 따른 병렬 부호화를 위한 데이터 파티션을 나타내는 개념도이다.
비디오의 포맷에는 QCIF, CIF, SD, HD 등의 다양한 종류가 있다. 상기한 비디오 포맷들은 서로 다른 프레임 해상도를 가지고, 이에 따라 각각의 비디오 포맷은 서로 다른 개수의 매크로블록을 포함한다.
도 3은 CIF 포맷을 4개의 프로세서 또는 쿼드 코어가 부호화하는 경우의 데이터 파티션의 예를 도시하였다.
CIF 포맷의 비디오는 하나의 프레임이 352×288개의 픽셀로 구성되고, 매크로블록이 16×16 픽셀 크기를 가지는 경우 22×18개의 매크로블록을 포함한다.
따라서, 프레임의 세로를 기준으로 영역을 구분할 경우 CIF의 한 프레임의 각 행에 포함된 매크로블록의 개수인 22를 프로세서 개수인 4로 나누면, 각 행이 5개의 매크로블록으로 구성된 4개의 영역과 2개의 매크로블록으로 구성된 하나의 영역이 남게 된다.
본 발명에서는 각 행이 5개의 매크로블록으로 구성된 각 영역을 서로 다른 프로세서에 할당하고, 각 행이 2개의 매크로블록으로 구성된 나머지 영역을 각 프로세서의 공유 영역으로 할당한다. 여기서, 프레임이 행을 구성하는 매크로블록의 개수를 프로세서의 수로 나누었을 때 나누어떨어지는 경우 공유영역은 존재하지 않을 수도 있다.
본 발명의 일 실시예에 따른 병렬 부호화를 위한 데이터 파티션 방법에서는 상술한 바와 같이 프로세서의 수에 따라 소정 포맷을 가지는 비디오 프레임을 복수의 영역으로 구분한 후 데이터 의존도를 고려하여 프로세서들의 처리 우선순위를 할당한다.
도 4는 본 발명의 일 실시예에 따른 병렬 부호화를 위한 데이터 파티션 방법에서 프로세서의 우선순위를 할당하는 과정을 설명하기 위한 개념도이다.
본 발명의 일 실시예에 따른 병렬 부호화를 위한 데이터 파티션 방법에서는 도 3에 도시한 바와 같이 프로세서별로 구분된 각 영역에 포함되는 매크로블록을 처리하는 프로세서의 우선순위를 매크로블록의 데이터 의존성에 따라 서로 다르게 할당한다.
먼저, 가장 높은 우선순위는 소정 프로세서가 자신의 데이터 파티션 영역에 데이터 의존성을 준수하는 매크로블록이 있는 경우이다. 두 번째 우선순위는 공유 영역에 데이터 의존성을 준수하는 매크로블록이 있는 경우이고, 세 번째 우선순위는 다른 프로세서의 데이터 파티션 영역에 데이터 의존성을 준수하는 매크로블록이 존재하는 경우이다.
구체적으로, 도 4의 (a)에 도시한 바와 같이 공유 영역을 제외한 제1 프로세서 내지 제4 프로세서의 각 영역에 데이터 의존성을 만족하는 매크로블록이 각각 존재하는 경우, 각 영역에 포함된 데이터 의존성을 존재하는 매크로블록의 처리 우선순위가 가장 높은 프로세서는 각 영역에 해당하는 프로세서들이다. 따라서, 각 프로세서들은 각각 자신의 영역에 존재하는 매크로블록을 처리한다.
또는, 도 4의 (b)에 도시한 바와 같이 각 프로세서에 할당된 영역에 데이터 의존성을 만족하는 매크로블록이 없고, 공유 영역에 데이터 의존성을 만족하는 매크로블록이 있는 제1 내지 제4 프로세서 중 임의의 프로세서가 상기 공유 영역에 포함된 매크로블록을 처리한다. 여기서, 상기 공유 영역에 포함된 매크로블록을 처리하는 프로세서는 제1 내지 제4 프로세서 중 상기 매크로블록에 먼저 액세스한 프로세서가 처리 우선권을 가질 수 있다.
또는, 도 4의 (c)에 도시한 바와 같이 동일 영역에 데이터 의존성을 만족하는 복수의 매크로 블록이 존재하는 경우, 상기 데이터 의존성을 만족하는 복수의 매크로블록이 포함된 영역에 할당된 프로세서가 데이터 의존성을 만족하는 하나의 매크로블록을 처리하고, 다른 프로세서가 데이터 의존성을 만족하는 다른 매크로블록을 처리할 수 있다.
예를 들어, 도 4의 (c)에 도시된 바와 같이 제1 프로세서 영역에 데이터 의존성을 만족하는 매크로블록이 세 번째 행과 네 번째 행에 존재하는 경우, 세 번째 행에 존재하는 매크로블록은 제1 프로세서가 처리하고, 네 번째 행에 존재하는 매크로블록은 제2 프로세서가 처리하도록 할당될 수 있다.
도 5는 본 발명의 일 실시예에 따른 병렬 부호화를 위한 데이터 파티션 방법에서 프로세서의 우선순위를 할당하는 하는 과정을 나타내는 흐름도로서, 복수의 프로세서를 구비한 멀티프로세서 환경에서 매크로블록을 처리할 프로세서의 우선순위를 결정하는 과정을 나타낸다.
도 5를 참조하면, 부호화 장치는 먼저 도 3에 도시한 바와 같이 구분된 영역에서 데이터 의존성을 만족하는 매크로블록이 존재하는가를 판단하고(단계 510), 데이터 의존성을 만족하는 소정 매크로블록이 존재하는 것으로 판단되면, 상기 소정 매크로블록이 제k 프로세서 영역에 포함되는 가를 판단한다(단계 520). 여기서, 부호화 장치는 도 2에 도시한 바와 같은 방법으로 데이터 의존성을 만족하는 매크로블록의 존재 여부를 판단할 수 있다.
단계 520에서 데이터 의존성을 만족하는 상기 소정 매크로블록이 상기 제k 프로세서 영역에 포함되는 것으로 판단되면, 제k 프로세서가 상기 소정 매크로블록을 처리한다(단계 530). 여기서, 상기 소정 매크로블록이 상기 제k 프로세서 영역에 포함되는 것은 프로세서 할당 우선순위가 가장 높은 경우를 의미하는 것으로, 소정 프로세서가 자신의 데이터 파티션 영역에 존재하는 데이터 의존성을 준수하는 매크로블록을 처리하는 경우를 의미한다.
또는, 단계 520에서 상기 소정 매크로블록이 상기 제k 프로세서 영역에 포함되지 않는 것으로 판단되면, 부호화 장치는 상기 소정 매크로블록이 공유 영역에 포함되는가를 판단하고(단계 540), 상기 소정 매크로블록이 공유 영역에 포함되는 것으로 판단되면 상기 제k 프로세서가 공유 영역에 포함된 상기 소정 매크로블록을 처리한다.
또는, 단계 520에서 상기 소정 매크로블록이 공유 영역에 포함되지 않는 것으로 판단되면, 부호화 장치는 상기 소정 매크로블록이 제m 프로세서의 영역에 포함되는가를 판단하고(단계 550), 상기 소정 매크로블록이 제m 프로세서 영역에 포함되는 것으로 판단되는 경우에는 제k 프로세서가 상기 제m 프로세서 영역에 포함된 소정 매크로블록을 처리한다. 이와 같은 경우에는 프로세서 할당 우선순위가 가장 낮은 경우를 의미한다.
또는, 단계 550에서 제m 프로세서 영역에 상기 소정 매크로블록이 포함되지 않는 것으로 판단되면, 부호화 장치는 m을 1만큼 증가시킨 후(단계 560), 제m+1 프로세서 영역에 상기 소정 매크로블록이 존재하는 가를 판단한다.
도 5에서 k는 1 내지 n(프로세서의 전체 개수) 중 임의의 값을 가지를 수 있고, m은 k가 아닌 1 내지 n 사이의 임의의 값을 가질 수 있다.
도 6은 본 발명의 일 실시예에 따른 병렬 부호화를 위한 데이터 파티션 방법을 이용한 부호화 속도 평가 결과를 나타내는 그래프이다.
본 발명의 일 실시예에 따른 병렬 부호화를 위한 데이터 파티션 방법을 이용한 부호화 속도의 성능 평가를 위해, 도 3에 도시한 바와 같이 병렬 부호화를 수행하는 프로세서의 개수에 따라 프레임의 영역을 구분하고, 도 5에 도시한 바와 같이 데이터 의존성에 따라 각 프로세서에 우선순위를 할당한 후, 참조 코드(reference code)인 JM11.0(Joint Video Team에서 공개한 참조 소프트웨어)에 적용하여 부호화 속도를 JM11.0과 비교하였다.
부호화는 쿼드 코어 시스템(2.33GHz 인텔 펜티엄 4 프로세서 4개로 구성)과 4GB의 메모리로 구성된 시스템에서 수행되었으며, 부호화 환경은 rate-distortion mode decision이 이용되었고, 양자화 계수는 28이 적용되었고, 화면내 예측이 적용되었다.
또한, 부호화 속도의 성능 평가에서는 다양한 비디오 포맷을 이용하여 총 300프레임을 평가하였다.
실험 결과, CIF 포맷의 경우 JM11.0의 부호화 속도를 1배라고 정하였을 때 본 발명의 일 실시예에 따른 데이터 파티션 방법을 적용한 부호화기는 3.69배의 속도 향상을 보였다. 또한, CIF 포맷 이외의 비디오 포맷의 경우에도 3.6배 이상의 속도 향상을 보였다.
이상, 본 발명을 바람직한 실시예를 들어 상세하게 설명하였으나, 본 발명은 상기 실시예에 한정되지 않고, 본 발명의 기술적 사상 및 범위 내에서 당 분야에서 통상의 지식을 가진 자에 의하여 여러가지 변형 및 변경이 가능하다.

Claims (8)

  1. 복수의 프로세서를 구비한 부호화 장치의 병렬 부호화를 위한 데이터 파티션 방법에 있어서,
    부호화할 프레임을 프로세서의 개수에 따라 복수의 프로세서 데이터 영역으로 구분하는 단계;
    구분된 각 프로세서 데이터 영역에 포함된 매크로블록들 중 데이터 의존성을 만족하는 매크로블록을 찾는 단계; 및
    데이터 의존성을 만족하는 매크로블록에 대해 미리 설정된 우선순위에 따라 상기 복수의 프로세서 중 소정 프로세서를 상기 데이터 의존성을 만족하는 매크로블록의 처리를 위한 프로세서로 할당하는 단계를 포함하되,
    상기 미리 설정된 우선순위에 따라 상기 복수의 프로세서 중 소정 프로세서를 할당하는 단계는,
    상기 데이터 의존성을 만족하는 매크로블록이 제k 프로세서 데이터 영역에 포함될 때 제k 프로세서에 가장 높은 우선순위를 할당하여 상기 데이터 의존성을 만족하는 매크로블록을 처리할 프로세서로 할당하는 것을 특징으로 하는 병렬 부호화를 위한 데이터 파티션 방법.
  2. 제1항에 있어서, 복수의 프로세서 데이터 영역으로 구분하는 단계는,
    상기 프레임의 각 행에 포함된 매크로블록의 개수를 상기 프로세서의 개수로 나누어 상기 프레임의 세로 방향을 기준으로 데이터 영역을 구분하고, 구분된 각 데이터 영역에 서로 다른 프로세서를 할당하는 것을 특징으로 하는 병렬 부호화를 위한 데이터 파티션 방법.
  3. 제2항에 있어서, 상기 복수의 프로세서 데이터 영역으로 구분하는 단계는,
    상기 프레임의 각 행에 포함된 매크로블록의 개수를 상기 프로세서의 개수로 나누어 나머지가 존재하는 경우에는 상기 나머지에 해당하는 마크로 블록들을 공유 영역으로 할당하는 것을 특징으로 하는 병렬 부호화를 위한 데이터 파티션 방법.
  4. 삭제
  5. 제1항에 있어서, 상기 미리 설정된 우선순위에 따라 상기 복수의 프로세서 중 소정 프로세서를 할당하는 단계는,
    상기 데이터 의존성을 만족하는 매크로블록이 제k 프로세서 데이터 영역에 포함되지 않고 공유 영역에 포함될 때, 상기 제k 프로세서를 상기 데이터 의존성을 만족하는 매크로블록을 처리할 프로세서로 할당하는 것을 특징으로 하는 병렬 부호화를 위한 데이터 파티션 방법.
  6. 제5항에 있어서, 상기 미리 설정된 우선순위에 따라 상기 복수의 프로세서 중 소정 프로세서를 할당하는 단계는,
    상기 데이터 의존성을 만족하는 매크로블록이 제k 프로세서 데이터 영역 및 공유 영역에 포함되지 않고, 제m 프로세서 데이터 영역(여기서, k와 m은 서로 다른 자연수)에 포함될 때 상기 제k 프로세서를 상기 데이터 의존성을 만족하는 매크로블록을 처리할 프로세서로 할당하는 것을 특징으로 하는 병렬 부호화를 위한 데이터 파티션 방법.
  7. 제5항에 있어서, 상기 미리 설정된 우선순위에 따라 상기 복수의 프로세서 중 소정 프로세서를 할당하는 단계는,
    상기 데이터 의존성을 만족하는 매크로블록이 제k 프로세서 데이터 영역에 두 개 이상 포함된 경우, 상기 제k 프로세서를 상기 데이터 의존성을 만족하는 두 개 이상의 매크로블록 중 하나의 매크로블록을 처리할 프로세서로 상기 제k 프로세서를 할당하고, 상기 데이터 의존성을 만족하는 두 개 이상의 매크로블록 중 나머지 매크로 블록들을 처리할 프로세서로 상기 제k 프로세서가 아닌 다른 프로세서들을 할당하는 것을 특징으로 하는 병렬 부호화를 위한 데이터 파티션 방법.
  8. 복수의 프로세서를 구비한 디지털 처리 장치에 의해 병렬 부호화가 실행될 수 있는 명령어의 프로그램이 유형적으로 구현되어 있으며, 상기 디지털 처리 장치에 의해 판독될 수 있는 프로그램을 기록한 기록매체에 있어서,
    부호화할 프레임을 프로세서의 개수에 따라 복수의 프로세서 데이터 영역으로 구분하는 단계;
    구분된 각 프로세서 데이터 영역에 포함된 매크로블록들 중 데이터 의존성을 만족하는 매크로블록을 찾는 단계; 및
    데이터 의존성을 만족하는 매크로블록에 대해 미리 설정된 우선순위에 따라 상기 복수의 프로세서 중 소정 프로세서를 상기 데이터 의존성을 만족하는 매크로블록의 처리를 위한 프로세서로 할당하는 단계를 수행하되,
    상기 미리 설정된 우선순위에 따라 상기 복수의 프로세서 중 소정 프로세서를 상기 데이터 의존성을 만족하는 매크로 블록의 처리를 위한 프로세서로 할당하는 단계는,
    상기 데이터 의존성을 만족하는 매크로블록이 제k 프로세서 데이터 영역에 포함될 때, 상기 제k 프로세서에 가장 높은 우선순위를 할당하여 상기 데이터 의존성을 만족하는 매크로블록을 처리할 프로세서로 할당하는 것을 특징으로 하는 프로그램을 기록한 기록매체.
KR1020100102307A 2010-10-20 2010-10-20 병렬 부호화를 위한 데이터 파티션 방법 및 이를 수행하는 프로그램을 기록한 기록매체 KR101219220B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020100102307A KR101219220B1 (ko) 2010-10-20 2010-10-20 병렬 부호화를 위한 데이터 파티션 방법 및 이를 수행하는 프로그램을 기록한 기록매체

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100102307A KR101219220B1 (ko) 2010-10-20 2010-10-20 병렬 부호화를 위한 데이터 파티션 방법 및 이를 수행하는 프로그램을 기록한 기록매체

Publications (2)

Publication Number Publication Date
KR20120040840A KR20120040840A (ko) 2012-04-30
KR101219220B1 true KR101219220B1 (ko) 2013-01-08

Family

ID=46140592

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100102307A KR101219220B1 (ko) 2010-10-20 2010-10-20 병렬 부호화를 위한 데이터 파티션 방법 및 이를 수행하는 프로그램을 기록한 기록매체

Country Status (1)

Country Link
KR (1) KR101219220B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10080025B2 (en) 2014-11-28 2018-09-18 Samsung Electronics Co., Ltd. Data processing system modifying motion compensation information, and method for decoding video data including the same

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008283612A (ja) * 2007-05-14 2008-11-20 Sony Corp データ処理装置、復号装置、符号化装置、データ処理方法、復号方法、符号化方法、およびプログラム
KR20100060408A (ko) * 2008-11-27 2010-06-07 한국전자통신연구원 멀티프로세서를 이용한 동영상 디코딩 장치 및 그 장치에서의 동영상 디코딩 방법
KR20100071865A (ko) * 2008-12-19 2010-06-29 삼성전자주식회사 멀티 코어 프로세스 방식의 영상 신호 처리장치에서 영상 프레임 구성 및 복호화 방법과 그 영상 신호 처리장치
KR100974983B1 (ko) * 2002-11-13 2010-08-09 소니 일렉트로닉스 인코포레이티드 멀티프로세서 환경에서의 실시간 mpeg-4 텍스쳐 디코딩방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100974983B1 (ko) * 2002-11-13 2010-08-09 소니 일렉트로닉스 인코포레이티드 멀티프로세서 환경에서의 실시간 mpeg-4 텍스쳐 디코딩방법
JP2008283612A (ja) * 2007-05-14 2008-11-20 Sony Corp データ処理装置、復号装置、符号化装置、データ処理方法、復号方法、符号化方法、およびプログラム
KR20100060408A (ko) * 2008-11-27 2010-06-07 한국전자통신연구원 멀티프로세서를 이용한 동영상 디코딩 장치 및 그 장치에서의 동영상 디코딩 방법
KR20100071865A (ko) * 2008-12-19 2010-06-29 삼성전자주식회사 멀티 코어 프로세스 방식의 영상 신호 처리장치에서 영상 프레임 구성 및 복호화 방법과 그 영상 신호 처리장치

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10080025B2 (en) 2014-11-28 2018-09-18 Samsung Electronics Co., Ltd. Data processing system modifying motion compensation information, and method for decoding video data including the same

Also Published As

Publication number Publication date
KR20120040840A (ko) 2012-04-30

Similar Documents

Publication Publication Date Title
US11388405B2 (en) Content aware scheduling in a HEVC decoder operating on a multi-core processor platform
JP6916939B2 (ja) 復号装置、符号化装置、復号方法および符号化方法
US11381815B2 (en) Apparatus and method for video encoding or decoding
KR102144881B1 (ko) 비디오 처리를 위한 송신 장치 및 방법
Chi et al. Parallel scalability and efficiency of HEVC parallelization approaches
KR102063274B1 (ko) 향상된 인트라 예측 모드 시그날링
JP2022032027A (ja) クアッドツリー構造に基づく適応的量子化パラメータ符号化及び復号化方法及び装置
US9510021B2 (en) Method and apparatus for filtering pixel blocks
US11689718B2 (en) Apparatus and method for video encoding or decoding
WO2016053154A1 (en) Encoding and decoding a video frame in separate processing units
KR20130095927A (ko) 비디오 파라미터를 이용한 복잡도 측정 기반의 병렬 인-루프 화소 보정에 대한 부호화/복호화 장치 및 방법
CN106851298B (zh) 一种高效视频编码方法及装置
KR101219220B1 (ko) 병렬 부호화를 위한 데이터 파티션 방법 및 이를 수행하는 프로그램을 기록한 기록매체
KR101050188B1 (ko) 멀티프로세서를 이용한 동영상 디코딩 장치 및 그 장치에서의 동영상 디코딩 방법
JP7217784B2 (ja) 決定装置、符号化装置、復号装置及びプログラム
Georgakarakos et al. Performance evaluation of parallel HEVC strategies
JP6200335B2 (ja) 動画符号化装置、及び動画符号化プログラム
JP7249999B2 (ja) 画像符号化装置、画像復号装置、及びプログラム
KR101496418B1 (ko) 영상 디블로킹을 위한 멀티 프로세싱 연산량 조절 장치 및 방법
EP3149943A1 (en) Content aware scheduling in a hevc decoder operating on a multi-core processor platform
KR20160094498A (ko) 고속 병렬처리를 위한 차등 부호화 방법 및 장치
Zhang et al. Parallel Acceleration Scheme of HEVC Decoder Based on Multicore Platform
JP2023156465A (ja) ビデオコーディングの方法、ビデオコーディング装置、非一時的なコンピュータ可読記憶媒体、ビットストリームおよびビットストリーム内のコンピュータプログラム
JP2022521037A (ja) イントラ予測方法および装置、ビデオコーディング機器、記憶媒体
Weng et al. Exploiting fine-grain parallelism in the H. 264 deblocking filter by operation reordering

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

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee