KR20090010860A - Method and apparatus for decoding multimedia based on multicore processor - Google Patents

Method and apparatus for decoding multimedia based on multicore processor Download PDF

Info

Publication number
KR20090010860A
KR20090010860A KR1020070126891A KR20070126891A KR20090010860A KR 20090010860 A KR20090010860 A KR 20090010860A KR 1020070126891 A KR1020070126891 A KR 1020070126891A KR 20070126891 A KR20070126891 A KR 20070126891A KR 20090010860 A KR20090010860 A KR 20090010860A
Authority
KR
South Korea
Prior art keywords
data
processor
queue
multimedia
motion compensation
Prior art date
Application number
KR1020070126891A
Other languages
Korean (ko)
Other versions
KR101355375B1 (en
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 US12/179,023 priority Critical patent/US8634470B2/en
Publication of KR20090010860A publication Critical patent/KR20090010860A/en
Application granted granted Critical
Publication of KR101355375B1 publication Critical patent/KR101355375B1/en

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
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • 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

Abstract

A multimedia decoding method and an apparatus thereof are provided to effectively use resources a multiprocessor through a hybrid mode, thereby efficiently processing multimedia data having much capacity and operation. A queue for least one or more operation works is generated in a central processor with respect to inputted multimedia data(910). The central processor and an arithmetic processor perform the operation work. At least one or more partial arithmetic processor of the arithmetic processors performs a motion compensation task according to a data area in which the multimedia data is divided(920). One arithmetic processor of the arithmetic processors performs a de-blocking task for the multimedia data(940).

Description

멀티코어 플랫폼 기반의 멀티미디어 복호화 방법 및 장치{Method and apparatus for decoding multimedia based on multicore processor}Method and apparatus for decoding multimedia based on multicore platform TECHNICAL FIELD

본 발명은 멀티미디어 데이터의 복호화 방법 및 장치에 관한 것으로, 상세하게는 멀티코어 플랫폼 기반의 멀티미디어 복호화 시스템의 효율적인 설계 방법 및 효율적인 복호화 장치에 관한 것이다.The present invention relates to a method and apparatus for decoding multimedia data, and more particularly, to an efficient design method and an efficient decoding apparatus for a multi-core platform-based multimedia decoding system.

H.264 포맷의 용량이 크고 높은 연산량을 가짐으로 인해, 비대칭성 멀티코어 플랫폼 환경에서 H.264 포맷을 효율적으로 복호화 방식이 제안되고 있다. 그러나, H.264는 슬라이스 단위 처리가 가능한 MPEG-2와 달리 화면들 간의 데이터의 상호 의존성 뿐만 아니라 한 화면 내에서도 데이터의 상호 의존성이 존재하므로, 멀티코어 플랫폼 기반의 복호화 시스템의 병렬적 처리 방식이 구현되기 어렵다.Due to the large capacity of the H.264 format and a high amount of computation, an efficient decoding method of the H.264 format has been proposed in an asymmetric multicore platform environment. However, unlike MPEG-2, which can process slice-by-slice, H.264 has not only data interdependency but also interdependence of data within one screen, so that a parallel processing scheme of a decoding system based on a multicore platform is implemented. It's hard to be.

종래의 병렬 처리를 위한 분할 방식으로는 프로세서에서 처리될 데이터 자체를 분할하는 데이터 분할 방식과 파이프라인 방식과 같이 연산 모듈 단계를 나누어 처리하는 기능적 분할 방식이 있다.Conventional partitioning schemes include a data partitioning scheme for partitioning data to be processed by a processor and a functional partitioning scheme for dividing a processing module step like a pipelined scheme.

도 1 은 기능적 분할 방식에 의한 멀티코어 플랫폼 시스템의 일례를 도시한다.1 illustrates an example of a multicore platform system with a functional partitioning scheme.

기능적 분할 방식은 복수 개의 프로세서(110, 120, 130, 140)를 구비하여 각각의 프로세서에 대해 특정 기능이 할당된다. 도 1에 도시된 프로세서 1(110)은 데이터 판독 기능(112), 전처리 및 초기화 기능(114), 데이터 저장 기능(116)이 할당되며, 프로세서 2(120)에는 엔트로피 복호화 기능(122)이 할당된다. 프로세스 3(130)에는 역주파수변환 및 역양자화 기능(132)과 화면 내 예측 및 움직임 보상 기능(134)가 할당된다. 프로세서 4(140)에는 디블로킹 기능(142)가 할당된다.The functional partitioning scheme includes a plurality of processors 110, 120, 130, and 140 so that specific functions are assigned to each processor. The processor 1 110 illustrated in FIG. 1 is assigned a data read function 112, a preprocessing and initialization function 114, and a data storage function 116. The processor 2 120 is assigned an entropy decoding function 122. do. Process 3 130 is assigned an inverse transform and inverse quantization function 132 and an intra prediction and motion compensation function 134. The deblocking function 142 is assigned to the processor 4 140.

기능적 분할 방식은 분산된 각 연산 모듈이 처리하는 작업 부담량이 일정하기 않은 경우, 일정한 성능을 보장하기가 어렵다. 즉, 프로세서 1의 처리 시간(150), 프로세서 2의 처리 시간(160), 프로세서 3의 처리 시간(170) 및 프로세서 4의 처리 시간(180)이 모두 다르기 때문에, 멀티프로세서의 처리 시간은 가장 오랜 작업 처리 시간인 프로세서 3의 처리 시간(170) 때문에 초과 처리 시간(190)만큼의 크리티컬 패쓰(Critical Path)가 발생된다. 따라서, 멀티코어 시스템의 병렬성 및 활용성이 감소된다. In the functional partitioning scheme, it is difficult to guarantee a constant performance when the workload of each distributed computing module is not constant. That is, since the processing time 150 of the processor 1, the processing time 160 of the processor 2, the processing time 170 of the processor 3, and the processing time 180 of the processor 4 are all different, the processing time of the multiprocessor is the longest. Because of the processing time 170 of the processor 3, which is a job processing time, a critical path equal to the excess processing time 190 is generated. Thus, parallelism and utilization of multicore systems are reduced.

도 2a 및 도 2b 는 데이터 분할 방식에 의한 멀티코어 플랫폼 시스템의 일례를 도시한다.2A and 2B show an example of a multicore platform system with a data partitioning scheme.

도 2a 를 참조하면, 데이터 분할 방식의 일례는 하나의 프레임(200)을 여러 개의 슬라이스(210, 212, 214)로 분할하여, 각각의 슬라이스마다 서로 다른 프로세서(220, 230, 240)에서 복호화 처리를 수행하도록 한다. 즉, 하나의 프로세서의 모든 복호화 과정을 수행하게 된다. 데이터 분할 방식은 단순 데이터 처리에 대해서는 높은 병렬성을 보장한다. 그러나 데이터 사이에 상호 의존성이 존재하면 데이터 분할 방식은 구현되기 어렵고 의존성을 해결하기 위한 추가 작업이 필요하므로 성능이 급격히 저하된다. 따라서 화면 간 예측 기법 뿐만 아니라 화면 내 예측 기법까지 수행되어야 하는 H.264 기반의 복호화 시스템에서는 부적합하다. Referring to FIG. 2A, one example of a data partitioning method is to divide one frame 200 into several slices 210, 212, and 214, and to decode the slices in different processors 220, 230, and 240 for each slice. To perform. That is, all the decoding processes of one processor are performed. The data partitioning scheme guarantees high parallelism for simple data processing. However, if there are interdependencies between the data, the data partitioning scheme is difficult to implement and additional work is required to resolve the dependencies, resulting in a drastic drop in performance. Therefore, it is not suitable for H.264-based decoding system that needs to perform not only the inter prediction but also the intra prediction.

또한, 도 2b 를 참조하면, 프레임(250)이 분할된 슬라이스들(260, 270, 280)의 데이터 크기와 연산 부담량의 관계가 예측하기 어렵다. 즉, 슬라이스 1(260) 및 슬라이스 3(280)을 각각 처리하는 프로세서 1(220) 및 프로세서 3(240)은 연산 부담량이 적지만, 데이터 크기가 슬라이스 2(270)를 처리하는 프로세서 2(230)만이 연산 부담량이 커진다. 즉, 분할된 데이터 크기의 불균형으로 인해 프로세서 간의 연산 부담량이 불균등하게 할당되어 자원 활용의 효율성이 떨어지게 된다. In addition, referring to FIG. 2B, it is difficult to predict the relationship between the data size and the computational burden of the slices 260, 270, and 280 in which the frame 250 is divided. That is, the processor 1 220 and the processor 3 240 that process the slice 1 260 and the slice 3 280, respectively, have a small computational burden, but the processor 2 230 that processes the slice 2 270 has a data size. ) Only increases the computational burden. In other words, due to the disparity of the divided data size, the computational load between processors is unevenly allocated, thereby reducing the efficiency of resource utilization.

뿐만 아니라, 각각의 데이터 간 의존성이 존재한다면 병렬 처리 구조의 구현이 복잡해지고, 작업 처리 과정이 지연되게 될 수도 있다. 또한, 멀티코어 플랫폼을 구성하는 부분 코어들의 자원이 한정적인데 반해, 각각의 코어가 전체 연산 과정에 대한 데이터를 가지고 있어야 하므로 비효율적이다.In addition, the existence of dependencies between each data can complicate the implementation of parallel processing architectures and delay processing. In addition, while the resources of the partial cores constituting the multicore platform are limited, it is inefficient because each core must have data for the entire calculation process.

도 3a 및 도 3b 는 애플리케이션 특성에 따른 데이터와 명령어의 분포의 차이점을 도시한다.3A and 3B show differences in the distribution of data and instructions according to application characteristics.

연산 작업을 처리하기 위해서는 데이터와 명령어가 모두 필요하다. 도 3a 에서 도시된 경우와 같이 메모리(300)에 저장되는 데이터(310)의 크기는 작은데 비해 명령어(320)의 크기가 큰 경우에는 기능적 분할 방식이 유리하다. 그에 반해 도 3b 에서 도시된 경우와 같이 메모리(300)에 저장되는 데이터(330)의 크기는 큰데 비해 명령어(340)의 크기가 작은 경우에는 데이터 분할 방식이 유리하다.Both data and instructions are required to handle computational tasks. As shown in FIG. 3A, when the size of the data 310 stored in the memory 300 is small while the size of the command 320 is large, a functional partitioning method is advantageous. On the contrary, as shown in FIG. 3B, the data 330 is advantageous when the size of the data 330 stored in the memory 300 is large while the size of the instruction 340 is small.

그러나, 애플리케이션 특성에 따라 데이터와 명령어의 특성이 다를 수 있으며, 한 프로그램을 구성하는 각각의 모듈의 데이터와 명령어의 특성 역시 다를 수 있다. 따라서, 멀티프로세서의 병렬적 처리 분할 방식을 기능적 분할 방식 또는 데이터 분할 방식 중 어느 하나로 고정된다면, 데이터 및 명령어의 특성에 대해 유연하게 대응하지 못한다.However, the characteristics of data and instructions may vary according to application characteristics, and the characteristics of data and instructions of each module constituting a program may also vary. Therefore, if the parallel processing partitioning scheme of the multiprocessor is fixed to either a functional partitioning scheme or a data partitioning scheme, it cannot flexibly correspond to the characteristics of data and instructions.

또한, 단일코어 시스템을 기준으로 한 H.264 복호화기의 명령어의 크기는 820 키로바이트이며 데이터 크기는 200키로바이트인데 반해, 로컬 메모리의 크기는 256키로바이트에 불과하다. 따라서, 로컬 메모리의 한정된 자원으로는 H.264 복호화 시스템을 효율적으로 구현하기 어렵다.In addition, the size of the instructions of the H.264 decoder based on a single core system is 820 kilobytes and the data size is 200 kilobytes, whereas the local memory is only 256 kilobytes. Therefore, it is difficult to efficiently implement an H.264 decoding system with limited resources of local memory.

본 발명이 해결하고자 하는 과제는, 멀티코어 플랫폼 기반의 멀티미디어 복호화 방법 및 장치에서 고용량이며 연산량이 많은 멀티미디어 데이터를 효율적으로 처리하기 위해 효과적으로 멀티프로세서 자원을 사용하여 병렬 처리하는데 있다.Disclosure of Invention Problems to be Solved by the Invention An object of the present invention is to effectively process parallel data using multiprocessor resources in order to efficiently process high-capacity and computation-intensive multimedia data in a multi-core platform-based multimedia decoding method and apparatus.

멀티프로세서의 효율적인 병렬 처리를 위해 데이터 분할 방식 및 기능적 분할 방식의 장점을 이용하고, 프로세서 별로 연산 부담량을 균등하게 분배하는 방법이 제안된다. 또한, 멀티프로세서들의 효율적인 연산 작업 명령을 위한 큐잉 방법 및 멀티프로세서 간의 효율적인 데이터 통신 방법이 제안된다.For efficient parallel processing of multiprocessors, a method of using the advantages of the data partitioning method and the functional partitioning method and distributing the operation load evenly for each processor is proposed. In addition, a queuing method for efficient computational work instructions of multiprocessors and an efficient data communication method between the multiprocessors are proposed.

상기 해결하고자 하는 과제를 달성하기 위해, 본 발명의 일 실시예에 따른 멀티코어 플랫폼 기반의 멀티미디어 복호화 방법은, 중앙 프로세서 및 복수 개의 연산 프로세서를 포함하는 멀티코어 플랫폼 기반의 멀티미디어 복호화 방법에 있어서, 입력된 멀티미디어 데이터에 대해, 상기 중앙 프로세서에서 상기 중앙 프로세서 및 상기 연산 프로세서가 수행할 적어도 하나 이상의 연산 작업에 대한 큐(queue)를 생성하는 단계; 상기 연산 프로세서 중 적어도 하나 이상의 일부 연산 프로세서에서 상기 멀티미디어 데이터가 분할된 데이터 영역 별로 움직임 보상 작업을 수행하는 단계; 및 상기 연산 프로세서 중 하나의 연산 프로세서가 상기 멀티미디어 데이터에 대한 디블로킹 작업을 수행하는 단계를 포함한다.In order to achieve the above object, the multi-core platform-based multimedia decoding method according to an embodiment of the present invention, in the multi-core platform-based multimedia decoding method comprising a central processor and a plurality of arithmetic processor, input Generating a queue of at least one computational task for the centralized processor and the arithmetic processor to perform, for the multimedia data that has been processed; Performing a motion compensation operation for each data region in which the multimedia data is divided in at least one or more of the computing processors; And performing, by one of the arithmetic processors, a deblocking operation on the multimedia data.

일 실시예에 따른 상기 멀티미디어 복호화 방법은, 상기 입력된 멀티미디어 데이터를 상기 중앙 프로세서에서 판독하는 단계; 상기 판독된 멀티미디어 데이터에 대해 상기 중앙 프로세서에서 복호화를 위한 초기화 작업을 수행하는 단계; 상기 초기화된 멀티미디어 데이터에 대해 상기 중앙 프로세서에서 엔트로피 복호화하는 단계; 상기 멀티미디어 데이터에 대해 상기 중앙 프로세서에서 역주파수 변환 작업, 역양자화 작업 및 인트라 예측 작업 중 적어도 하나를 수행하는 단계; 및 상기 디블로킹 작업이 수행된 멀티미디어 데이터를 상기 중앙 프로세서에서 저장하는 단계를 더 포함하고, 상기 큐 생성 단계는, 상기 엔트로피 복호화된 멀티미디어 데이터에 대한 연산 작업에 대한 큐를 생성한다.The multimedia decoding method according to an embodiment may include: reading the input multimedia data by the central processor; Performing an initialization operation for decoding on the read multimedia data in the central processor; Entropy decoding the initialized multimedia data in the central processor; Performing at least one of an inverse frequency transform operation, an inverse quantization operation, and an intra prediction operation on the multimedia data in the central processor; And storing, by the central processor, the multimedia data on which the deblocking operation has been performed, wherein the queue generating step generates a queue for arithmetic operations on the entropy decoded multimedia data.

일 실시예의 상기 큐 생성 단계는, 각각의 연산 작업에 대한 큐에 상기 연산 작업들에 대한 작업 파라미터를 포함하는 작업 파라미터 블록을 넣는 단계를 포함한다.The queue creation step of an embodiment includes putting a work parameter block containing work parameters for the arithmetic tasks into a queue for each arithmetic task.

일 실시예의 상기 큐 생성 단계는, 상기 연산 작업에 대한 큐로부터 각각의 상기 연산 작업 큐에 대응되는 연산 프로세서에 상기 작업 파라미터 블록을 전송하는 단계를 더 포함한다.The queue generating step of the embodiment may further include transmitting the work parameter block from a queue for the arithmetic work to an arithmetic processor corresponding to each arithmetic work queue.

일 실시예의 상기 작업 파라미터 블록 전송 단계는, 상기 연산 프로세서에서 소정 단위 시간 동안 처리할 수 있는 작업 파라미터 블록을 결정하는 단계; 및 상기 결정된 작업 파라미터 블록을 상기 소정 단위 시간마다 상기 연산 프로세서에 전송하는 단계를 포함한다.In an embodiment, the step of transmitting a work parameter block may include: determining a work parameter block that may be processed by the operation processor for a predetermined unit time; And transmitting the determined job parameter block to the operation processor at each predetermined unit time.

일 실시예에 따른 상기 멀티미디어 복호화 방법은, 상기 멀티미디어 데이터를 적어도 하나 이상의 데이터 영역으로 분할하는 단계; 및 각각의 분할된 데이터 영역에 대해 움직임 보상 작업을 수행할 별개의 연산 프로세서를 결정하는 단계를 더 포함하고, 상기 큐 생성 단계는, 움직임 보상 작업을 위한 큐를 생성하는 경우, 상기 움직임 보상 작업을 수행할 연산 프로세서들 중 각각의 연산 프로세서에서 해당 데이터 영역에 대해 수행할 각각의 작업 파라미터 블록을 포함하는 큐를 생성한다.The multimedia decoding method according to an embodiment of the present invention comprises the steps of: dividing the multimedia data into at least one data area; And determining a separate operation processor to perform a motion compensation task on each of the divided data regions, wherein the queue generating step includes: when generating a queue for the motion compensation task, performing the motion compensation task; Each of the arithmetic processors to be executed generates a queue including a block of work parameters to be performed on the data area.

일 실시예의 상기 데이터 영역 분할 단계는, 상기 멀티미디어 데이터에 대한 움직임 보상 작업을 위한 연산 프로세서의 연산 부담량을 산출하는 단계; 상기 연산 프로세서의 연산 부담량을 고려하여, 상기 멀티미디어 데이터의 데이터 영역으로의 분할 횟수를 결정하는 단계; 및 상기 멀티미디어 데이터를 상기 분할 횟수만큼 데이터 영역으로 분할하는 단계를 포함하고, 상기 연산 프로세서 결정 단계는, 상기 멀티미디어 데이터의 분할 횟수와 동일한 개수의 연산 프로세서를 결정한다.In an exemplary embodiment, the data area partitioning step may include calculating an operation burden of an operation processor for a motion compensation operation on the multimedia data; Determining the number of divisions of the multimedia data into a data area in consideration of an operation burden of the operation processor; And dividing the multimedia data into the data area by the number of divisions, wherein the operation processor determining step determines the number of operation processors equal to the number of divisions of the multimedia data.

일 실시예의 상기 데이터 영역 분할 단계는, 상기 멀티미디어 데이터 중에서 서로 의존성이 있는 데이터를 검출하는 단계; 및 상기 서로 의존성이 있는 데이터들이 분리되지 않도록 상기 분할되는 데이터 영역을 결정하는 단계를 포함한다.In an exemplary embodiment, the data area segmentation may include detecting data having dependencies on the multimedia data; And determining the divided data area so that the data which are dependent on each other are not separated.

일 실시예의 상기 데이터 영역 결정 단계는, 상기 검출된 데이터 중 제 1 데이터가 둘 이상의 다른 데이터와 의존성이 있는 경우, 상기 제 1 데이터와 동일한 데이터 영역으로 포함될 데이터로서 상기 의존성이 있는 다른 데이터 중 하나의 데이터를 결정하는 단계를 포함한다.The determining of the data area of the present embodiment may include: when the first data of the detected data is dependent on two or more other data, one of the other data having the dependency as data to be included in the same data area as the first data. Determining the data.

상기 큐 생성 단계는, 상기 움직임 보상 작업에 대한 큐에 상기 각각의 분할된 데이터 영역에 대한 작업 파라미터 블록을 상기 각각의 데이터 영역의 처리 순 서에 따라 저장하는 단계를 포함하고, 상기 작업 파라미터 블록 전송 단계는, 상기 움직임 보상 작업에 대한 큐로부터 상기 각각의 분할된 데이터 영역에 대한 작업 파라미터 블록을 상기 각각의 데이터 영역의 처리 순서에 따라 전송하는 단계를 포함한다.The queue generating step may include storing a job parameter block for each divided data area in a queue for the motion compensation job according to the processing order of each data area, and transmitting the job parameter block. The step includes transmitting, from the queue for the motion compensation task, a task parameter block for each of the divided data regions according to the processing order of the respective data regions.

일 실시예에 따른 멀티코어 플랫폼 기반의 멀티미디어 복호화 방법에서, 상기 중앙 프로세서와 상기 연산 프로세서들 사이의 동기화 신호는 메일 박스 방식을 통해 입출력된다.In the multi-core platform-based multimedia decoding method according to an embodiment, the synchronization signal between the central processor and the computing processor is input and output through a mailbox method.

일 실시예에 따른 멀티코어 플랫폼 기반의 멀티미디어 복호화 방법에서, 상기 중앙 프로세서의 메모리와 상기 각각의 연산 프로세서들의 메모리 사이의 데이터는 DMA(Direct Memory Access) 방식을 통해 입출력된다.In the multi-core platform-based multimedia decoding method according to an embodiment, data between the memory of the central processor and the memory of each of the computing processors is input and output through a direct memory access (DMA) method.

일 실시예에 따른 멀티코어 플랫폼 기반의 멀티미디어 복호화 방법은, 상기 움직임 보상 작업을 위한 연산 프로세서에서의 상기 각각의 데이터 영역에 대한 움직임 보상 작업들을 동기화시키는 단계를 더 포함한다.The multi-core platform-based multimedia decoding method according to an embodiment further includes synchronizing motion compensation tasks for the respective data regions in the operation processor for the motion compensation task.

일 실시예에 따른 멀티코어 플랫폼 기반의 멀티미디어 복호화 방법은, 상기 중앙 프로세서 및 상기 연산 프로세서들의 각각의 연산 작업들은 파이프라인 구조로 병렬적으로 처리되는 단계를 더 포함한다.The multi-core platform-based multimedia decoding method according to an embodiment of the present invention further comprises the step of processing the respective operations of the central processor and the computing processors in a pipeline structure in parallel.

일 실시예의 상기 병렬적 처리 단계는, 상기 중앙 프로세서 및 상기 연산 프로세서들의 각각의 연산 작업들은, 상기 멀티미디어 데이터가 데이터 처리 구간마다 N개의 데이터 단위로 나뉠 때, n은 1보다 크고 N보다 작은 양의 정수라면, 상기 중앙 프로세서에서 제 (n-1)번째 데이터 단위에 대해 엔트로피 복호화 작업을 수행 하고 상기 큐를 생성하는 단계; 상기 움직임 보상 작업을 위한 연산 프로세서에서 상기 제 (n-1)번째 데이터 단위에 대해 움직임 보상 작업을 수행하고, 상기 중앙 프로세서는 제 (n)번째 데이터 단위에 대해 엔트로피 복호화 작업을 수행하고 상기 큐를 생성하는 단계; 및 상기 중앙 프로세서에서 제 (n-1)번째 데이터 단위에 대해 역주파수변환 작업, 역양자화 작업 및 인프로 예측 작업을 수행하고, 상기 움직임 보상 작업을 위한 연산 프로세서에서 상기 제 (n)번째 데이터 단위에 대해 움직임 보상 작업을 수행하고, 상기 중앙 프로세서에서 제 (n+1)번째 데이터 단위에 대해 엔트로피 복호화 작업을 수행하고 상기 큐를 생성하며, 상기 디블로킹 작업을 위한 연산 프로세서에서 상기 제 (n-1)번째 데이터 단위에 대해 디블로킹 작업을 수행하여 상기 제 (n-1)번째 데이터 단위를 복원하는 단계를 포함한다.In the parallel processing of the embodiment, the computational tasks of the central processor and the computational processors may be defined as: n is greater than 1 and less than N when the multimedia data is divided into N data units per data processing interval. If it is an integer, performing an entropy decoding operation on the (n-1) th data unit in the central processor and generating the queue; The operation processor for the motion compensation task performs a motion compensation task on the (n-1) th data unit, and the central processor performs an entropy decoding operation on the (n) th data unit and performs the queue. Generating; And performing an inverse frequency transform operation, an inverse quantization operation, and an in-prediction operation on the (n-1) th data unit in the central processor, and the (n) th data unit in the arithmetic processor for the motion compensation task. Performs a motion compensation operation on the processor, performs an entropy decoding operation on the (n + 1) th data unit in the central processor, generates the queue, and executes the (n−) operation processor in the operation processor for the deblocking operation. 1) restoring the (n-1) th data unit by performing a deblocking operation on the first data unit.

상기 해결하고자 하는 과제를 달성하기 위해, 본 발명의 일 실시예에 따른 멀티코어 플랫폼 기반의 멀티미디어 복호화 장치는, 입력된 멀티미디어 데이터에 대해, 상기 중앙 프로세서에서 상기 중앙 프로세서 및 상기 연산 프로세서가 수행할 적어도 하나 이상의 연산 작업에 대한 큐(queue)를 생성하는 큐 생성부; 상기 연산 프로세서 중 적어도 하나 이상의 일부 연산 프로세서에서 상기 멀티미디어 데이터가 분할된 데이터 영역 별로 움직임 보상 작업을 수행하는 움직임 보상 작업 수행부; 및 상기 연산 프로세서 중 하나의 연산 프로세서가 상기 멀티미디어 데이터에 대한 디블로킹 작업을 수행하는 디블로킹 작업 수행부를 포함한다.In order to achieve the object to be solved, the multi-core platform-based multimedia decoding apparatus according to an embodiment of the present invention, at least for the central processor and the operation processor to perform the input multimedia data in the central processor; A queue generator for generating a queue for one or more arithmetic operations; A motion compensation task performing unit configured to perform a motion compensation task for each data region in which the multimedia data is divided in at least one or more of the computing processors; And a deblocking task execution unit configured to perform a deblocking operation on the multimedia data by one of the arithmetic processors.

일 실시예에 따른 상기 멀티미디어 복호화 장치는,상기 중앙 프로세서에서, 상기 입력된 멀티미디어 데이터를 판독하고, 상기 판독된 멀티미디어 데이터에 대 해 복호화를 위한 초기화 작업을 수행하고, 상기 초기화된 멀티미디어 데이터에 대해 엔트로피 복호화하고, 상기 멀티미디어 데이터에 대해 역주파수 변환 작업, 역양자화 작업 및 인트라 예측 작업 중 적어도 하나를 수행하고, 상기 디블로킹 작업이 수행된 멀티미디어 데이터를 저장하는 것을 특징으로 하고, 상기 큐 생성부는, 상기 엔트로피 복호화된 멀티미디어 데이터에 대한 연산 작업에 대한 큐를 생성한다.The multimedia decoding apparatus according to an embodiment of the present disclosure, in the central processor, reads the input multimedia data, performs an initialization operation for decoding the read multimedia data, and entropys the initialized multimedia data. And decode, perform at least one of an inverse frequency transform operation, an inverse quantization operation, and an intra prediction operation on the multimedia data, and store the multimedia data on which the deblocking operation is performed. Create a queue for arithmetic operations on entropy-decoded multimedia data.

또한 본 발명은, 본 발명의 일 실시예에 따른 멀티코어 플랫폼 기반의 멀티미디어 복호화 방법을 구현하기 위한 프로그램이 기록된 컴퓨터로 판독 가능한 기록 매체를 포함한다.The present invention also includes a computer-readable recording medium having recorded thereon a program for implementing a multi-core platform-based multimedia decoding method according to an embodiment of the present invention.

본 발명의 멀티코어 플랫폼 기반의 멀티미디어 복호화 방법 및 장치는, 데이터 분할 방식 및 기능적 분할 방식의 장점을 취합한 하이브리드 방식에 의해 멀티프로세서의 자원을 효과적으로 사용함으로써 용량이 많고 연산량이 많은 멀티미디어 데이터를 효율적으로 처리할 수 있다.The multi-core platform-based multimedia decoding method and apparatus of the present invention efficiently utilizes multiprocessor resources by using a hybrid method that combines the advantages of the data partitioning method and the functional partitioning method. Can be processed.

또한, 분할된 데이터 영역 별로 연산 부담량을 산출함으로써 연산 프로세서 간의 연산 부담량을 균등하게 분배함으로써 멀티프로세서의 병렬성을 향상시키는 효과가 있다. In addition, by calculating the computational burden for each divided data region, the computational burden among the computing processors is equally distributed, thereby improving the parallelism of the multiprocessor.

중앙 프로세서에서 미리 프로세서들의 처리 순서에 따라 작업 파라미터를 순차적으로 큐잉함으로써 프로세서들이 파이프라인 구조의 효율적인 연산 작업을 수행할 수 있다. 또한, 멀티프로세서 간의 작업 동기화를 보장함으로써 멀티프로세서 의 병렬적 처리가 원활해진다.By sequentially queuing the job parameters according to the processing order of the processors in advance in the central processor, the processors can perform efficient computational work of the pipeline structure. In addition, the parallel processing of multiprocessors is facilitated by ensuring the synchronization of tasks between multiprocessors.

본 발명에 실시예들에 대한 설명의 편의를 위해, 본 명세서에서 사용하는 데이터 단위에 대해 미리 정의한다. For convenience of description of the embodiments of the present invention, the data unit used herein is defined in advance.

데이터 처리 단위란 멀티미디어 데이터를 소정의 기준에 의해 구분하는 프레임, 슬라이스, 픽쳐 등의 단위를 뜻한다. The data processing unit refers to a unit of a frame, slice, picture, etc. that divides the multimedia data by a predetermined criterion.

데이터 단위란, 데이터량이 많은 데이터 처리 단위를 보다 효율적으로 처리하기 위해 하나의 프로세서에서 주기적으로 순차적으로 처리할 수 있도록, 하나의 데이터 처리 단위를 여러 개의 부분으로 분할한 부분을 뜻한다. 예를 들면, 프레임이 복수 개의 데이터 단위로 나뉠 수 있다. The data unit refers to a portion in which one data processing unit is divided into several parts so that one processor may sequentially process the data processing unit having a large amount of data more efficiently. For example, a frame may be divided into a plurality of data units.

데이터 영역은, 멀티미디어 데이터의 효율적인 부복호화를 위해 여러 개의 프로세서에서 동시에 처리할 수 있도록, 적어도 하나 이상의 데이터 처리 단위를 포함하는 영역을 뜻한다. 예를 들면, 데이터 영역은 적어도 하나 이상의 프레임을 포함하는 영역이다.The data area refers to an area including at least one data processing unit so that multiple processors can simultaneously process the multimedia data for efficient decoding and decoding. For example, the data area is an area including at least one frame.

이하 도 4 내지 도 9 를 참고하여, 본 발명의 일 실시예들에 따른 멀티코어 플랫폼 기반의 멀티미디어 복호화 방법 및 멀티미디어 복호화 장치의 구성 및 동작 방법이 상세히 후술된다.Hereinafter, referring to FIGS. 4 to 9, a method of configuring and operating a multimedia decoding method and a multimedia decoding apparatus based on a multicore platform according to an embodiment of the present invention will be described in detail.

도 4 은 본 발명의 일 실시예에 따른 멀티코어 플랫폼 기반의 멀티미디어 복호화 장치의 블록도를 도시한다.4 is a block diagram of a multi-core platform-based multimedia decoding apparatus according to an embodiment of the present invention.

본 발명의 일 실시예에 따른 멀티코어 플랫폼 기반의 멀티미디어 복호화 장치(400)는 큐 생성부(410), 움직임 보상 작업 수행부(420), 역주파수 변환 및 역양자화부(430) 및 디블로킹 작업 수행부(440)를 포함한다. 멀티미디어 복호화 장치(400)는 멀티코어 플랫폼 기반이므로 복수 개의 연산 프로세서를 포함하며, 일 실시예는 중앙 프로세서 및 적어도 하나 이상의 연산 프로세서를 포함한다.The multi-core platform-based multimedia decoding apparatus 400 according to an embodiment of the present invention includes a queue generator 410, a motion compensation task performer 420, an inverse frequency transform and dequantizer 430, and a deblocking task. It includes an execution unit 440. Since the multimedia decoding apparatus 400 is based on a multicore platform, the multimedia decoding apparatus 400 includes a plurality of arithmetic processors, and an embodiment includes a central processor and at least one arithmetic processor.

큐 생성부(410)는, 입력된 멀티미디어 데이터에 대해 중앙 프로세서 및 연산 프로세서가 수행할 적어도 하나 이상의 연산 작업에 대한 큐를 생성한다. 큐의 생성 작업은 중앙 프로세서에서 수행된다. 따라서, 큐 생성부(410)의 일 실시예는 중앙 프로세서의 일 요소이다.The queue generator 410 generates a queue for at least one or more computational tasks to be performed by the central processor and the computational processor on the input multimedia data. The creation of the queue is done by the central processor. Thus, one embodiment of the queue generator 410 is an element of the central processor.

멀티미디어 복호화 장치(400)의 일 실시예는 중앙 프로세서의 큐 생성부(410)에서 큐를 생성하기 이전에, 중앙 프로세서는 입력된 멀티미디어 데이터를 판독하고, 판독된 멀티미디어 데이터에 대해 복호화를 위한 초기화 작업을 수행한다. 또한, 중앙 프로세서는 초기화된 멀티미디어 데이터에 대해 이후에 수행될 엔트로피 복호화 작업, 역주파수 변환 작업, 역양자화 작업 및 인트라 예측 작업을 수행한다. 큐 생성부(410)의 일 실시예는, 엔트로피 복호화된 멀티미디어 데이터에 대한 연산 작업에 대한 큐를 생성한다.According to an embodiment of the multimedia decoding apparatus 400, before the queue is generated by the queue generator 410 of the central processor, the central processor reads the input multimedia data and initializes the decrypted multimedia data. Do this. The central processor also performs entropy decoding, inverse frequency transform, inverse quantization, and intra prediction on the initialized multimedia data. An embodiment of the queue generator 410 generates a queue for arithmetic operations on entropy-decoded multimedia data.

큐 생성부(410)의 일 실시예는 작업 파라미터 블록을 전송하기 위해, 연산 프로세서에서 소정 단위 시간 동안 처리할 수 있는 작업 파라미터 블록을 결정하고, 결정된 작업 파라미터 블록을 소정 단위 시간마다 연산 프로세서에 전송한다.An embodiment of the queue generator 410 determines a work parameter block that the arithmetic processor can process for a predetermined unit time to transmit a work parameter block, and transmits the determined work parameter block to the arithmetic processor every predetermined unit time. do.

큐 생성부(410)의 일 실시예는, 각각의 연산 작업에 대한 큐에 연산 작업들 에 대한 작업 파라미터를 포함하는 작업 파라미터 블록을 넣는다. 또한 큐 생성부(410)의 일 실시예는 연산 작업에 대한 큐로부터 각각의 연산 작업 큐에 대응되는 연산 프로세서에 작업 파라미터 블록을 전송한다.An embodiment of the queue generator 410 inserts a work parameter block including work parameters for arithmetic tasks into a queue for each arithmetic task. In addition, an embodiment of the queue generator 410 transmits a work parameter block to a calculation processor corresponding to each arithmetic work queue from a queue for the arithmetic work.

도면에 도시되지 않았지만, 일 실시예에 따른 멀티미디어 복호화 장치(400)는 멀티미디어 데이터를 적어도 하나 이상의 데이터 영역으로 분할하는 데이터 영역 분할부를 포함한다. 일 실시예에 따른 멀티미디어 복호화 장치(400)는 데이터 영역 분할부에서 분할된 각각의 데이터 영역에 대해 움직임 보상 작업을 수행할 별개의 연산 프로세서를 결정한다. Although not shown in the drawing, the multimedia decoding apparatus 400 according to an embodiment includes a data area divider for dividing the multimedia data into at least one data area. The multimedia decoding apparatus 400 according to an embodiment determines a separate operation processor for performing a motion compensation operation on each data region divided by the data region dividing unit.

큐 생성부(410)의 일 실시예는, 움직임 보상 작업을 위한 큐를 생성하는 경우, 움직임 보상 작업을 수행할 연산 프로세서들 중 각각의 연산 프로세서에서 해당 데이터 영역에 대해 수행할 각각의 작업 파라미터 블록을 포함하는 큐를 생성한다.According to an embodiment of the queue generator 410, when generating a queue for a motion compensation task, each task parameter block to be performed on a corresponding data area in each of the arithmetic processors to perform a motion compensation task is performed. Create a queue containing.

일 실시예의 데이터 영역 분할부는 멀티미디어 데이터의 각각의 데이터 처리 구간을 적어도 하나 이상의 데이터 영역을 분할하기 위해, 멀티미디어 데이터에 대한 움직임 보상 작업을 위한 연산 프로세서의 연산 부담량을 산출하고, 연산 프로세서의 연산 부담량을 고려하여, 멀티미디어 데이터의 데이터 영역으로의 분할 횟수를 결정하며, 멀티미디어 데이터를 분할 횟수만큼 데이터 영역으로 분할한다. 또한, 움직임 보상 작업을 위한 연산 프로세서로서 멀티미디어 데이터의 분할 횟수와 동일한 개수의 연산 프로세서가 결정된다.In one embodiment, the data area partitioner calculates an operation burden of an operation processor for a motion compensation operation on the multimedia data to divide each data processing section of the multimedia data into at least one data area, and calculates an operation burden of the operation processor. In consideration of the amount, the number of divisions of the multimedia data into the data area is determined, and the multimedia data is divided into the data areas by the number of divisions. In addition, as the operation processor for the motion compensation task, the same number of operation processors as the number of divisions of the multimedia data are determined.

데이터 영역 분할부의 일 실시예는 데이터 영역으로의 분할을 위해, 멀티미 디어 데이터 중에서 서로 의존성이 있는 데이터를 검출하고, 서로 의존성이 있는 데이터들이 분리되지 않도록 분할되는 데이터 영역을 결정한다.An embodiment of the data area partitioner detects data that is dependent on each other among the multimedia data, and determines a data area to be partitioned so that the data that is dependent on each other is not separated.

또한, 데이터 영역 분할부의 일 실시예에서, 서로 의존성 있는 데이터들이 분리되지 않도록 데이터 영역을 분할하기 위해, 서로 의존성이 있는 것으로 검출된 데이터 중 제 1 데이터가 둘 이상의 다른 데이터와 의존성이 있는 경우, 상기 제 1 데이터와 동일한 데이터 영역으로 포함될 데이터로서 의존성이 있는 다른 데이터 중 하나의 데이터를 결정한다.Further, in one embodiment of the data area partitioning unit, in order to partition the data area so that data that is dependent on each other is not separated, when the first data among the data detected as being dependent on each other depends on two or more other data, One data among other data having dependency as the data to be included in the same data area as the first data is determined.

큐 생성부(410)의 일 실시예는, 움직임 보상 작업에 대한 큐에 각각의 분할된 데이터 영역에 대한 작업 파라미터 블록을 각각의 데이터 영역의 처리 순서에 따라 저장하고, 움직임 보상 작업에 대한 큐로부터 각각의 분할된 데이터 영역에 대한 작업 파라미터 블록을 각각의 데이터 영역의 처리 순서에 따라 전송한다.An embodiment of the queue generator 410 stores a job parameter block for each divided data area in a queue for a motion compensation job according to a processing order of each data area, and stores the job parameter block from the queue for a motion compensation job. The work parameter block for each divided data area is transferred according to the processing order of each data area.

움직임 보상 작업 수행부(420)는, 연산 프로세서 중 적어도 하나 이상의 일부 연산 프로세서에서 멀티미디어 데이터가 분할된 데이터 영역 별로 움직임 보상 작업을 수행한다. The motion compensation task execution unit 420 performs a motion compensation task for each data region in which multimedia data is divided in at least one or more of the arithmetic processors.

역주파수 변환 빛 역양자화부(430)는, 움직임 보상 작업이 수행된 데이터에 대해 역주파수 변환 작업 및 역양자화 작업을 수행한다. 일 실시예의 역주파수 변환 및 역양자화부(430)는 중앙 프로세서의 일 부분이다.The reverse frequency converted light dequantization unit 430 performs an inverse frequency transform operation and an inverse quantization operation on data on which the motion compensation operation is performed. In one embodiment, the inverse frequency transform and inverse quantizer 430 is part of a central processor.

디블로킹 작업 수행부(440)는, 연산 프로세서 중 하나의 연산 프로세서가 역주파수 변환 작업 및 역양자화 작업이 수행된 멀티미디어 데이터에 대한 디블로킹 작업을 수행한다.The deblocking task execution unit 440 performs a deblocking task on the multimedia data on which one of the arithmetic processors has been subjected to the inverse frequency conversion and inverse quantization.

멀티미디어 복호화 장치(400)의 일 실시예는, 중앙 프로세서가 디블로킹 작업이 수행된 멀티미디어 데이터를 저장한다.In an embodiment of the multimedia decoding apparatus 400, the central processor stores the multimedia data on which the deblocking operation is performed.

도 5 은 연산 작업 별 연산 부담량의 분포를 도시한다.5 shows a distribution of calculation burdens for each calculation operation.

도 5 에 도시된 그래프(500)는 멀티미디어 복호화 장치(400)에서 멀티미디어 데이터에 대해 복호화하는데 소요되는 시간의 일례를 각각의 연산 작업 별로 비율로 나타낸 것이다.The graph 500 illustrated in FIG. 5 illustrates an example of time taken for decoding multimedia data in the multimedia decoding apparatus 400 as a ratio for each operation.

총 복호화 시간 중 멀티미디어 데이터에 대한 메인 루프(510)에서 소요되는 시간은 15%, 초기화 작업(520)에서 총 소요 시간의 3%, 엔트로피 복호화 작업(530)은 총 소요 시간의 5%, 움직임 보상 작업(540)은 총 소요 시간의 52%, 인트라 예측 작업(550)은 총 소요 시간의 1%, 역양자화 작업 및 역주파수변환 작업(560)은 총 소요 시간의 3%, 디블로킹 작업(570)은 총 소요 시간의 21%가 소요된다. 도 5 에 따르면, 멀티미디어 복호화 작업의 다양한 연산 작업에 있어서, 각각의 연산 작업 별로 소요 시간이 다르며, 이에 따라 연산 작업을 수행하는 프로세서들의 연산 부담량도 다르다. 15% of the total decoding time in the main loop 510 for multimedia data, 3% of the total time in the initialization operation 520, 5% of the total time for the entropy decoding operation 530, motion compensation Task 540 is 52% of total time spent, intra prediction job 550 is 1% of total time spent, inverse quantization and reverse frequency conversion job 560 is 3% of total time spent, deblocking job 570 ) Takes 21% of the total time. According to FIG. 5, in various computational tasks of the multimedia decoding task, the time required for each computational task is different, and accordingly, computational burden of processors performing the computational task is also different.

이에 따라 본 발명의 일 실시예는, 중앙 프로세서에서는 메인 루프 작업(510), 초기화 작업(520), 인트라 예측 작업(550), 역양자화 작업 및 역주파수 변환 작업(560)을 수행하고, 일부 복수 개의 연산 프로세서에서 움직임 보상 작업(540)하고, 또 다른 연산 프로세서에서 디블로킹 작업(570)을 수행한다.Accordingly, in one embodiment of the present invention, the central processor performs a main loop operation 510, an initialization operation 520, an intra prediction operation 550, an inverse quantization operation and an inverse frequency conversion operation 560, and a plurality of operations. The motion compensation task 540 is performed in the two computing processors, and the deblocking operation 570 is performed in another computing processor.

도 6 은 본 발명의 일 실시예에 따른 멀티미디어 복호화 장치의 하이브리드 분할 방식을 도시한다.6 illustrates a hybrid partitioning scheme of a multimedia decoding apparatus according to an embodiment of the present invention.

멀티미디어 복호화 장치(400)는 멀티코어 플랫폼(600) 기반이며, 중앙 프로세서(610) 및 복수 개의 연산 프로세서들(620)을 포함한다. 일 실시예의 연산 프로세서들(620)은 움직임 보상 작업을 위한 세 개의 연산 프로세서(630, 640, 650) 및 디블로킹 작업을 위한 연산 프로세서(660)를 구비한다.The multimedia decoding apparatus 400 is based on the multicore platform 600 and includes a central processor 610 and a plurality of arithmetic processors 620. The arithmetic processors 620 of one embodiment include three arithmetic processors 630, 640, and 650 for motion compensation tasks and arithmetic processor 660 for deblocking tasks.

본 발명의 멀티미디어 복호화 장치(400)는 중앙 프로세서(610)에서 데이터 판독 작업(611), 전처리 작업 및 초기화 작업(612), 엔트로피 복호화 작업(613) 및 작업 파라미터를 위한 큐 생성 작업(614), 역주파수 변환 작업, 역양자화 작업 및 인트라 예측 작업(616), 데이터 저장 작업(618)을 수행하고, 한 세트의 연산 프로세서(630, 640, 650)에서 움직임 보상 작업(635, 645, 655)을 수행하며, 또 다른 연산 프로세서(660)에서 디블로킹 작업(667)을 수행한다. 이는 멀티코어 플랫폼에서의 기능적 분할 방식에 해당한다.Multimedia decoding apparatus 400 of the present invention is a central processor 610 in the data read operation 611, pre-processing and initialization operation 612, entropy decoding operation 613 and queue creation operation 614 for the operation parameters, Perform inverse frequency transform operation, inverse quantization operation and intra prediction operation 616, data storage operation 618, and the motion compensation operation 635, 645, 655 in a set of computing processors 630, 640, 650. The deblocking operation 667 is performed by another operation processor 660. This corresponds to a functional partitioning scheme in a multicore platform.

또한, 본 발명의 멀티미디어 복호화 장치(400)는 멀티미디어 데이터의 데이터 처리 단위를 적어도 하나 이상의 데이터 영역으로 분할하여, 각각의 데이터 영역에 대한 움직임 보상 작업(635, 645, 655)을 별개의 연산 프로세서(630, 640, 650)에서 수행한다. 이는 멀티코어 플랫폼에서의 데이터 분할 방식에 해당한다.In addition, the multimedia decoding apparatus 400 of the present invention divides the data processing unit of the multimedia data into at least one or more data areas, and performs motion compensation operations 635, 645, and 655 for each data area as a separate operation processor ( 630, 640, 650). This corresponds to the data partitioning method in the multicore platform.

따라서, 본 발명의 멀티미디어 복호화 장치(400)는 각각의 멀티미디어 복호화 작업의 연산 작업의 연산 부담량을 고려하여 각각의 프로세서 별로 연산량을 분담하기 위해, 기능적 분할 방식 및 데이터 분할 방식을 조합한 하이브리드 분할 방식을 채택한다.Accordingly, the multimedia decoding apparatus 400 of the present invention combines a functional partitioning method and a data partitioning method in order to share the amount of calculation for each processor in consideration of the computational burden of the computational work of each multimedia decoding operation. Adopt.

움직임 보상 작업을 위한 연산 프로세서의 개수를 정하기 위해, 본 발명의 일 실시예는, 멀티미디어 데이터에 대한 움직임 보상 작업을 위한 연산 프로세서의 연산 부담량을 산출한다. 산출된 연산 프로세서의 연산 부담량을 고려하여, 멀티미디어 데이터의 데이터 영역으로의 분할 횟수가 결정되고, 멀티미디어 데이터는 결정된 분할 횟수만큼 데이터 영역으로 분할된다. 이로 인해, 결정된 멀티미디어 데이터의 분할 횟수와 동일한 개수의 연산 프로세서가 결정된다.In order to determine the number of arithmetic processors for a motion compensation task, an embodiment of the present invention calculates a computational burden of the arithmetic processor for a motion compensation task for multimedia data. In consideration of the calculated computational burden of the computing processor, the number of divisions of the multimedia data into the data region is determined, and the multimedia data is divided into the data regions by the determined number of divisions. Thus, the same number of computation processors as the number of divisions of the determined multimedia data is determined.

본 발명의 일 실시예에서, 중앙 프로세서(610) 및 다른 연산 프로세서들(630, 640, 650, 660) 사이의 연산 작업 동기화를 위한 시그널링은 메일 박스를 통해 이루어진다.In one embodiment of the invention, signaling for synchronization of computational work between the central processor 610 and other computational processors 630, 640, 650, 660 is via a mailbox.

도 7 는 본 발명의 일 실시예에 따른 큐잉 방식 및 프로세서 간의 통신 방식을 도시한다.7 illustrates a queuing method and a communication method between processors according to an embodiment of the present invention.

중앙 프로세서(610)에 관한 큐 생성부(410)의 일 실시예는, 연산 프로세서들이 수행할 연산 작업에 관한 작업 파라미터를 포함하는 큐를 생성한다. 즉, 큐 생성부(410)의 일 실시예는, 연산 프로세서에서 처리된 연산 작업의 순서에 따라, 연산 작업에 관한 작업 파라미터 및 관련 데이터를 포함하는 파라미터 블록을 큐에 순차적으로 쌓음으로써 큐를 생성한다. 따라서, 큐 생성부(410)의 일 실시예는, 움직임 보상 작업을 위한 큐, 디블로킹 작업을 위한 큐, 역주파수변환 작업/역양자화 작업/인트라 예측 작업 등을 위한 각각의 큐를 생성한다.An embodiment of the queue generator 410 related to the central processor 610 generates a queue including work parameters related to arithmetic work to be performed by the arithmetic processors. That is, the embodiment of the queue generator 410 generates a queue by sequentially stacking a parameter block including work parameters related to a calculation task and related data in a queue according to the order of the calculation tasks processed by the calculation processor. do. Accordingly, one embodiment of the queue generator 410 generates a queue for a motion compensation task, a queue for a deblocking task, and a respective queue for an inverse frequency transform task / inverse quantization task / intra prediction task.

도 7 에 도시된 움직임 보상 작업으로 예를 든다. 중앙 프로세서(610)는 움직임 보상 작업을 위한 프로세서들(630, 640, 650)에서 움직임 보상 작업의 수행을 위한 작업 파라미터 블록들(730, 740, 750)을 주 메모리의 움직임 보상 작업을 위 한 큐(710)에 순차적으로 쌓는다. 주 메모리는 중앙 프로세서의 메모리를 나타낸다. An example is given as the motion compensation operation shown in FIG. The central processor 610 queues the work parameter blocks 730, 740, and 750 for performing the motion compensation task in the processors 630, 640, and 650 for the motion compensation task. Stacked sequentially at 710. Main memory represents the memory of the central processor.

또한, 각각의 작업 파라미터 블록(730, 740, 750)은 각각의 분할된 데이터 영역에 대한 움직임 보상 작업을 위한 연산 프로세서(630, 640, 650)에 대응되므로, 작업 처리 순서에 맞추어 연산 프로세서(630, 640, 650)로 출력된다. 일 실시예에서, 주 메모리와 연산 프로세서들(630, 640, 650)의 메모리들 사이의 데이터 통신은 DMA(Direct Memory Access) 방식을 통해 이루어지므로, 움직임 보상 작업을 위한 큐(710)로부터 연산 프로세서(630, 640, 650)로의 데이터 출력은 DMA 방식에 의한다.In addition, each of the job parameter blocks 730, 740, and 750 corresponds to the arithmetic processors 630, 640, and 650 for the motion compensation task for each divided data region. , 640, 650). In one embodiment, the data communication between the main memory and the memories of the computing processors 630, 640, 650 is through a direct memory access (DMA) scheme, so that the computing processor from the queue 710 for motion compensation work. Data output to 630, 640, and 650 is based on the DMA method.

전술한 바에 의하면, 중앙 프로세서(610) 및 연산 프로세서들(630, 640, 650) 사이의 연산 작업의 동기화를 위한 시그널링은 메일 박스를 통해 이루어진다.As described above, signaling for synchronization of computational tasks between the central processor 610 and the computational processors 630, 640, 650 is via a mailbox.

본 발명의 프로세서들 간의 작업은 파이프라인 구조로 병렬적으로 수행되므로, 중앙 프로세서(610)는 현재 연산 프로세서(630, 640, 650)에서 움직임 보상 작업이 이루어질 데이터 단위에 대한 작업 파라미터 블록을 미리 주 메모리의 큐(710)에 쌓아놓는다. 일 실시예에 따른 멀티미디어 복호화 장치(400)의 파이프라인 구조의 병렬 처리는 이하 도 8을 참조하여 상세히 후술된다.Since the operations between the processors of the present invention are performed in parallel in a pipelined structure, the central processor 610 may predetermine a job parameter block for a data unit for which motion compensation is to be performed in the current computing processors 630, 640, and 650. Stacked in the queue 710 of the memory. Parallel processing of the pipeline structure of the multimedia decoding apparatus 400 according to an embodiment will be described later in detail with reference to FIG. 8.

일 실시예의 데이터 영역은 프레임 내의 매크로 블록 단위로 분할될 수 있다. 하나의 데이터 영역은 복수 개의 매크로 블록을 포함할 수 있으며, 현재 데이터 처리 주기 동안 하나의 데이터 영역에 대해 하나의 연산 프로세서가 움직임 보상 작업을 수행한다.The data area of one embodiment may be divided into macroblock units within a frame. One data area may include a plurality of macro blocks, and one operation processor performs motion compensation on one data area during a current data processing period.

데이터 영역 분할부의 일 실시예는, 서로 의존성이 있는 데이터 영역끼리는 분할되지 않도록 하기 위해, 멀티미디어 데이터 중에서 서로 의존성이 있는 데이터를 검출하고, 서로 의존성이 있는 데이터들이 분리되지 않도록 상기 분할되는 데이터 영역을 결정한다. 예를 들면, 서로 의존성이 있는 P 프레임과 B 프레임은 동일한 데이터 영역에 포함되도록 데이터 영역이 결정된다. An embodiment of the data area partitioner may detect data that are dependent on each other among multimedia data and prevent the data areas that are dependent on each other from being separated so that data areas that are dependent on each other are not divided. Decide For example, the data area is determined so that P frames and B frames that are dependent on each other are included in the same data area.

데이터 영역 분할부의 일 실시예는, 검출된 데이터 중 제 1 데이터가 둘 이상의 다른 데이터와 의존성이 있는 경우, 제 1 데이터와 동일한 데이터 영역으로 포함될 데이터로서 의존성이 있는 다른 데이터 중 하나의 데이터를 결정한다. According to an embodiment of the present invention, when the first data of the detected data is dependent on two or more other data, the data area partitioner determines one of the other data depending on the data to be included in the same data area as the first data. do.

예를 들어 B 프레임(제 1 데이터)이 이전 P 프레임 및 다음 P 프레임(제 1 데이터와 의존성이 있는 둘 이상의 다른 데이터)을 참조하는 경우, 이전 P 프레임과 B 프레임 사이의 경계 또는 B 프레임과 다음 P 프레임 사이의 경계에서 데이터 영역을 분할해야 하는 경우, 데이터 영역 분할부는 두 경계 중 어느 하나에서 데이터 영역을 분할할지 여부를 결정한다. For example, if a B frame (first data) refers to a previous P frame and a next P frame (two or more other data that depend on the first data), the boundary between the previous P frame and the B frame, or the B frame and the next When the data area is to be divided at the boundary between the P frames, the data area dividing unit determines whether to divide the data area at any one of the two boundaries.

도 8 은 본 발명의 일 실시예에 따라 파이프라인 구조의 프로세서 병렬 처리 방식을 도시한다.8 illustrates a processor parallel processing scheme of a pipeline structure according to an embodiment of the present invention.

도 8 에 도시된 일 실시예는 데이터 처리 단위의 일례로 프레임을, 데이터 처리 단위의 부분 단위인 데이터 단위의 일례로 프레임의 4분할 부분을 사용한다.8 illustrates a frame as an example of a data processing unit, and a quadrant portion of the frame as an example of a data unit that is a partial unit of the data processing unit.

멀티미디어 복호화 장치(400)의 일 실시예는 파이프라인 구조의 프로세서 병렬 처리 방식에 따르므로, 아래의 순서에 의한다. Since the exemplary embodiment of the multimedia decoding apparatus 400 depends on the processor parallel processing scheme of the pipeline structure, the multimedia decoding apparatus 400 uses the following procedure.

1. 중앙 프로세서(810)가 첫 번째 데이터 단위에 대해 엔트로피 복호화 작업 을 수행하고 큐를 생성(811)한 후, 움직임 보상 작업을 위한 연산 프로세서로 첫 번째 데이터 단위를 출력한다.1. After the central processor 810 performs an entropy decoding operation on the first data unit and generates a queue 811, the central processor 810 outputs the first data unit to an operation processor for a motion compensation task.

2. 움직임 보상 작업을 위한 연산 프로세서(820, 830, 840)가 첫 번째 데이터 단위에 대해 움직임 보상 작업을 수행(821, 831, 841)하는 동안, 중앙 프로세서(810)는 두 번째 데이터 단위에 대해 엔트로피 복호화 작업을 수행하고 큐를 생성(813)한다. 2. While the arithmetic processors 820, 830, and 840 for motion compensation operations perform motion compensation operations on the first data unit (821, 831, 841), the central processor 810 for the second data unit. Entropy decryption is performed and a queue is created (813).

이번 데이터 단위 수행 기간 동안, 중앙 프로세서(810)로 첫 번째 데이터 단위가 출력되고, 움직임 작업을 위한 연산 프로세서(820, 830, 840)로 두 번째 데이터 단위가 출력된다.During this data unit execution period, the first data unit is output to the central processor 810, and the second data unit is output to the operation processors 820, 830, and 840 for the movement task.

움직임 보상 작업을 위한 연산 프로세서의 연산 작업(821, 831, 841) 및 중앙 프로세서의 연산 작업(813)이 완료되면, 중앙 프로세서(810) 및 움직임 보상 작업을 위한 프로세서(820, 830, 840)는 다음 데이터 단위에 대한 작업 연산을 수행할 준비가 된다. When the arithmetic operations 821, 831, and 841 of the arithmetic processor for the motion compensation task and the arithmetic operations 813 of the central processor are completed, the central processor 810 and the processors 820, 830, and 840 for the motion compensation task are completed. You are ready to perform the operation operation on the next data unit.

3. 움직임 보상 작업을 위한 연산 프로세서(820, 830, 840)가 두 번째 데이터 단위에 대해 움직임 보상 작업을 수행(823, 833, 843)하는 동안, 중앙 프로세서는 첫 번째 데이터 단위에 대해 역주파수변환 작업, 역양자화 작업 및 인트라 예측 작업을 수행(814)하고, 첫 번째 데이터 단위에 대한 중앙 프로세서의 연산 작업이 완료한 후 디블로킹 작업을 위한 프로세서(850)로 첫 번째 데이터 단위가 출력된다. 3. While the arithmetic processors 820, 830, and 840 for the motion compensation task perform the motion compensation tasks on the second data unit (823, 833, 843), the central processor performs inverse frequency transform on the first data unit. A task, an inverse quantization operation, and an intra prediction operation are performed 814, and after the calculation operation of the central processor for the first data unit is completed, the first data unit is output to the processor 850 for the deblocking operation.

디블로킹 작업을 위한 프로세서(850)는 첫 번째 데이터 단위에 대한 디블로 킹 작업을 수행(851)하고, 디블로킹 작업이 완료된 첫 번째 데이터 단위(861)를 최종적으로 복원한다. The processor 850 for the deblocking operation performs a deblocking operation on the first data unit (851), and finally restores the first data unit 861 on which the deblocking operation is completed.

중앙 프로세서가 첫 번째 데이터 단위에 대해 역주파수변환 작업, 역양자화 작업 및 인트라 예측 작업(814)을 완료한 후, 세 번째 데이터 단위에 대해 엔트로피 복호화 작업을 수행하고 큐를 생성(815)한다. After the central processor completes an inverse transform operation, an inverse quantization operation, and an intra prediction operation 814 on the first data unit, the central processor performs an entropy decoding operation on the third data unit and generates a queue 815.

움직임 보상 작업을 위한 프로세서의 연산 작업(820, 830, 840)가 두 번째 데이터 단위에 대한 연산 작업(823, 833, 843)을 완료하면, 두 번째 데이터 단위(862)를 중앙 프로세서로 출력한다.When the computational tasks 820, 830, and 840 of the processor for the motion compensation task complete the computational tasks 823, 833, and 843 for the second data unit, the second data unit 862 is output to the central processor.

디블로킹 작업을 위한 연산 프로세서의 연산 작업(851), 움직임 보상 작업을 위한 연산 프로세서의 연산 작업(823, 833, 843) 및 중앙 프로세서의 연산 작업(815)이 모두 완료되면, 중앙 프로세서가 세 번째 데이터 단위에 대해 생성한 큐로부터 각각의 프로세서로 출력된 파라미터 블록에 의해 다음 작업 연산이 수행될 준비가 된다.Once all of the arithmetic operation 851 of the arithmetic processor for deblocking operation, arithmetic operations of the arithmetic processor for motion compensation operation 823, 833, 843 and arithmetic operation of the central processor 815 are completed, The next job operation is ready to be performed by the parameter block output to each processor from the queue created for the data unit.

4. 전술된 1, 2, 3의 파이프라인 구조의 병렬 처리 과정이 반복된다. 따라서, 중앙 프로세서(810)에서 두 번째 데이터 단위에 대해 역주파수변환 작업, 역양자화 작업 및 인프라 예측 작업(816) 및 네 번째 데이터 단위에 대한 엔트로피 복호화 작업 및 큐 생성 작업(817)이 수행되는 동시에, 움직임 보상 작업을 위한 연산 프로세서(820, 830, 840)에서 세 번째 데이터 단위에 대한 움직임 보상 작업(825, 835, 845)가 수행되고, 디블로킹 연산 작업을 위한 연산 프로세서(850)는 두 번째 데이터 단위에 대해 디블로킹 작업(853)을 수행한다. 또한, 디블로킹 작 업(853)이 완료되면 두 번째 데이터 단위가 복원된다.4. The parallel processing of the pipeline structures 1, 2 and 3 described above is repeated. Accordingly, the inverse frequency transform operation, the inverse quantization operation, and the infrastructure prediction operation 816 and the entropy decoding operation and the queue generation operation 817 for the fourth data unit are performed on the second data unit in the central processor 810. The motion compensation operation 825, 835, 845 for the third data unit is performed in the operation processors 820, 830, and 840 for the motion compensation operation, and the operation processor 850 for the deblocking operation is performed for the second time. Deblocking operation 853 is performed on the data unit. In addition, when the deblocking operation 853 is completed, the second data unit is restored.

멀티미디어 복호화 장치(400)의 일 실시예는, 중앙 프로세서 및 연산 프로세서 간의 연산 작업의 동기화를 보장한다. 또한, 움직임 보상 작업을 위한 연산 프로세서의 일 실시예는 데이터 영역 별로 별개의 연산 프로세서에서 동시에 움직임 보상 작업을 수행하므로, 각각의 데이터 단위에 대한 움직임 보상 작업들(821, 831, 841 / 823, 833, 843 / 825, 835, 845)은 각각의 연산 프로세서에서 모두 동시에 수행된다.One embodiment of the multimedia decoding apparatus 400 ensures synchronization of computational tasks between the central processor and the computational processor. In addition, according to an embodiment of the arithmetic processor for a motion compensation task, a motion compensation task is simultaneously performed by a separate arithmetic processor for each data region, and thus, motion compensation tasks 821, 831, 841/823, 833 for each data unit are performed. , 843/825, 835, 845 are all performed simultaneously on each computing processor.

도 9 은 본 발명의 일 실시예에 따른 멀티코어 플랫폼 기반의 멀티미디어 복호화 방법의 흐름도를 도시한다.9 is a flowchart of a multi-core platform-based multimedia decoding method according to an embodiment of the present invention.

단계 910에서, 입력된 멀티미디어 데이터에 대해, 중앙 프로세서에서 중앙 프로세서 및 연산 프로세서가 수행할 적어도 하나 이상의 연산 작업에 대한 큐(queue)가 생성된다.In operation 910, for the input multimedia data, a queue is generated for at least one or more computational tasks to be performed by the central processor and the computational processor at the central processor.

멀티미디어 복호화 방법의 일 실시예는, 입력된 멀티미디어 데이터가 중앙 프로세서에서 판독되고, 판독된 멀티미디어 데이터에 대해 중앙 프로세서에서 복호화를 위한 초기화 작업이 수행되고, 초기화된 멀티미디어 데이터에 대해 중앙 프로세서에서 엔트로피 복호화 작업이 수행된다. 또한, 멀티미디어 데이터에 대해 중앙 프로세서에서 역주파수 변환 작업, 역양자화 작업 및 인트라 예측 작업 중 적어도 하나가 수행되고, 디블로킹 작업이 수행된 멀티미디어 데이터는 중앙 프로세서에서 저장된다. According to an embodiment of the multimedia decoding method, an input multimedia data is read by a central processor, an initialization operation for decoding is performed at the central processor on the read multimedia data, and an entropy decoding operation is performed at the central processor on the initialized multimedia data. This is done. In addition, at least one of an inverse frequency transform operation, an inverse quantization operation, and an intra prediction operation is performed on the multimedia data in the central processor, and the multimedia data on which the deblocking operation is performed is stored in the central processor.

일 실시예에서, 엔트로피 복호화된 멀티미디어 데이터에 대한 연산 작업에 대한 큐가 생성된다.In one embodiment, a queue is created for arithmetic operations on entropy decoded multimedia data.

단계 920에서, 연산 프로세서 중 적어도 하나 이상의 일부 연산 프로세서에서 멀티미디어 데이터가 분할된 데이터 영역 별로 움직임 보상 작업이 수행된다.In operation 920, a motion compensation operation is performed for each data area in which multimedia data is divided in at least one or more of the computing processors.

단계 930에서, 중앙 프로세서에서 움직임 보상 작업이 수행된 데이터에 대해 역주파수 변환 작업 및 역양자화 작업이 수행된다.In operation 930, an inverse frequency transform operation and an inverse quantization operation are performed on the data on which the motion compensation operation is performed in the central processor.

단계 940에서, 연산 프로세서 중 하나의 연산 프로세서가 역주파수 변환 작업 및 역양자화 작업이 수행된 멀티미디어 데이터에 대한 디블로킹 작업이 수행된다.In operation 940, one of the computing processors performs a deblocking operation on the multimedia data on which the inverse frequency conversion and dequantization operations are performed.

멀티미디어 복호화 방법의 일 실시예에서, 중앙 프로세서와 연산 프로세서들 사이의 동기화 신호는 메일 박스 방식을 통해 입출력된다.In one embodiment of the multimedia decoding method, the synchronization signal between the central processor and the computing processors is input and output through a mailbox method.

일 실시예에서, 중앙 프로세서의 메모리와 각각의 연산 프로세서들의 메모리 사이의 데이터는 DMA 방식을 통해 입출력된다.In one embodiment, data between the memory of the central processor and the memory of the respective computing processors is input and output via the DMA scheme.

일 실시예에서, 움직임 보상 작업을 위한 연산 프로세서에서의 각각의 데이터 영역에 대한 움직임 보상 작업들은 서로 동기화된다.In one embodiment, the motion compensation tasks for each data region in the computational processor for motion compensation tasks are synchronized with each other.

일 실시예에서, 중앙 프로세서 및 연산 프로세서들의 각각의 연산 작업들은 파이프라인 구조로 병렬적으로 처리된다.In one embodiment, the computational tasks of each of the central processor and the computational processors are processed in parallel in a pipelined structure.

한편, 상술한 본 발명의 실시예들은 컴퓨터에서 실행될 수 있는 프로그램으로 작성가능하고, 컴퓨터로 읽을 수 있는 기록매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다. 상기 컴퓨터로 읽을 수 있는 기록매체는 마그네틱 저장매체(예를 들면, 롬, 플로피 디스크, 하드디스크 등), 광학 적 판독 매체(예를 들면, 시디롬, 디브이디 등) 및 캐리어 웨이브(예를 들면, 인터넷을 통한 전송)와 같은 저장매체를 포함한다.Meanwhile, the above-described embodiments of the present invention can be written as a program that can be executed in a computer, and can be implemented in a general-purpose digital computer that operates the program using a computer-readable recording medium. The computer-readable recording medium may include a magnetic storage medium (eg, ROM, floppy disk, hard disk, etc.), an optical reading medium (eg, CD-ROM, DVD, etc.), and a carrier wave (eg, the Internet). Storage medium).

이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.So far I looked at the center of the preferred embodiment for the present invention. Those skilled in the art will appreciate that the present invention can be implemented in a modified form without departing from the essential features of the present invention. Therefore, the disclosed embodiments should be considered in descriptive sense only and not for purposes of limitation. The scope of the present invention is shown in the claims rather than the foregoing description, and all differences within the scope will be construed as being included in the present invention.

도 1 은 기능적 분할 방식에 의한 멀티코어 플랫폼 시스템의 일례를 도시한다.1 illustrates an example of a multicore platform system with a functional partitioning scheme.

도 2a 및 도 2b 는 데이터 분할 방식에 의한 멀티코어 플랫폼 시스템의 일례를 도시한다.2A and 2B show an example of a multicore platform system with a data partitioning scheme.

도 3a 및 도 3b 는 애플리케이션 특성에 따른 데이터와 명령어의 분포의 차이점을 도시한다.3A and 3B show differences in the distribution of data and instructions according to application characteristics.

도 4 은 본 발명의 일 실시예에 따른 멀티코어 플랫폼 기반의 멀티미디어 복호화 장치의 블록도를 도시한다.4 is a block diagram of a multi-core platform-based multimedia decoding apparatus according to an embodiment of the present invention.

도 5 은 연산 작업 별 연산 부담량의 분포를 도시한다.5 shows a distribution of calculation burdens for each calculation operation.

도 6 은 본 발명의 일 실시예에 따른 멀티미디어 복호화 장치의 하이브리드 분할 방식을 도시한다.6 illustrates a hybrid partitioning scheme of a multimedia decoding apparatus according to an embodiment of the present invention.

도 7 는 본 발명의 일 실시예에 따른 큐잉 방식 및 프로세서 간의 통신 방식을 도시한다.7 illustrates a queuing method and a communication method between processors according to an embodiment of the present invention.

도 8 은 본 발명의 일 실시예에 따라 파이프라인 구조의 프로세서 병렬 처리 방식을 도시한다.8 illustrates a processor parallel processing scheme of a pipeline structure according to an embodiment of the present invention.

도 9 은 본 발명의 일 실시예에 따른 멀티코어 플랫폼 기반의 멀티미디어 복호화 방법의 흐름도를 도시한다.9 is a flowchart of a multi-core platform-based multimedia decoding method according to an embodiment of the present invention.

Claims (31)

중앙 프로세서 및 복수 개의 연산 프로세서를 포함하는 멀티코어 플랫폼 기반의 멀티미디어 복호화 방법에 있어서,In the multi-core platform-based multimedia decoding method comprising a central processor and a plurality of operational processors, 입력된 멀티미디어 데이터에 대해, 상기 중앙 프로세서에서 상기 중앙 프로세서 및 상기 연산 프로세서가 수행할 적어도 하나 이상의 연산 작업에 대한 큐(queue)를 생성하는 단계;Generating a queue for at least one or more arithmetic operations to be performed by the central processor and the arithmetic processor on the input multimedia data; 상기 연산 프로세서 중 적어도 하나 이상의 일부 연산 프로세서에서 상기 멀티미디어 데이터가 분할된 데이터 영역 별로 움직임 보상 작업을 수행하는 단계; 및Performing a motion compensation operation for each data region in which the multimedia data is divided in at least one or more of the computing processors; And 상기 연산 프로세서 중 하나의 연산 프로세서가 상기 멀티미디어 데이터에 대한 디블로킹 작업을 수행하는 단계를 포함하는 것을 특징으로 하는 멀티미디어 복호화 방법.Performing a deblocking operation on the multimedia data by one of the computing processors. 제 1 항에 있어서, The method of claim 1, 상기 멀티미디어 복호화 방법은,The multimedia decoding method, 상기 입력된 멀티미디어 데이터를 상기 중앙 프로세서에서 판독하는 단계;Reading the input multimedia data in the central processor; 상기 판독된 멀티미디어 데이터에 대해 상기 중앙 프로세서에서 복호화를 위한 초기화 작업을 수행하는 단계; Performing an initialization operation for decoding on the read multimedia data in the central processor; 상기 초기화된 멀티미디어 데이터에 대해 상기 중앙 프로세서에서 엔트로피 복호화하는 단계;Entropy decoding the initialized multimedia data in the central processor; 상기 멀티미디어 데이터에 대해 상기 중앙 프로세서에서 역주파수 변환 작업, 역양자화 작업 및 인트라 예측 작업 중 적어도 하나를 수행하는 단계; 및Performing at least one of an inverse frequency transform operation, an inverse quantization operation, and an intra prediction operation on the multimedia data in the central processor; And 상기 디블로킹 작업이 수행된 멀티미디어 데이터를 상기 중앙 프로세서에서 저장하는 단계를 더 포함하고,Storing the multimedia data on which the deblocking operation is performed at the central processor; 상기 큐 생성 단계는, 상기 엔트로피 복호화된 멀티미디어 데이터에 대한 연산 작업에 대한 큐를 생성하는 것을 특징으로 하는 멀티미디어 복호화 방법.The queue generating step may include generating a queue for a calculation operation on the entropy-decoded multimedia data. 제 1 항에 있어서, 상기 큐 생성 단계는,The method of claim 1, wherein the creating a queue comprises: 각각의 연산 작업에 대한 큐에 상기 연산 작업들에 대한 작업 파라미터를 포함하는 작업 파라미터 블록을 넣는 단계를 포함하는 것을 특징으로 하는 멀티미디어 복호화 방법.And putting a work parameter block containing work parameters for the arithmetic tasks into a queue for each arithmetic task. 제 3 항에 있어서, 상기 큐 생성 단계는,The method of claim 3, wherein the creating a queue comprises: 상기 연산 작업에 대한 큐로부터 각각의 상기 연산 작업 큐에 대응되는 연산 프로세서에 상기 작업 파라미터 블록을 전송하는 단계를 더 포함하는 것을 특징으로 하는 멀티미디어 복호화 방법.And transmitting the work parameter block from the queue for the work to the work processor corresponding to each work queue. 제 4 항에 있어서, 상기 작업 파라미터 블록 전송 단계는,The method of claim 4, wherein the transmitting of the job parameter block comprises: 상기 연산 프로세서에서 소정 단위 시간 동안 처리할 수 있는 작업 파라미터 블록을 결정하는 단계; 및Determining a job parameter block that can be processed for a predetermined unit of time by the operation processor; And 상기 결정된 작업 파라미터 블록을 상기 소정 단위 시간마다 상기 연산 프로세서에 전송하는 단계를 포함하는 것을 특징으로 하는 멀티미디어 복호화 방법.And transmitting the determined work parameter block to the arithmetic processor every predetermined unit time. 제 1 항에 있어서, The method of claim 1, 상기 멀티미디어 복호화 방법은,The multimedia decoding method, 상기 멀티미디어 데이터를 적어도 하나 이상의 데이터 영역으로 분할하는 단계; 및Dividing the multimedia data into at least one data area; And 각각의 분할된 데이터 영역에 대해 움직임 보상 작업을 수행할 별개의 연산 프로세서를 결정하는 단계를 더 포함하고,Determining a separate computing processor to perform motion compensation operations on each partitioned data region, 상기 큐 생성 단계는, The queue creation step, 움직임 보상 작업을 위한 큐를 생성하는 경우, 상기 움직임 보상 작업을 수행할 연산 프로세서들 중 각각의 연산 프로세서에서 해당 데이터 영역에 대해 수행할 각각의 작업 파라미터 블록을 포함하는 큐를 생성하는 것을 특징으로 하는 멀티미디어 복호화 방법.When generating a queue for a motion compensation task, a queue including a respective job parameter block to be performed for a corresponding data area in each of the arithmetic processors to perform the motion compensation task is generated. Multimedia decryption method. 제 6 항에 있어서, The method of claim 6, 상기 데이터 영역 분할 단계는,The data region dividing step includes: 상기 멀티미디어 데이터에 대한 움직임 보상 작업을 위한 연산 프로세서의 연산 부담량을 산출하는 단계;Calculating an operation burden of an operation processor for a motion compensation operation on the multimedia data; 상기 연산 프로세서의 연산 부담량을 고려하여, 상기 멀티미디어 데이터의 데이터 영역으로의 분할 횟수를 결정하는 단계; 및Determining the number of divisions of the multimedia data into a data area in consideration of an operation burden of the operation processor; And 상기 멀티미디어 데이터를 상기 분할 횟수만큼 데이터 영역으로 분할하는 단계를 포함하고,Dividing the multimedia data into a data area by the number of divisions; 상기 연산 프로세서 결정 단계는, 상기 멀티미디어 데이터의 분할 횟수와 동일한 개수의 연산 프로세서를 결정하는 것을 특징으로 하는 멀티미디어 복호화 방법.The determining of the operation processor may include determining the same number of operation processors as the number of divisions of the multimedia data. 제 6 항에 있어서, 상기 데이터 영역 분할 단계는, The method of claim 6, wherein dividing the data area, 상기 멀티미디어 데이터 중에서 서로 의존성이 있는 데이터를 검출하는 단계; 및Detecting data dependent on each other among the multimedia data; And 상기 서로 의존성이 있는 데이터들이 분리되지 않도록 상기 분할되는 데이터 영역을 결정하는 단계를 포함하는 것을 특징으로 하는 멀티미디어 복호화 방법.And determining the divided data region so that the data which are dependent on each other are not separated. 제 8 항에 있어서, The method of claim 8, 상기 데이터 영역 결정 단계는, 상기 검출된 데이터 중 제 1 데이터가 둘 이상의 다른 데이터와 의존성이 있는 경우, 상기 제 1 데이터와 동일한 데이터 영역으로 포함될 데이터로서 상기 의존성이 있는 다른 데이터 중 하나의 데이터를 결정하는 단계를 포함하는 것을 특징으로 하는 멀티미디어 복호화 방법.In the data region determining step, when the first data among the detected data has a dependency on two or more other data, the data region determination step determines one data among the other dependent data as data to be included in the same data region as the first data. Multimedia decoding method comprising the step of. 제 6 항에 있어서, The method of claim 6, 상기 큐 생성 단계는, 상기 움직임 보상 작업에 대한 큐에 상기 각각의 분할된 데이터 영역에 대한 작업 파라미터 블록을 상기 각각의 데이터 영역의 처리 순서에 따라 저장하는 단계를 포함하고,The queue generating step includes storing a job parameter block for each divided data area in a queue for the motion compensation job according to the processing order of the respective data areas, 상기 작업 파라미터 블록 전송 단계는, 상기 움직임 보상 작업에 대한 큐로부터 상기 각각의 분할된 데이터 영역에 대한 작업 파라미터 블록을 상기 각각의 데이터 영역의 처리 순서에 따라 전송하는 단계를 포함하는 것을 특징으로 하는 멀티미디어 복호화 방법.The transmitting of the work parameter block may include transmitting a work parameter block for the respective divided data areas from the queue for the motion compensation work according to the processing order of the respective data areas. Decryption method. 제 1 항에 있어서,The method of claim 1, 상기 중앙 프로세서와 상기 연산 프로세서들 사이의 동기화 신호는 메일 박스 방식을 통해 입출력되는 것을 특징으로 하는 멀티미디어 복호화 방법.And a synchronization signal between the central processor and the arithmetic processors is inputted and outputted through a mailbox method. 제 1 항에 있어서,The method of claim 1, 상기 중앙 프로세서의 메모리와 상기 각각의 연산 프로세서들의 메모리 사이의 데이터는 DMA(Direct Memory Access) 방식을 통해 입출력되는 것을 특징으로 하는 멀티미디어 복호화 방법.And data between the memory of the central processor and the memory of each of the arithmetic processors is inputted and outputted through a direct memory access (DMA) scheme. 제 6 항에 있어서,The method of claim 6, 상기 움직임 보상 작업을 위한 연산 프로세서에서의 상기 각각의 데이터 영 역에 대한 움직임 보상 작업들을 동기화시키는 단계를 더 포함하는 것을 특징으로 하는 멀티미디어 복호화 방법.Synchronizing motion compensation tasks for each of the data regions in the operation processor for the motion compensation task. 제 2 항에 있어서,The method of claim 2, 상기 중앙 프로세서 및 상기 연산 프로세서들의 각각의 연산 작업들은 파이프라인 구조로 병렬적으로 처리되는 단계를 더 포함하는 것을 특징으로 하는 멀티미디어 복호화 방법.And each of the computational tasks of the central processor and the computational processors is processed in parallel in a pipelined structure. 제 14 항에 있어서, 상기 병렬적 처리 단계는,The method of claim 14, wherein the parallel processing step comprises: 상기 중앙 프로세서 및 상기 연산 프로세서들의 각각의 연산 작업들은, 상기 멀티미디어 데이터가 데이터 처리 구간마다 N개의 데이터 단위로 나뉠 때, n은 1보다 크고 N보다 작은 양의 정수라면,Computation tasks of each of the central processor and the computing processors are, if n is a positive integer greater than 1 and less than N, when the multimedia data is divided into N data units per data processing interval, 상기 중앙 프로세서에서 제 (n-1)번째 데이터 단위에 대해 엔트로피 복호화 작업을 수행하고 상기 큐를 생성하는 단계;Performing entropy decoding on the (n-1) th data unit in the central processor and generating the queue; 상기 움직임 보상 작업을 위한 연산 프로세서에서 상기 제 (n-1)번째 데이터 단위에 대해 움직임 보상 작업을 수행하고, 상기 중앙 프로세서는 제 (n)번째 데이터 단위에 대해 엔트로피 복호화 작업을 수행하고 상기 큐를 생성하는 단계; 및The operation processor for the motion compensation task performs a motion compensation task on the (n-1) th data unit, and the central processor performs an entropy decoding operation on the (n) th data unit and performs the queue. Generating; And 상기 중앙 프로세서에서 제 (n-1)번째 데이터 단위에 대해 역주파수변환 작업, 역양자화 작업 및 인프로 예측 작업을 수행하고, 상기 움직임 보상 작업을 위한 연산 프로세서에서 상기 제 (n)번째 데이터 단위에 대해 움직임 보상 작업을 수 행하고, 상기 중앙 프로세서에서 제 (n+1)번째 데이터 단위에 대해 엔트로피 복호화 작업을 수행하고 상기 큐를 생성하며, 상기 디블로킹 작업을 위한 연산 프로세서에서 상기 제 (n-1)번째 데이터 단위에 대해 디블로킹 작업을 수행하여 상기 제 (n-1)번째 데이터 단위를 복원하는 단계를 포함하는 것을 특징으로 하는 멀티미디어 복호화 방법.The central processor performs an inverse frequency transform operation, an inverse quantization operation, and an in-prediction operation on the (n-1) th data unit, and performs an operation on the (n) th data unit in the arithmetic processor for the motion compensation task. Perform a motion compensation operation on the data processor, perform an entropy decoding operation on the (n + 1) th data unit in the central processor, generate the queue, and perform the operation (n-1) on the operation processor for the deblocking operation. And restoring the (n-1) th data unit by performing a deblocking operation on the) th data unit. 중앙 프로세서 및 복수 개의 연산 프로세서를 포함하는 멀티코어 플랫폼 기반의 멀티미디어 복호화 장치에 있어서,In the multi-core platform-based multimedia decoding apparatus comprising a central processor and a plurality of operational processors, 입력된 멀티미디어 데이터에 대해, 상기 중앙 프로세서에서 상기 중앙 프로세서 및 상기 연산 프로세서가 수행할 적어도 하나 이상의 연산 작업에 대한 큐(queue)를 생성하는 큐 생성부;A queue generator configured to generate a queue for at least one or more arithmetic operations to be performed by the central processor and the arithmetic processor on the input multimedia data; 상기 연산 프로세서 중 적어도 하나 이상의 일부 연산 프로세서에서 상기 멀티미디어 데이터가 분할된 데이터 영역 별로 움직임 보상 작업을 수행하는 움직임 보상 작업 수행부; 및A motion compensation task performing unit configured to perform a motion compensation task for each data region in which the multimedia data is divided in at least one or more of the computing processors; And 상기 연산 프로세서 중 하나의 연산 프로세서가 상기 멀티미디어 데이터에 대한 디블로킹 작업을 수행하는 디블로킹 작업 수행부를 포함하는 것을 특징으로 하는 멀티미디어 복호화 장치.And a deblocking task execution unit configured to perform a deblocking operation on the multimedia data by one of the arithmetic processors. 제 16 항에 있어서, The method of claim 16, 상기 멀티미디어 복호화 장치는,The multimedia decoding device, 상기 중앙 프로세서에서, 상기 입력된 멀티미디어 데이터를 판독하고, 상기 판독된 멀티미디어 데이터에 대해 복호화를 위한 초기화 작업을 수행하고, 상기 초기화된 멀티미디어 데이터에 대해 엔트로피 복호화하고, 상기 멀티미디어 데이터에 대해 역주파수 변환 작업, 역양자화 작업 및 인트라 예측 작업 중 적어도 하나를 수행하고, 상기 디블로킹 작업이 수행된 멀티미디어 데이터를 저장하는 것을 특징으로 하고,The central processor reads the input multimedia data, performs an initialization operation for decoding the read multimedia data, entropy-decodes the initialized multimedia data, and performs an inverse frequency conversion operation on the multimedia data. At least one of performing dequantization and intra prediction, and storing multimedia data on which the deblocking operation is performed. 상기 큐 생성부는, 상기 엔트로피 복호화된 멀티미디어 데이터에 대한 연산 작업에 대한 큐를 생성하는 것을 특징으로 하는 멀티미디어 복호화 장치.And the queue generator generates a queue for a calculation operation on the entropy-decoded multimedia data. 제 16 항에 있어서, 상기 큐 생성부는,The method of claim 16, wherein the queue generator, 각각의 연산 작업에 대한 큐에 상기 연산 작업들에 대한 작업 파라미터를 포함하는 작업 파라미터 블록을 넣는 것을 특징으로 하는 멀티미디어 복호화 장치.And a task parameter block including a task parameter for the arithmetic tasks in a queue for each arithmetic task. 제 18 항에 있어서, 상기 큐 생성부는,The method of claim 18, wherein the queue generator, 상기 연산 작업에 대한 큐로부터 각각의 상기 연산 작업 큐에 대응되는 연산 프로세서에 상기 작업 파라미터 블록을 전송하는 작업 파라미터 블록 전송부를 더 포함하는 것을 특징으로 하는 멀티미디어 복호화 장치.And a work parameter block transmitter which transmits the work parameter block to the arithmetic processor corresponding to each arithmetic work queue from the queue for the arithmetic work. 제 19 항에 있어서, 상기 작업 파라미터 블록 전송부는,The method of claim 19, wherein the job parameter block transmission unit, 상기 연산 프로세서에서 소정 단위 시간 동안 처리할 수 있는 작업 파라미터 블록을 결정하고, 상기 결정된 작업 파라미터 블록을 상기 소정 단위 시간마다 상기 연산 프로세서에 전송하는 것을 특징으로 하는 멀티미디어 복호화 장치.And determining a work parameter block which can be processed by the arithmetic processor for a predetermined unit time, and transmitting the determined work parameter block to the arithmetic processor every predetermined unit time. 제 16 항에 있어서, The method of claim 16, 상기 멀티미디어 복호화 장치는,The multimedia decoding device, 상기 멀티미디어 데이터를 적어도 하나 이상의 데이터 영역으로 분할하는 데이터 영역 분할부; 및A data area dividing unit dividing the multimedia data into at least one data area; And 각각의 분할된 데이터 영역에 대해 움직임 보상 작업을 수행할 별개의 연산 프로세서를 결정하는 움직임 보상 프로세서 결정부를 더 포함하고,A motion compensation processor determiner configured to determine a separate computing processor to perform a motion compensation operation on each divided data area, 상기 큐 생성부는, The queue generator, 움직임 보상 작업을 위한 큐를 생성하는 경우, 상기 움직임 보상 작업을 수행할 연산 프로세서들 중 각각의 연산 프로세서에서 해당 데이터 영역에 대해 수행할 각각의 작업 파라미터 블록을 포함하는 큐를 생성하는 것을 특징으로 하는 멀티미디어 복호화 장치.When generating a queue for a motion compensation task, a queue including a respective job parameter block to be performed for a corresponding data area in each of the arithmetic processors to perform the motion compensation task is generated. Multimedia decoding device. 제 21 항에 있어서, The method of claim 21, 상기 데이터 영역 분할부는, 상기 멀티미디어 데이터에 대한 움직임 보상 작업을 위한 연산 프로세서의 연산 부담량을 산출하고, 상기 연산 프로세서의 연산 부담량을 고려하여, 상기 멀티미디어 데이터의 데이터 영역으로의 분할 횟수를 결정하여, 상기 멀티미디어 데이터를 상기 분할 횟수만큼 데이터 영역으로 분할하는 것을 특징으로 하고,The data area dividing unit calculates an operation burden of an operation processor for a motion compensation operation on the multimedia data, and determines the number of divisions of the multimedia data into a data area in consideration of the operation burden of the operation processor. And dividing the multimedia data into a data area by the number of divisions. 상기 움직임 보상 프로세서 결정부는, 상기 멀티미디어 데이터의 분할 횟수와 동일한 개수의 연산 프로세서를 결정하는 것을 특징으로 하는 멀티미디어 복호화 장치.And the motion compensation processor determiner determines the same number of computation processors as the number of divisions of the multimedia data. 제 21 항에 있어서, 상기 데이터 영역 분할부는, The data region dividing unit of claim 21, 상기 멀티미디어 데이터 중에서 서로 의존성이 있는 데이터를 검출하고, 상기 서로 의존성이 있는 데이터들이 분리되지 않도록 상기 분할되는 데이터 영역을 결정하는 것을 특징으로 하는 멀티미디어 복호화 장치.And detecting the dependent data from among the multimedia data, and determining the divided data area so that the dependent data are not separated from each other. 제 23 항에 있어서, The method of claim 23, 상기 데이터 영역 결정부는, 상기 검출된 데이터 중 제 1 데이터가 둘 이상의 다른 데이터와 의존성이 있는 경우, 상기 제 1 데이터와 동일한 데이터 영역으로 포함될 데이터로서 상기 의존성이 있는 다른 데이터 중 하나의 데이터를 결정하는 것을 특징으로 하는 멀티미디어 복호화 장치.The data area determiner may determine one of the other data having the dependency as data to be included in the same data area as the first data when the first data of the detected data has a dependency on two or more other data. Multimedia decoding apparatus, characterized in that. 제 21 항에 있어서, The method of claim 21, 상기 큐 생성부는, 상기 움직임 보상 작업에 대한 큐에 상기 각각의 분할된 데이터 영역에 대한 작업 파라미터 블록을 상기 각각의 데이터 영역의 처리 순서에 따라 저장하는 것을 특징으로 하고,The queue generating unit stores a job parameter block for each divided data area in a queue for the motion compensation job according to a processing order of the respective data areas. 상기 작업 파라미터 블록 전송부는, 상기 움직임 보상 작업에 대한 큐로부터 상기 각각의 분할된 데이터 영역에 대한 작업 파라미터 블록을 상기 각각의 데이터 영역의 처리 순서에 따라 전송하는 것을 특징으로 하는 멀티미디어 복호화 장치.And the job parameter block transmission unit transmits a job parameter block for each divided data area from the queue for the motion compensation job according to the processing order of the respective data areas. 제 16 항에 있어서,The method of claim 16, 상기 중앙 프로세서와 상기 연산 프로세서들 사이의 동기화 신호는 메일 박스 방식을 통해 입출력되는 것을 특징으로 하는 멀티미디어 복호화 장치.And a synchronization signal between the central processor and the arithmetic processors is input / output through a mailbox method. 제 16 항에 있어서,The method of claim 16, 상기 중앙 프로세서의 메모리와 상기 각각의 연산 프로세서들의 메모리 사이의 데이터는 DMA(Direct Memory Access) 방식을 통해 입출력되는 것을 특징으로 하는 멀티미디어 복호화 장치.And data between the memory of the central processor and the memory of each of the arithmetic processors is inputted and outputted through a direct memory access (DMA) scheme. 제 21 항에 있어서,The method of claim 21, 상기 움직임 보상 작업을 위한 연산 프로세서에서의 상기 각각의 데이터 영역에 대한 움직임 보상 작업들을 동기화시키는 것을 특징으로 하는 멀티미디어 복호화 장치.And a motion compensation task for each of the data areas in the operation processor for the motion compensation task. 제 17 항에 있어서,The method of claim 17, 상기 중앙 프로세서 및 상기 연산 프로세서들의 각각의 연산 작업들은 파이 프라인 구조로 병렬적으로 처리되는 것을 특징으로 하는 멀티미디어 복호화 장치.And computing operations of the central processor and the computing processors in parallel in a pipeline structure. 제 29 항에 있어서, The method of claim 29, 상기 중앙 프로세서 및 상기 연산 프로세서들의 각각의 연산 작업들은,Computation tasks of each of the central processor and the computational processors, 상기 중앙 프로세서 및 상기 연산 프로세서들의 각각의 연산 작업들은, 상기 멀티미디어 데이터가 데이터 처리 구간마다 N개의 데이터 단위로 나뉠 때, n은 1보다 크고 N보다 작은 양의 정수라면,Computation tasks of each of the central processor and the computing processors are, if n is a positive integer greater than 1 and less than N, when the multimedia data is divided into N data units per data processing interval, 상기 중앙 프로세서에서 제 (n-1)번째 데이터 단위에 대해 엔트로피 복호화 작업을 수행하고 상기 큐를 생성한 후,After the central processor performs an entropy decoding operation on the (n-1) th data unit and generates the queue, 상기 움직임 보상 작업을 위한 연산 프로세서에서 상기 제 (n-1)번째 데이터 단위에 대해 움직임 보상 작업을 수행하고, 상기 중앙 프로세서는 제 (n)번째 데이터 단위에 대해 엔트로피 복호화 작업을 수행하고 상기 큐를 생성한 후,The operation processor for the motion compensation task performs a motion compensation task on the (n-1) th data unit, and the central processor performs an entropy decoding operation on the (n) th data unit and performs the queue. After creating 상기 중앙 프로세서에서 제 (n-1)번째 데이터 단위에 대해 역주파수변환 작업, 역양자화 작업 및 인프로 예측 작업을 수행하고, 상기 움직임 보상 작업을 위한 연산 프로세서에서 상기 제 (n)번째 데이터 단위에 대해 움직임 보상 작업을 수행하고, 상기 중앙 프로세서에서 제 (n+1)번째 데이터 단위에 대해 엔트로피 복호화 작업을 수행하고 상기 큐를 생성하며, 상기 디블로킹 작업을 위한 연산 프로세서에서 상기 제 (n-1)번째 데이터 단위에 대해 디블로킹 작업을 수행하여 상기 제 (n-1)번째 데이터 단위를 복원함으로써 파이프라인 구조로 병렬적으로 처리되는 것을 특징으로 하는 멀티미디어 복호화 장치.The central processor performs an inverse frequency transform operation, an inverse quantization operation, and an in-prediction operation on the (n-1) th data unit, and performs an operation on the (n) th data unit in the arithmetic processor for the motion compensation task. Perform a motion compensation operation on the data processor, perform an entropy decoding operation on the (n + 1) th data unit in the central processor, generate the queue, and perform the operation (n-1) on the operation processor for the deblocking operation. And deblocking the (n) th data unit to restore the (n-1) th data unit, thereby being processed in parallel in a pipeline structure. 제 1 항 내지 제 15 항 중 어느 한 항의 멀티미디어 복호화 방법을 구현하기 위한 프로그램이 기록된 컴퓨터로 판독 가능한 기록 매체.A computer-readable recording medium having recorded thereon a program for implementing the method of any one of claims 1 to 15.
KR1020070126891A 2007-07-24 2007-12-07 Method and apparatus for decoding multimedia based on multicore processor KR101355375B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US12/179,023 US8634470B2 (en) 2007-07-24 2008-07-24 Multimedia decoding method and multimedia decoding apparatus based on multi-core processor

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US95156707P 2007-07-24 2007-07-24
US60/951,567 2007-07-24

Publications (2)

Publication Number Publication Date
KR20090010860A true KR20090010860A (en) 2009-01-30
KR101355375B1 KR101355375B1 (en) 2014-01-22

Family

ID=40489959

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070126891A KR101355375B1 (en) 2007-07-24 2007-12-07 Method and apparatus for decoding multimedia based on multicore processor

Country Status (1)

Country Link
KR (1) KR101355375B1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100119660A (en) * 2009-05-01 2010-11-10 연세대학교 산학협력단 Data processing device and dynamic parallelized network coding method thereof
KR101279507B1 (en) * 2009-12-15 2013-06-28 한국전자통신연구원 Pipelined decoding apparatus and method based on parallel processing
US8559524B2 (en) 2009-11-19 2013-10-15 Electronics And Telecommunications Research Institute Video decoding apparatus and method based on a data and function splitting scheme

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6963613B2 (en) 2002-04-01 2005-11-08 Broadcom Corporation Method of communicating between modules in a decoding system
US20040057465A1 (en) 2002-09-24 2004-03-25 Koninklijke Philips Electronics N.V. Flexible data partitioning and packetization for H.26L for improved packet loss resilience
JP4699685B2 (en) * 2003-08-21 2011-06-15 パナソニック株式会社 Signal processing apparatus and electronic apparatus using the same
KR100640876B1 (en) * 2004-11-17 2006-11-02 엘지전자 주식회사 Video decoding system in mobile broadcasting receiver

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100119660A (en) * 2009-05-01 2010-11-10 연세대학교 산학협력단 Data processing device and dynamic parallelized network coding method thereof
US8559524B2 (en) 2009-11-19 2013-10-15 Electronics And Telecommunications Research Institute Video decoding apparatus and method based on a data and function splitting scheme
KR101279507B1 (en) * 2009-12-15 2013-06-28 한국전자통신연구원 Pipelined decoding apparatus and method based on parallel processing

Also Published As

Publication number Publication date
KR101355375B1 (en) 2014-01-22

Similar Documents

Publication Publication Date Title
Fouladi et al. Encoding, fast and slow:{Low-Latency} video processing using thousands of tiny threads
US11388405B2 (en) Content aware scheduling in a HEVC decoder operating on a multi-core processor platform
Meenderinck et al. Parallel scalability of video decoders
US8634470B2 (en) Multimedia decoding method and multimedia decoding apparatus based on multi-core processor
Juurlink et al. Scalable parallel programming applied to H. 264/AVC decoding
KR20090065398A (en) Method and apparatus for video decoding based on a multi-core processor
KR101355375B1 (en) Method and apparatus for decoding multimedia based on multicore processor
Collins et al. Flexible filters: load balancing through backpressure for stream programs
Radicke et al. A multi-threaded full-feature HEVC encoder based on wavefront parallel processing
Wang et al. Parallel H. 264/AVC motion compensation for GPUs using OpenCL
Wang et al. A collaborative scheduling-based parallel solution for HEVC encoding on multicore platforms
Gudumasu et al. Software-based versatile video coding decoder parallelization
Kim et al. H. 264/AVC decoder parallelization and optimization on asymetric multicore platform using dynamic load balancing
Radicke et al. Many-core HEVC encoding based on wavefront parallel processing and GPU-accelerated motion estimation
Chen et al. A novel parallel H. 264 decoder using dynamic load balance on dual core embedded system
Migallón et al. Synchronous and asynchronous HEVC parallel encoder versions based on a GOP approach
Wang et al. Multi-Grain Parallel Accelerate System for H. 264 Encoder on ULTRASPARC T2.
EP3149943B1 (en) Content aware scheduling in a hevc decoder operating on a multi-core processor platform
Aboalmaaly et al. Data-Level Parallel Approaches for the H. 264 Coding: A Review
Chahal et al. A comparative study for optimization of video file compression in cloud environment
JP2010041352A (en) Device and method for decoding image
Saha et al. GPU-based parallelisation of a versatile video coding adaptive loop filter in resource-constrained heterogeneous embedded platform
Cebrián-Márquez et al. Gpu-based heterogeneous coding architecture for hevc
Jeong et al. Parallelization and performance prediction for HEVC UHD real-time software decoding
Hoffmann et al. Partitioning strategies for concurrent programming

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

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20181218

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20191216

Year of fee payment: 7