[go: up one dir, main page]

KR101441886B1 - 영상 코덱의 복잡도 측정 방법 및 장치 - Google Patents

영상 코덱의 복잡도 측정 방법 및 장치 Download PDF

Info

Publication number
KR101441886B1
KR101441886B1 KR1020080059970A KR20080059970A KR101441886B1 KR 101441886 B1 KR101441886 B1 KR 101441886B1 KR 1020080059970 A KR1020080059970 A KR 1020080059970A KR 20080059970 A KR20080059970 A KR 20080059970A KR 101441886 B1 KR101441886 B1 KR 101441886B1
Authority
KR
South Korea
Prior art keywords
codec
complexity
memory
unit
waiting time
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
KR1020080059970A
Other languages
English (en)
Other versions
KR20100000458A (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 KR1020080059970A priority Critical patent/KR101441886B1/ko
Publication of KR20100000458A publication Critical patent/KR20100000458A/ko
Application granted granted Critical
Publication of KR101441886B1 publication Critical patent/KR101441886B1/ko
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N17/00Diagnosis, testing or measuring for television systems or their details
    • H04N17/004Diagnosis, testing or measuring for television systems or their details for digital television systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/442Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
    • H04N21/4424Monitoring of the internal components or processes of the client device, e.g. CPU or memory load, processing speed, timer, counter or percentage of the hard disk space used

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Databases & Information Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • General Health & Medical Sciences (AREA)
  • Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)

Abstract

본 발명은 영상 코덱의 복잡도 측정 방법 및 장치에 관한 것이다.
본 발명은 영상 코덱의 복잡도를 측정하는 장치에 있어서, 메모리 대기 시간이 '0'으로 설정된 가상 머신을 이용하여 영상 코덱을 실행하고 영상 코덱의 실행 시간을 측정함으로써 연산 복잡도를 측정 출력하는 영상 코덱의 복잡도 측정 장치를 제공한다.
본 발명에 의하면, 실제의 영상 코덱이 하드웨어 플랫폼에 설치되어 동작할 때 발생할 수 있는 하드웨어 특성을 반영하여 영상 코덱의 복잡도를 더욱 정확하게 측정할 수 있다.
영상, 코덱, 복잡도, 연산, 메모리, 병렬성, 대기 시간, 가상 머신

Description

영상 코덱의 복잡도 측정 방법 및 장치{Method and Apparatus for Complexity Measurement of Video Codec}
본 발명은 영상 코덱의 복잡도 측정 방법 및 장치에 관한 것이다. 더욱 상세하게는, 영상 코덱에 대한 하드웨어의 동작 특성을 반영하여 실질적이며 정확하게 복잡도를 측정하는 방법 및 장치에 관한 것이다.
MPEG(Moving Picture Experts Group)-4, H.264/AVC(Advanced Video Coding)와 같은 비디오 압축 기술의 발달은 영상 매체를 효율적으로 그리고 경제적으로 활용할 수 있다는 측면에서 방송 및 통신 분야에 큰 영향을 주었다. 특히, 최근 가장 각광받고 있는 H.264/AVC 영상 코덱은 이전 표준에 비해 2 배 정도의 압축 성능 향상을 달성하였다.
하지만, 이러한 H.264/AVC 영상 코덱은 압축 성능을 크게 향상시켰지만, 그에 따라 구현의 복잡도를 8배 이상으로 발생시켜서 영상 코덱을 소프트웨어 혹은 하드웨어로 구현하는 데 적지 않은 어려움을 발생시켰다. 이러한 실정을 고려하여, 영상 압축과 관련된 차기의 표준에서는 영상 코덱의 압축 성능을 향상시키는 문제뿐만 아니라 압축 성능의 향상과 동시에 영상 코덱을 구현하는 데에 따른 구현 복 잡도를 최대한 낮추는 방향으로 개발하는 것에 대해 관심이 집중되고 있다.
한편, 영상 코덱의 알고리즘에 대한 복잡도를 측정하는 방법은 영상 코덱의 알고리즘을 구현하는 데 소요되는 소프트웨어 또는 하드웨어 등의 시스템에 대한 규모 및 구현에 따른 비용에 대한 지표를 제공해 줄 수 있기 때문에 시스템 구현을 위한 경제성을 고려했을 때 대단히 중요한 기술이다.
통상적으로 영상 코덱의 압축률과 화질 개선에 대한 평가는 영상 코덱의 성능을 평가하는 다양한 방법 중에서 PSNR(Peak Signal to Noise Rate), BD-SNR/BD-Rate를 이용하는 객관적인 방법이나 다수의 사람에 의하여 이루어지는 주관적인 화질 평가 방법을 이용하여 수행된다. 또한, 새로운 영상 코덱의 알고리즘을 개발할 때에도 전술한 객관적인 방법이나 주관적인 화질 평가 방법을 활용하여 압축률에 대한 평가가 이루어진다. 하지만, 통상적인 영상 코덱의 성능 평가 방법들은 객관적이고 정확한 영상 코덱 알고리즘의 복잡도를 측정하기 위한 기준, 절차, 지침, 시스템 등을 충분히 제시하지 않고 있어, 영상 코덱 알고리즘의 복잡도에 대한 평가가 정확히 이루어지지 못하는 문제점이 있다.
또한, 통상적인 영상 코덱 알고리즘을 탑재한 시스템은 마이크로프로세서를 사용하는 하드웨어 플랫폼(Hardware Platform)이나 ASIC(Application Specific Integrated Circuit)/FPGA(Field Programmable Gate Array)를 사용하는 하드웨어 플랫폼에서 구현된다. 그러나 각각의 하드웨어 플랫폼은 연산 유닛이나 메모리 대역폭(Memory Bandwidth) 등의 구성 요소가 다르기 때문에 고려되어야 하는 복잡도의 측면이 다르다. 따라서, 복잡도를 여러 가지 측면에서 고려하여 적절하게 분류 하고, 분류된 복잡도에 대하여 정확하게 측정하는 기술이 필요한 실정이다.
즉, 마이크로프로세서를 사용하는 하드웨어 플랫폼에서는 동시에 처리할 수 있는 연산의 숫자가 제한되기 때문에, 영상 코덱 시스템을 구현할 때 연산 복잡도(Computational Complexity)를 고려하여 설계하는 것이 중요하다. 또한, 영상 코덱 시스템을 ASIC/FPGA를 이용하는 하드웨어 플랫폼에서 구현할 때에는, 마이크로프로세서를 이용하는 하드웨어 플랫폼과 비교하여 동시에 처리할 수 있는 연산의 숫자에 대한 제약이 적어지는 반면, 메모리 접근 대역폭(Memory Access Bandwidth)은 고정되어 있기 때문에, 상대적으로 연산 복잡도보다는 메모리 복잡도(Memory Complexity)를 더욱 고려하여 설계하는 것이 중요하다. 또한, ASIC/FPGA를 이용한 하드웨어 플랫폼을 이용하는 영상 코덱 시스템을 구현할 때에는 연산 간의 의존성(Dependency)에 따라서 연산을 동시에 처리할 수 있는 정도가 다르기 때문에 병렬성도 함께 고려하여 설계되어야 한다.
전술한 문제점을 해결하고 새로운 기술의 개발에 대한 요구에 부응하기 위해 본 발명은, 영상 코덱에 대하여 하드웨어의 동작 특성을 반영하여 실질적이며 정확하게 복잡도를 측정하는 데 주된 목적이 있다.
전술한 목적을 달성하기 위해 본 발명은, 영상 코덱의 복잡도를 측정하는 장치에 있어서, 영상 코덱을 입력받는 코덱 입력부; 메모리 대기 시간을 '0'으로 설 정하는 설정부; 입력된 영상 코덱을 실행하는 코덱 실행부; 연산 대기 시간을 측정하는 대기 시간 측정부; 및 측정된 연산 대기 시간을 이용하여 영상 코덱의 연산 복잡도를 생성하고 출력하는 복잡도 출력부를 포함하는 것을 특징으로 하는 영상 코덱 복잡도 측정 장치를 제공한다.
또한, 본 발명의 다른 목적에 의하면, 영상 코덱의 복잡도를 측정하는 장치에 있어서, 영상 코덱을 입력받는 코덱 입력부; 연산 대기 시간을 '0'으로 설정하는 설정부; 입력된 영상 코덱을 실행하는 코덱 실행부; 메모리 대기 시간을 측정하는 대기 시간 측정부; 및 측정된 메모리 대기 시간을 이용하여 영상 코덱의 메모리 복잡도를 생성하고 출력하는 복잡도 출력부를 포함하는 것을 특징으로 하는 영상 코덱 복잡도 측정 장치를 제공한다.
또한, 본 발명의 또 다른 목적에 의하면, 영상 코덱의 복잡도를 측정하는 장치에 있어서, 영상 코덱을 입력받는 코덱 입력부; 메모리 대기 시간을 '0'으로 설정하고 서로 다른 둘 이상의 연산 유닛 개수를 설정하는 설정부; 입력된 영상 코덱을 실행하는 코덱 실행부; 연산 대기 시간을 측정하는 대기 시간 측정부; 및 서로 다른 둘 이상의 연산 유닛 개수에 대해 각각 측정된 서로 다른 둘 이상의 연산 대기 시간을 수집하고 수집된 서로 다른 둘 이상의 연산 대기 시간을 이용하여 영상 코덱의 병렬성을 생성하고 출력하는 복잡도 출력부를 포함하는 것을 특징으로 하는 영상 코덱 복잡도 측정 장치를 제공한다.
또한, 본 발명의 또 다른 목적에 의하면, 영상 코덱의 복잡도를 측정하는 방법에 있어서, 영상 코덱을 입력받는 코덱 입력 단계; 메모리 대기 시간을 '0'으로 설정하는 설정 단계; 입력된 영상 코덱을 실행하는 코덱 실행 단계; 연산 대기 시간을 측정하는 대기 시간 측정 단계; 및 측정된 연산 대기 시간을 이용하여 영상 코덱의 연산 복잡도를 생성하고 출력하는 복잡도 출력 단계를 포함하는 것을 특징으로 하는 영상 코덱 복잡도 측정 방법을 제공한다.
또한, 본 발명의 또 다른 목적에 의하면, 영상 코덱의 복잡도를 측정하는 방법에 있어서, 영상 코덱을 입력받는 코덱 입력 단계; 연산 대기 시간을 '0'으로 설정하는 설정 단계; 입력된 영상 코덱을 실행하는 코덱 실행 단계; 메모리 대기 시간을 측정하는 대기 시간 측정 단계; 및 측정된 메모리 대기 시간을 이용하여 영상 코덱의 메모리 복잡도를 생성하고 출력하는 복잡도 출력 단계를 포함하는 것을 특징으로 하는 영상 코덱 복잡도 측정 방법을 제공한다.
또한, 본 발명의 또 다른 목적에 의하면, 영상 코덱의 복잡도를 측정하는 방법에 있어서, 영상 코덱을 입력받는 코덱 입력 단계; 메모리 대기 시간을 '0'으로 설정하는 대기 시간 설정 단계; 서로 다른 둘 이상의 연산 유닛 개수를 설정하는 연산 유닛 개수 설정 단계; 입력된 영상 코덱을 실행하는 코덱 실행 단계; 연산 대기 시간을 측정하는 대기 시간 측정 단계; 서로 다른 둘 이상의 연산 유닛 개수에 대해 각각 측정된 연산 대기 시간을 이용하여 영상 코덱의 병렬성을 생성하고 출력하는 병렬성 출력 단계를 포함하는 것을 특징으로 하는 영상 코덱 복잡도 측정 방법을 제공한다.
또한, 본 발명의 또 다른 목적에 의하면, 영상 코덱의 복잡도를 측정하는 장치에 있어서, 메모리 대기 시간이 '0'으로 설정된 가상 머신을 이용하여 영상 코덱 을 실행하고 영상 코덱의 실행 시간을 측정함으로써 연산 복잡도를 측정 출력하는 영상 코덱의 복잡도 측정 장치를 제공한다.
또한, 본 발명의 또 다른 목적에 의하면, 영상 코덱의 복잡도를 측정하는 장치에 있어서, 연산 대기 시간이 '0'으로 설정된 가상 머신을 이용하여 영상 코덱을 실행하고 영상 코덱의 실행 시간을 측정함으로써 메모리 복잡도를 측정하고 출력하는 영상 코덱 복잡도 측정 장치를 제공한다.
또한, 본 발명의 또 다른 목적에 의하면, 영상 코덱의 복잡도를 측정하는 장치에 있어서, 메모리 대기 시간이 '0'으로 설정되고 서로 다른 둘 이상의 연산 유닛 개수가 설정된 가상 머신을 이용하여 영상 코덱을 실행하고, 영상 코덱의 실행 시간을 측정함으로써 서로 다른 둘 이상의 연산 유닛 개수 각각에 대한 영상 코덱의 실행 시간을 측정함으로써 영상 코덱의 병렬성을 측정하고 출력하는 것을 특징으로 하는 영상 코덱 복잡도 측정 장치를 제공한다.
이상에서 설명한 바와 같이 본 발명에 의하면, 실제의 영상 코덱이 하드웨어 플랫폼에 설치되어 동작할 때 발생할 수 있는 하드웨어 특성을 반영하여 영상 코덱의 복잡도를 더욱 정확하게 측정할 수 있다.
이하, 본 발명의 바람직한 실시예를 첨부된 도면들을 참조하여 상세히 설명한다. 우선 각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도 록 하고 있음에 유의해야 한다. 또한, 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.
도 1은 본 발명의 일 실시예에 따른 영상 코덱의 복잡도 측정 장치의 전자적인 구성을 간략하게 나타낸 블록 구성도이다.
본 발명의 일 실시예에 따른 영상 코덱의 복잡도 측정 장치(100)는 영상을 부호화 및/또는 복호화하는 영상 코덱의 복잡도를 측정하는 장치로서, 코덱 입력부(110), 설정부(120), 코덱 실행부(130), 대기 시간 측정부(140) 및 복잡도 출력부(150)를 포함하여 구성될 수 있다.
이러한 본 발명의 일 실시예에 따른 영상 코덱의 복잡도 측정 장치(100)는 영상 코덱(Video Codec)의 복잡도(Complexity)를 측정하는 데 있어서, 메모리 대기 시간(Memory Latency)이 '0'으로 설정된 가상 머신을 이용하여 영상 코덱을 실행하고 영상 코덱의 실행 시간을 측정함으로써 연산 복잡도(Computational Complexity)를 측정하고 출력할 수 있다.
또한, 본 발명의 일 실시예에 따른 영상 코덱의 복잡도 측정 장치(100)는 영상 코덱의 복잡도를 측정하는 데 있어서, 연산 대기 시간(Computational Latency)이 '0'으로 설정된 가상 머신을 이용하여 영상 코덱을 실행하고 영상 코덱의 실행 시간을 측정함으로써 메모리 복잡도(Memory Complexity)를 측정하고 출력할 수 있다.
또한, 본 발명의 일 실시예에 따른 영상 코덱의 복잡도 측정 장치(100)는 영 상 코덱의 복잡도를 측정하는 데 있어서, 메모리 대기 시간이 '0'으로 설정되고 서로 다른 둘 이상의 산술 논리 장치(ALU: Arithmetic Logic Unit)의 개수(이하에서는 '산술 논리 장치의 개수'를 '연산 유닛 개수'라 약칭함)가 설정된 가상 머신을 이용하여 영상 코덱을 실행하고, 서로 다른 둘 이상의 연산 유닛 개수에 대한 영상 코덱의 실행 시간을 측정함으로써 영상 코덱의 병렬성(Parallelism)을 측정하고 출력할 수 있다.
즉, 본 발명의 일 실시예에 따른 영상 코덱의 복잡도 측정 장치(100)는 영상 코덱의 복잡도를 연산 복잡도, 메모리 복잡도 및 병렬성으로 구분하고, 연산 복잡도, 메모리 복잡도 및 병렬성 중 하나 또는 복수 개를 측정하여 영상 코덱의 복잡도로서 출력할 수 있다. 일반적으로 압축률을 더욱 높이기 위해 더욱 복잡한 연산을 하도록 영상 코덱을 구현하면 영상 코덱의 복잡도가 커져서 영상 코덱의 실행 속도가 느려질 수 있고(또는 영상 코덱의 구현 비용이 더 커질 수 있고), 영상 코덱의 부호화 또는 복호화 속도를 향상시키기 위해 압축률을 훼손시키는 것을 감수하여 영상 코덱에서 복잡한 연산 과정을 제거하면 영상 코덱의 복잡도는 낮아져서 영상 코덱의 실행 속도가 빨라질 수 있다(또는 영상 코덱의 구현 비용이 더 작아질 수 있다). 이뿐만 아니라 압축률이 동일해도 영상 코덱의 알고리즘을 구현하는 방식에 따라 복잡도가 달라질 수 있다. 본 발명의 일 실시예에 따른 영상 코덱의 복잡도 측정 장치(100)는 영상 코덱의 복잡도를 측정하여 영상 코덱의 성능을 평가하기 위한 것이다.
본 발명에서 영상 코덱의 복잡도란 영상 코덱의 구현 복잡도를 말한다. 이러 한 영상 코덱의 복잡도는 클럭 대기 시간(Clock Latency), 클럭 사이클(Clock Cycle), 지연 시간(Delay Time) 등의 시간의 개념으로 측정되어 수치로서 표현될 수 있는 것(이하에서는 '소요 비용'이라 통칭함)을 지표로 하여 나타낼 수 있다.
또한, 본 발명에서 영상 코덱의 복잡도의 요소로서 구분되는 연산 복잡도란 영상 코덱이 실행되는 과정에서 연산 작업을 수행할 때의 실행 시간을 말하며, 메모리 복잡도란 영상 코덱이 실행되는 과정에서 메모리 접근을 수행할 때의 실행 시간을 말하며, 병렬성이란 영상 코덱이 실행되는 과정에서 몇 개의 연산 작업이 동시적으로 수행될 수 있는지에 대한 정도를 말한다.
여기서, 연산 복잡도의 경우 메모리 대기 시간을 '0'으로 설정한 상태에서 영상 코덱의 실행 시간을 측정한 것이므로 영상 코덱의 실행 시간이 연산 대기 시간이 된다. 마찬가지로, 메모리 복잡도의 경우 연산 대기 시간을 '0'으로 설정한 상태에서 영상 코덱의 실행 시간을 측정한 것이므로 영상 코덱의 실행 시간이 메모리 대기 시간이 된다.
또한, 본 발명에서 연산 대기 시간의 수치를 연산 복잡도의 정도를 나타내는 기준으로 사용하여 연산 복잡도를 생성하고 출력할 수 있고, 메모리 대기 시간의 수치를 메모리 복잡도의 정도를 나타내는 기준으로 사용하여 메모리 복잡도를 생성하고 출력할 수 있으며, 서로 다른 둘 이상의 연산 유닛 개수가 커질 때 서로 다른 둘 이상의 연산 대기 시간이 감소하는 비율을 병렬성을 나타내는 기준으로 사용하여 병렬성을 생성하고 출력할 수 있다.
도 1을 참조하면, 코덱 입력부(110)는 복잡도를 측정하고자 하는 영상 코덱 을 입력받아 코덱 실행부(130)로 전달한다. 여기서, 코덱 입력부(110)는 입력된 영상 코덱의 프로그래밍 언어를 고급 언어에서 저급 언어로 번역하여 코덱 실행부(130)로 전달할 수 있다.
설정부(120)는 연산 대기 시간, 메모리 대기 시간 및 연산 유닛 개수 중 하나 이상을 코덱 실행부(130)에 설정한다. 즉, 연산 대기 시간을 측정하여 연산 복잡도를 측정하고자 할 때에는 설정부(120)는 코덱 실행부(130)에 메모리 대기 시간을 '0'으로 설정하고 연산 대기 시간을 일정한 값(예를 들면, 20 클럭 대기 시간 또는 30 클럭 대기 시간 등)으로 설정하고 연산 유닛 개수를 일정한 개수(예를 들면, 1 개 또는 2 개 등)로 설정한다. 또한, 메모리 대기 시간을 측정하여 메모리 복잡도를 측정하고자 할 때, 설정부(120)는 코덱 실행부(130)에 연산 대기 시간을 '0'으로 설정하며, 메모리 대기 시간을 일정한 값(예를 들면, 20 클럭 대기 시간 또는 30 클럭 대기 시간 등)으로 설정하고 연산 유닛 개수를 일정한 개수(예를 들면, 1 개 또는 2 개 등)로 설정한다. 또한, 여러 연산 유닛 개수에 대한 연산 복잡도를 측정함으로써 병렬성을 측정하고자 할 때, 설정부(120)는 코덱 실행부(130)에 메모리 대기 시간을 '0'으로 설정하고 연산 대기 시간을 일정한 값(예를 들면, 20 클럭 대기 시간 또는 30 클럭 대기 시간 등)으로 설정하고 연산 유닛 개수를 서로 다른 둘 이상의 개수로 조절하여 설정한다.
코덱 실행부(130)는 영상 코덱을 모의실험하는 소프트웨어로 구현되어 입력된 영상 코덱을 실행하여 샘플 영상을 부호화 또는 복호화할 수 있는 가상 머신(VM: Virtual Machine)이다. 여기서, 가상 머신은 측정하고자 하는 영상 코덱이 실제 설치된 컴퓨터 등의 하드웨어(마이크로프로세서 또는 ASIC(Application Specific Integrated Circuit)/FPGA(Field Programmable Gate Array) 등)를 제어하여 영상을 부호화 또는 복호화하는 동작을 모의실험(Simulation)하기 위해 소프트웨어로 구현된 프로세스 모의실험기(Process Simulator)를 의미한다.
또한, 코덱 실행부(130)는 설정부(120)에 의해 연산 대기 시간, 메모리 대기 시간 및 연산 유닛 개수 중 하나 이상이 설정될 수 있으며, 설정된 연산 대기 시간, 메모리 대기 시간 및 연산 유닛 개수에 따라 영상 코덱을 실행한다. 예를 들어, 코덱 실행부(130)에 메모리 대기 시간이 '0'으로 설정되고 연산 대기 시간이 '30 클럭 대기 시간'으로 설정되고 연산 유닛 개수가 '1 개'로 설정되면, 코덱 실행부(130)는 영상 코덱을 실행하여 샘플 영상을 부호화 또는 복호화할 때, 영상 코덱이 가상 머신에 구비된 메모리에 접근하여 데이터를 읽거나 쓸 수 있도록 하지만 그에 따른 대기 시간을 '0'으로 출력하고, 영상 코덱이 가상 머신에 구비된 산술 논리 장치를 이용하여 하나의 연산을 수행하는 데에 따른 대기 시간을 '30 클럭 대기 시간'으로 출력하며, 영상 코덱이 하나의 산술 논리 장치만을 이용하여 연산을 수행할 수 있도록 한다. 또한, 예를 들어, 코덱 실행부(130)에 연산 대기 시간이 '0'으로 설정되고 메모리 대기 시간이 '30 클럭 대기 시간'으로 설정되고 연산 유닛 개수가 '2 개'로 설정되면, 코덱 실행부(130)는 영상 코덱을 실행하여 샘플 영상을 부호화 또는 복호화할 때, 영상 코덱이 가상 머신에 구비된 메모리에 한번 접근하여 데이터를 읽거나 쓰는 데에 따른 대기 시간을 '30 클럭 대기 시간'으로 출력하고, 영상 코덱이 가상 머신에 구비된 산술 논리 장치를 이용하여 연산을 수행 할 수 있도록 하지만, 하나의 연산을 수행하는 데에 따른 대기 시간을 '0'으로 출력하며, 영상 코덱이 최대 두 개의 산술 논리 장치를 이용하여 연산을 수행할 수 있도록 한다.
대기 시간 측정부(140)는 코덱 실행부(130)에서 입력된 영상 코덱이 실행될 때의 총 실행 시간 즉, 영상 코덱의 실행 시간을 측정한다. 즉, 대기 시간 측정부(140)는 코덱 실행부(130)가 영상 코덱을 실행하여 샘플 영상을 부호화 또는 복호화할 때 출력하는 대기 시간을 합산하여 총 실행 시간인 영상 코덱의 실행 시간을 측정한다. 이때, 영상 코덱의 실행 시간은 설정부(120)에 의한 설정에 따라 연산 대기 시간이 될 수도 있고, 메모리 대기 시간이 될 수도 있다. 즉, 대기 시간 측정부(140)는 코덱 실행부(130)에서 입력된 영상 코덱이 실행되고 실행된 영상 코덱에 샘플 영상이 입력되어 샘플 영상의 부호화 또는 복호화가 완료될 때까지의 총 실행 시간(예를 들면, 대기 시간(Latency))을 측정함으로써 연산 대기 시간 또는 메모리 대기 시간을 측정한다. 이때, 연산 대기 시간은 코덱 실행부(130)에 메모리 대기 시간이 '0'으로 설정된 경우, 코텍 실행부(130)에서 실행된 영상 코덱이 샘플 영상을 부호화 또는 복호화를 완료할 때까지의 총 실행 시간이 되고, 메모리 대기 시간은 코덱 실행부(130)에 연산 대기 시간이 '0'으로 설정된 경우, 코텍 실행부(130)에서 실행된 영상 코덱이 샘플 영상을 부호화 또는 복호화를 완료할 때까지의 총 실행 시간이 된다.
한편, 연산 대기 시간 또는 메모리 대기 시간은 전술한 바와 같이, 영상 코덱에 샘플 영상이 입력되어 샘플 영상의 부호화 또는 복호화가 완료될 때까지의 총 실행 시간(즉, 영상 코덱의 모든 부분에 대한 총 실행 시간)으로 측정될 수도 있지만, 영상 코덱을 여러 개의 부함수(Sub Function)로 구분하여 하나 또는 복수 개의 부함수에 대한 총 실행 시간을 측정하여 영상 코덱의 특정 부분(예를 들어, 디블록킹 필터(De-blocking Filter) 등)에 대한 총 실행 시간을 측정할 수도 있을 것이다.
본 발명에서 연산 대기 시간과 메모리 대기 시간은 클럭 대기 시간(Clock Latency)으로 측정될 수 있는데, 클럭 대기 시간은 연산 처리의 명령이 입력된 후 해당 연산 처리에 대한 결과가 출력될 때까지의 시간(연산 대기 시간의 경우)이나 메모리의 데이터에 대한 읽기(Read) 명령이 입력된 후 메모리 셀 어레이(Cell Array)에서 데이터가 출력되는 때까지의 시간(메모리 대기 시간의 경우)에 대한 클럭 펄스(Clock Pulse)의 개수를 말한다. 예를 들어 연산 처리의 명령이나 메모리의 데이터에 대한 읽기 명령이 소정의 클럭 펄스에서 발생한 후, 그로부터 3 번째 클럭 펄스에서 연산 처리의 결과나 메모리 셀 어레이에서 데이터가 출력되는 경우, 클럭 대기 시간은 '3'이다. 본 발명에서는 연산 대기 시간과 메모리 대기 시간이 클럭 대기 시간으로 측정되는 것으로 설명하지만, 이는 설명의 편의를 위한 것일 뿐, 클럭 사이클(Clock Cycle) 또는 지연 시간(Delay Time) 등 시간의 개념으로 영상 코덱의 구현 비용을 측정할 수 있는 것들로도 측정될 수 있을 것이다.
복잡도 출력부(150)는 대기 시간 측정부(140)에서 측정된 연산 대기 시간 또는 메모리 대기 시간을 수집하고 이용하여 연산 복잡도, 메모리 복잡도 및/또는 병렬성을 나타내기 위한 데이터를 생성하고 출력한다. 대기 시간 측정부(140)에서 측 정된 연산 대기 시간 또는 메모리 대기 시간은 전술한 바와 같이, 클럭 대기 시간과 같은 시간의 개념으로 측정할 수 있는 구현 비용으로 측정되므로, 복잡도 출력부(150)는 영상 코덱의 복잡도 측정 장치(100)의 사용자가 연산 복잡도, 메모리 복잡도 및/또는 병렬성을 판단할 수 있도록 연산 대기 시간 또는 메모리 대기 시간을 기초로 하는 수치, 등급, 텍스트 등으로 변환한 데이터를 생성하고 출력한다.
도 2는 본 발명의 일 실시예에 따른 코덱 입력부의 전자적인 구성을 간략하게 나타낸 블록 구성도이다.
본 발명의 일 실시예에 따른 코덱 입력부(110)는 도시한 바와 같이, 코덱 선정부(210) 및 언어 번역부(220)를 포함하여 구성될 수 있다.
코덱 선정부(210)는 사용자에 의해 영상 코덱의 복잡도 측정 장치(100)의 코덱 입력부(110)에 입력되거나 기 입력되어 저장된 하나 또는 복수 개의 영상 코덱 중에 복잡도를 측정하고자 하는 특정한 영상 코덱을 기 정해진 알고리즘 또는 사용자의 선택에 따라 선정하여 언어 번역부(220)에 전달한다.
언어 번역부(220)는 코덱 선정부(210)로부터 전달되는 영상 코덱의 프로그래밍 언어를 고급 언어로부터 저급 언어로 번역(또는 컴파일)하여 코덱 실행부(130)로 전달한다. 즉, 통상적으로 영상 코덱의 알고리즘을 기술한 프로그램은 자연어에 가까워 사용자가 사용하기에 편리한 C나 C++와 같은 고급 언어로 기술되어 있는데, 코덱 실행부(130)에 구현된 가상 머신은 컴퓨터와 그 주변 장치들을 제어하기 위한 기계어와 같은 저급 언어를 판독할 수 있으므로, 코덱 실행부(130)에서 영상 코덱을 실행할 수 있도록 영상 코덱의 프로그램을 기술한 언어를 번역한다. 예를 들어, 영상 코덱의 표준 중 하나인 H.264/AVC(Advanced Video Coding)의 경우에는 JM 참조 소프트웨어(Joint Model Reference Software) 기준이 되는 영상 코덱의 프로그램으로 선택할 수 있는데, 이 소프트웨어는 고급 언어인 C 언어로 기술되어 있어서 코덱 실행부(130)에 구현된 가상 머신이 실행하기 위해서는 기계어와 같은 저급 언어로 번역해야 한다.
따라서, 영상 코덱의 프로그래밍 언어가 저급 언어인 경우에는 언어 번역부(220)는 반드시 필요하지는 않을 것이다. 또한, 영상 코덱의 복잡도 측정 장치(100)가 하나의 영상 코덱만을 입력할 수 있도록 구현된다면 코덱 선정부(210)도 반드시 필요하지는 않을 것이다. 즉, 코덱 선정부(210)와 언어 번역부(220)는 반드시 필요한 것은 아니고 구현 방식에 따라 선택적으로 채용될 수 있다.
도 3은 본 발명의 일 실시예에 따른 설정부의 전자적인 구성을 간략하게 나타낸 블록 구성도이다.
본 발명의 일 실시예에 따른 설정부(120)는 도시한 바와 같이, 연산 대기 시간 설정부(310), 메모리 대기 시간 설정부(320) 및 연산 유닛 개수 설정부(330)를 포함하여 구성될 수 있다.
연산 대기 시간 설정부(310)는 코덱 실행부(130)에 입력되는 영상 코덱이 실행될 때, 영상 코덱이 통상적으로 코덱 실행부(130)에 구현된 가상 머신의 산술 논리 장치를 이용하여 한 번의 연산을 수행하는 데 소요되는 대기 시간을 코덱 실행부(130)에 설정한다.
메모리 대기 시간 설정부(320)는 코덱 실행부(130)에 입력되는 영상 코덱이 실행될 때, 영상 코덱이 통상적으로 코덱 실행부(130)에 구현된 가상 머신의 메모리의 데이터를 읽거나 쓰는데(Read 또는 Write) 소요되는 대기 시간을 코덱 실행부(130)에 설정한다.
연산 유닛 개수 설정부(330)는 코덱 실행부(130)에 입력되는 영상 코덱이 실행될 때, 영상 코덱이 한 번의 연산을 위해 사용할 수 있는 코덱 실행부(130)에 구현된 가상 머신의 산술 논리 장치의 개수인 연산 유닛 개수를 코덱 실행부(130)에 설정한다.
본 발명에서는 메모리 복잡도를 측정하고자 할 때에는 연산 대기 시간 설정부(310)가 연산 대기 시간을 '0'으로 설정하고, 연산 복잡도를 측정하고자 할 때에는 메모리 대기 시간 설정부(320)가 메모리 대기 시간을 '0'으로 설정하며, 병렬성을 측정하고자 할 때에는 메모리 대기 시간 설정부(320)가 메모리 대기 시간을 '0'으로 설정하고 연산 유닛 개수 설정부(330)가 이용할 수 있는 연산 유닛 개수를 조절하여 설정한다.
도 4는 본 발명의 일 실시예에 따른 복잡도 출력부의 전자적인 구성을 간략하게 나타낸 블록 구성도이다.
본 발명의 일 실시예에 따른 복잡도 출력부(150)는 연산 복잡도 출력부(410), 메모리 복잡도 출력부(420) 및 병렬성 출력부(430)를 포함하여 구성될 수 있다.
연산 복잡도 출력부(410)는 대기 시간 측정부(140)에서 측정된 연산 대기 시간을 수집하고 이용하여 연산 복잡도를 생성하고 출력한다. 즉, 연산 대기 시간은 그 차체로서 연산 복잡도가 되는 것이 아니라 연산 복잡도의 정도를 나타낼 수 있는 지표로서 활용되므로, 연산 복잡도 출력부(410)는 대기 시간 측정부(140)로부터 수집한 연산 대기 시간을 기초로 사용자가 영상 코덱의 복잡도를 파악할 수 있는 수치, 등급, 정도 등으로 표현된 데이터를 생성하고 출력한다.
이를 위해, 연산 복잡도 출력부(410)는 수집한 연산 대기 시간을 이용하여 영상 코덱의 연산 복잡도의 정도를 나타낼 수 있도록, 기 설정된 기준 코덱(예를 들어, H.264/AVC의 JM 참조 소프트웨어 등)에 따른 연산 대기 시간과 비교하여 비교 결과를 연산 복잡도로서 출력할 수도 있다. 예를 들어, 입력된 영상 코덱의 연산 대기 시간이 기 설정된 기준 코덱에 따른 연산 대기 시간 보다 더 크면 복잡도가 상대적으로 더 큰 것으로 결정하고 더 작으면 복잡도가 상대적으로 더 작은 것으로 결정할 수도 있다. 연산 복잡도 출력부(410)는 이와 같이 결정된 복잡도를 수치, 등급, 정도 등으로 표현한 데이터를 연산 복잡도로서 출력한다.
메모리 복잡도 출력부(420)는 대기 시간 측정부(140)에서 측정된 메모리 대기 시간을 수집하고 이용하여 메모리 복잡도를 생성한다. 즉, 메모리 대기 시간은 그 차체로서 메모리 복잡도가 되는 것이 아니라 메모리 복잡도의 정도를 나타낼 수 있는 지표로서 활용되므로, 메모리 복잡도 출력부(420)는 대기 시간 측정부(140)로부터 수집한 메모리 대기 시간을 기초로 사용자가 영상 코덱의 복잡도를 파악할 수 있는 수치, 등급, 정도 등으로 표현된 데이터를 생성한다.
이를 위해, 메모리 복잡도 출력부(410)는 수집한 메모리 대기 시간을 이용하여 영상 코덱의 메모리 복잡도의 정도를 나타낼 수 있도록, 기 설정된 기준 코덱 (예를 들어, H.264 JM Reference Software 등)에 따른 메모리 대기 시간과 비교하여 비교 결과를 메모리 복잡도로서 출력할 수도 있다. 예를 들어, 입력된 영상 코덱의 메모리 대기 시간이 기 설정된 기준 코덱에 따른 메모리 대기 시간보다 더 크면 복잡도가 상대적으로 더 큰 것으로 결정하고 더 작으면 복잡도가 상대적으로 더 작은 것으로 결정한다. 메모리 복잡도 출력부(410)는 이와 같이 결정된 복잡도를 수치, 등급, 정도 등으로 표현한 데이터를 메모리 복잡도로서 출력한다.
병렬성 출력부(430)는 대기 시간 측정부(140)로부터 서로 다른 둘 이상의 연산 유닛 개수를 조절하면서 각각에 대해 측정된 연산 대기 시간을 수집하고 이용하여 영상 코덱의 병렬성을 생성하고 출력할 수 있다.
또한, 병렬성 출력부(430)는 서로 다른 둘 이상의 연산 유닛 개수에 대한 연산 대기 시간을 이용하여 영상 코덱의 병렬성을 생성하는 데 있어서, 서로 다른 둘 이상의 연산 유닛 개수가 커질 때 수집된 서로 다른 둘 이상의 연산 대기 시간이 감소하는 비율을 병렬성을 나타내는 기준으로 사용하여 병렬성을 생성할 수 있다. 즉, 설정부(120)에 의해 영상 코덱이 가상 머신의 산술 논리 장치를 이용할 수 있는 개수 즉, 연산 유닛 개수가 1 개, 2 개, 4 개, 8 개 등으로 큰 값으로 조절되어 설정되고, 그에 따라 코덱 실행부(130)가 영상 코덱을 실행하여 대기 시간 측정부(140)에서 측정한 연산 대기 시간이 병렬성 출력부(430)에 수집되면, 병렬성 출력부(430)는 연산 유닛 개수가 커질수록 각 유닛 개수에 대한 연산 대기 시간이 감소하는 비율을 계산하고 계산된 비율을 기초로 병렬성을 생성할 수 있다.
이를 위해, 병렬성 출력부(430)는 계산된 감소 비율을 이용하여 영상 코덱의 병렬성을 나타낼 수 있도록, 기 설정된 기준 코덱(예를 들어, H.264 JM Reference Software 등)에서 연산 유닛 개수가 커질 때에 대한 연산 대기 시간의 감소 비율과 비교하여 비교 결과를 병렬성으로서 출력할 수도 있다. 예를 들어, 입력된 영상 코덱의 연산 유닛 개수가 커질 때의 연산 대기 시간의 감소 비율이 기 설정된 기준 코덱에 따른 연산 유닛 개수가 커질 때의 연산 대기 시간의 감소 비율보다 더 크면 병렬성이 상대적으로 더 큰 것으로 결정하고 더 작으면 병렬성이 상대적으로 더 작은 것으로 결정한다. 병렬성 출력부(430)는 이와 같이 결정된 병렬성을 수치, 등급, 정도 등으로 표현한 데이터를 병렬성으로서 출력한다.
도 1 내지 도 4를 통해 전술한 바와 같은, 본 발명의 일 실시예에 따른 영상 코덱의 복잡도 측정 장치(100)는 개인용 컴퓨터(PC: Personal Computer), 노트북 컴퓨터, 개인 휴대 단말기(PDA: Personal Digital Assistant), 이동통신 단말기(Mobile Communication Terminal) 등일 수 있으며, 각종 기기 또는 유무선 통신망과 통신을 수행하기 위한 통신 모뎀 등의 통신 장치, 영상 코덱의 복잡도를 측정하기 위한 각종 프로그램과 데이터를 저장하기 위한 메모리, 프로그램을 실행하여 연산 및 제어하기 위한 마이크로프로세서 등을 구비하는 다양한 장치를 의미한다.
또한, 이상에서는 본 발명의 일 실시예에 따른 영상 코덱의 복잡도 측정 장치(100)가 하나의 장치로 구현되고, 하나의 장치에서 연산 복잡도, 메모리 복잡도 및/또는 병렬성을 측정하는 것으로 설명했지만, 실제로는 연산 복잡도, 메모리 복잡도 및 병렬성 각각을 측정하기 위한 별도의 장치로 구현될 수도 있을 것이다.
이 경우, 코덱 입력부(110), 설정부(120), 코덱 실행부(130) 및 대기 시간 측정부(140)는 연산 복잡도를 측정하기 위한 장치, 메모리 복잡도를 측정하기 위한 장치 및 병렬성을 측정하기 위한 장치에 모두 구비되어야 한다. 하지만, 연산 복잡도를 측정하기 위한 장치는 코덱 입력부(110), 설정부(120), 코덱 실행부(130) 및 대기 시간 측정부(140)에 추가로 복잡도 출력부(150) 중에서 연산 복잡도 출력부(410)만을 구비하면 되고, 메모리 복잡도를 측정하기 위한 장치는 코덱 입력부(110), 설정부(120), 코덱 실행부(130) 및 대기 시간 측정부(140)에 추가로 복잡도 출력부(150) 중에서 메모리 복잡도 출력부(420)만을 구비하면 되며, 병렬성을 측정하기 위한 장치는 코덱 입력부(110), 설정부(120), 코덱 실행부(130) 및 대기 시간 측정부(140)에 추가로 복잡도 출력부(150) 중에서 병렬성 출력부(430)만을 구비하면 된다.
또한, 영상 코덱의 복잡도 측정 장치(100)의 모든 구성 요소(110, 120, 130, 140, 150)와 그 하위 구성 요소(210, 220, 310, 320, 330, 410, 420, 430) 각각이 프로그램을 저장하는 메모리와 프로그램을 실행하여 각 기능을 수행하는 마이크로프로세서를 포함하는 독립적인 하드웨어로 구현될 수도 있지만, 영상 코덱의 복잡도 측정 장치라는 하나의 하드웨어 내에서 각 기능을 수행하는 프로그램 모듈로서 구현될 수도 있다.
도 5는 본 발명의 일 실시예에 따른 영상 코덱의 연산 복잡도 측정 방법을 설명하기 위한 순서도이다.
사용자가 영상 코덱의 연산 복잡도를 측정하기 위해 측정하고자 하는 영상 코덱을 영상 코덱의 복잡도 측정 장치(100)에 입력한다(S510). 이때, 입력되는 영 상 코덱은 프로그래밍 언어로 기술된 소프트웨어일 수 있다.
영상 코덱의 복잡도 측정 장치(100)는 입력된 영상 코덱을 분석하여 영상 코덱을 기술한 프로그래밍 언어를 고급 언어에서 저급 언어로 번역한다(S520). 이를 통해 영상 코덱을 가상 머신을 이용하여 실행할 수 있다. 만일, 영상 코덱이 저급 언어로 기술된 경우에는 프로그래밍 언어를 번역할 필요가 없을 수 있다. 따라서, 단계 S520은 구현 방식에 따라 선택적으로 수행될 수 있을 것이다.
영상 코덱의 복잡도 장치(100)는 메모리 대기 시간을 '0'으로 설정한다(S530). 여기서, 메모리 대기 시간을 '0'으로 설정하는 것은 영상 코덱이 실행되어 샘플 영상을 부호화 또는 복호화할 때 메모리에 접근하여 데이터를 읽고 쓰는 데에 따라 대기 시간이 발생하여 연산 복잡도에 영향을 미치는 것을 방지하기 위함이다. 따라서, 본 발명에서는 연산 복잡도를 측정하기 위해 연산 대기 시간을 측정할 때, 메모리 대기 시간을 '0'으로 설정함으로써 메모리 접근에 따른 영향을 배제할 수 있으므로, 연산 처리를 위한 영상 코덱의 연산 복잡도를 정확하게 측정할 수 있다. 이때, 연산 대기 시간은 기 설정된 일정한 값(예를 들면, '30 클럭 대기 시간 등)으로 설정되고 연산 유닛 개수는 기 설정된 일정한 개수(예를 들면, 1 개 등)로 설정된다.
메모리 대기 시간이 '0'으로 설정되면, 영상 코덱의 복잡도 측정 장치(100)는 영상 코덱을 가상 머신을 이용하여 입력된 영상 코덱을 실행한다(S540). 영상 코덱을 실행한다는 것은 영상 코덱의 프로그램을 실행하고 실행된 영상 코덱에 샘플 영상을 입력하여 영상 코덱으로 하여금 샘플 영상을 부호화 또는 복호화하도록 한다는 것을 말한다. 가상 머신에는 메모리 대기 시간이 '0'으로 설정되었기 때문에, 가상 머신이 영상 코덱을 실행하여 영상 코덱이 샘플 영상을 부호화 또는 복호화할 때, 메모리에 접근하여 데이터를 읽거나 쓰는 데에 따른 대기 시간은 '0'으로 출력되고 산술 논리 장치를 이용하여 연산하는 데에 따른 대기 시간을 연산할 때마다 설정된 값으로 출력한다.
영상 코덱이 실행되면, 영상 코덱의 복잡도 측정 장치(100)는 연산 대기 시간을 측정한다(S550). 즉, 영상 코덱의 복잡도 측정 장치(100)는 영상 코덱이 실행되어 샘플 영상을 입력받은 때로부터 샘플 영상의 부호화 또는 복호화를 완료한 때까지의 총 실행 시간을 측정함으로써 연산 대기 시간을 측정한다. 이때의 측정된 연산 대기 시간은 영상 코덱이 메모리에 접근하는 데에 따른 대기 시간이 제외되고 부호화 또는 복호화 과정에서 수행되는 모든 연산에 대해 출력되는 대기 시간을 누적한 값이 될 수 있다.
연산 대기 시간이 측정되면, 영상 코덱의 복잡도 측정 장치(100)는 측정된 연산 대기 시간을 이용하여 영상 코덱의 연산 복잡도를 생성하고(S560), 출력한다(S570). 즉, 단계 S560에서 측정된 연산 대기 시간은 영상 코덱의 연산 복잡도를 나타낼 수 있는 지표로서 활용될 수 있지만 그 자체로서 영상 코덱의 연산 복잡도를 나타내는 것은 아니므로, 영상 코덱의 복잡도 측정 장치(100)는 측정된 연산 대기 시간의 수치를 수치, 등급, 텍스트 등으로 변환한 데이터를 생성하고 출력함으로써, 사용자가 영산 코덱의 연산 복잡도를 파악할 수 있도록 한다.
도 6은 본 발명의 일 실시예에 따른 영상 코덱의 메모리 복잡도 측정 방법을 설명하기 위한 순서도이다.
단계 S610 및 단계 S620과 동일하므로 이에 대한 상세한 설명은 생략한다.
영상 코덱의 복잡도 장치(100)는 연산 대기 시간을 '0'으로 설정한다(S630). 여기서, 연산 대기 시간을 '0'으로 설정하는 것은 영상 코덱이 실행되어 샘플 영상을 부호화 또는 복호화할 때 산술 논리 장치를 이용하여 연산하는 데에 따라 대기 시간이 발생하여 메모리 복잡도에 영향을 미치는 것을 방지하기 위함이다. 따라서, 본 발명에서는 메모리 복잡도를 측정하기 위해 메모리 대기 시간을 측정할 때, 연산 대기 시간을 '0'으로 설정함으로써 연산 처리에 따른 영향을 배제할 수 있으므로, 메모리 접근을 위한 영상 코덱의 연산 복잡도를 정확하게 측정할 수 있다. 이때, 메모리 대기 시간은 기 설정된 일정한 값(예를 들면, '30 클럭 대기 시간 등)으로 설정되고 연산 유닛 개수는 기 설정된 일정한 개수(예를 들면, 1 개 등)로 설정된다.
연산 대기 시간이 '0'으로 설정되면, 영상 코덱의 복잡도 측정 장치(100)는 영상 코덱을 가상 머신을 이용하여 입력된 영상 코덱을 실행한다(S640). 영상 코덱을 실행한다는 것은 영상 코덱의 프로그램을 실행하고 실행된 영상 코덱에 샘플 영상을 입력하여 영상 코덱으로 하여금 샘플 영상을 부호화 또는 복호화하도록 한다는 것을 말한다. 가상 머신에는 연산 대기 시간이 '0'으로 설정되었기 때문에, 가상 머신이 영상 코덱을 실행하여 영상 코덱이 샘플 영상을 부호화 또는 복호화할 때, 산술 논리 장치를 이용하여 연산하는 데에 따른 대기 시간은 '0'으로 출력되고 메모리에 접근하여 데이터를 읽거나 쓰는 데에 따른 대기 시간을 연산할 때마다 설 정된 값으로 출력한다.
영상 코덱이 실행되면, 영상 코덱의 복잡도 측정 장치(100)는 메모리 대기 시간을 측정한다(S650). 즉, 영상 코덱의 복잡도 측정 장치(100)는 영상 코덱이 실행되어 샘플 영상을 입력받은 때로부터 샘플 영상의 부호화 또는 복호화를 완료한 때까지의 총 실행 시간을 측정함으로써 메모리 대기 시간을 측정한다. 이때의 메모리 대기 시간은 영상 코덱이 산술 논리 장치를 이용하여 연산하는 데에 따른 대기 시간이 제외되고 부호화 또는 복호화 과정에서 수행되는 모든 메모리 접근에 대해 출력되는 대기 시간을 누적한 값으로 출력될 수 있다.
메모리 대기 시간이 측정되면, 영상 코덱의 복잡도 측정 장치(100)는 측정된 메모리 대기 시간을 이용하여 영상 코덱의 메모리 복잡도를 생성하고(S660), 출력한다(S670). 즉, 단계 S560에서 측정된 메모리 대기 시간은 영상 코덱의 메모리 복잡도를 나타낼 수 있는 지표로서 활용될 수 있지만 그 자체로서 영상 코덱의 메모리 복잡도를 나타내는 것은 아니므로, 영상 코덱의 복잡도 측정 장치(100)는 측정된 메모리 대기 시간의 수치를 수치, 등급, 텍스트 등으로 변환한 데이터를 생성하고 출력함으로써, 사용자가 영산 코덱의 메모리 복잡도를 파악할 수 있도록 한다.
도 7은 본 발명의 일 실시예에 따른 영상 코덱의 병렬성도 측정 방법을 설명하기 위한 순서도이다.
단계 S710 및 단계 S730까지는 도 5를 통해 전술한 단계 S510 내지 단계 S530과 동일하므로 이에 대한 상세한 설명은 생략한다. 다만, 도 5를 통해 전술한 단계 S530에서는 메모리 대기 시간을 '0'으로 설정하고 연산 대기 시간을 기 설정 된 일정한 값으로 설정하며 연산 유닛 개수를 기 설정된 일정한 개수로 설정하는데, 도 7에서의 단계 S730에서는 연산 유닛 개수는 설정하지 않고 연산 대기 시간만 기 설정된 일정한 값으로 설정한다.
메모리 접근 대기 시간이 '0'으로 설정한 영상 코덱의 복잡도 측정 장치(100)는 연산 유닛 개수를 서로 다른 둘 이상의 개수로 설정한다(S740). 즉, 영상 코덱의 복잡도 측정 장치(100)는 영상 코덱이 연산에 활용할 수 있는 산술 논리 장치의 개수를 서로 다르게 설정하여 영상 코덱이 한 번의 연산에 설정된 개수만큼의 산술 논리 장치만을 이용하여 연산을 수행하도록 한다. 병렬성을 측정하기 위해서는 연산이 얼마나 많은 산술 논리 장치를 이용하여 동시에 수행될 수 있는 지를 측정해야 하므로, 연산 유닛 개수를 작은 수(예를 들면 1)로부터 큰 수(예를 들면 8)로 단계적으로 조절하면서 설정하고 그에 따른 연산 대기 시간을 각각 측정해야 한다. 이 경우, 예를 들어, 첫 번째 회수에는 연산 유닛 개수가 1 개로 설정될 수 있고, 두 번째 회수에는 2 개로, 세 번째 회수에는 4 개로, 네 번째 회수에는 8 개로 설정될 수 있도록 하여, 영상 코덱이 활용할 수 있는 산술 논리 장치의 개수가 증가할수록 연산 대기 시간이 얼마나 감소하는지를 확인하고 그를 통해 병렬성을 측정할 수 있다.
연산 유닛 개수가 설정된 후의 단계 S750 및 단계 S760은 도 5를 통해 전술한 단계 S640 및 단계 S650과 동일하므로 이에 대한 상세한 설명은 생략한다. 다만, 단계 S750에서 영상 코덱이 실행되어 샘플 영상을 부호화하거나 복호화할 때에는 한 번의 연산에 단계 S740에서 설정된 연산 유닛 개수의 산술 논리 장치를 이용 할 수 있도록 하여 연산을 수행한다.
연산 대기 시간이 측정되면, 측정된 연산 대기 시간을 해당 연산 유닛 개수에 대해 저장하고, 단계 S740으로 진행하여 연산 유닛 개수를 다른 개수로 다시 설정하며, 다시 설정된 연산 유닛 개수에 대해서 단계 S750과 단계 S760을 다시 수행한다. 즉, 연산 유닛 개수를 1 개로 설정하여 영상 코덱을 실행하고 연산 대기 시간을 측정함으로써 연산 유닛 개수 1 개에 대한 연산 대기 시간을 저장하고, 연산 유닛 개수를 2 개로 설정하여 영상 코덱을 실행하고 연산 대기 시간을 측정함으로써 연산 유닛 개수 2 개에 대한 연산 대기 시간을 저장한다. 이와 같이, 연산 유닛 개수를 작은 수로부터 큰 수로 증가시키면서 설정하고 해당 연산 유닛 개수에 대해 영상 코덱을 실행하고 연산 대기 시간을 측정함으로써, 서로 다른 둘 이상의 연산 유닛 개수에 대한 연산 대기 시간을 수집한다. 이때, 연산 유닛 개수는 1 개, 2 개, 4 개, 8 개, 16 개 등과 같이 2의 자승의 개수로 설정될 수 있지만, 반드시 이에 한정되지 않으며, 개수를 증가시키면서 설정되면 가능하다.
이와 같이 연산 유닛 개수를 다르게 설정하면서 단계 S740 내지 단계 S760의 과정을 기 설정된 회수 또는 기 설정된 연산 유닛 개수에 대해 수행한 후에는 수집된 서로 다른 둘 이상의 연산 유닛 개수에 대한 연산 대기 시간을 이용하여 영상 코덱의 병렬성을 생성하고 출력한다(S770). 단계 S740 내지 단계 S760을 다른 연산 유닛 개수에 따라 반복하여 설정된 서로 다른 둘 이상의 연산 유닛 개수에 대한 연산 대기 시간은 영상 코덱이 한 번에 연산을 수행할 때 활용할 수 있는 산술 논리 장치를 증가시키면서 측정된 연산 대기 시간이다. 연산 유닛 개수를 증가시킬수록 그에 따른 연산 대기 시간이 감소한다면, 영상 코덱을 구성하는 명령어들 간에 의존성(Dependency)이 적고 그에 따라 병렬성이 크다는 것을 의미한다. 따라서, 영상 코덱의 복잡도 측정 장치(100)는 연산 유닛 개수가 커질수록 각 유닛 개수에 대한 연산 대기 시간이 감소하는 비율을 계산하고 계산된 비율을 기초로 병렬성을 생성할 수 있다.
도 8은 본 발명의 일 실시예에 따라 병렬성을 측정한 결과를 나타낸 예시도이다.
연산 대기 시간은 코덱 실행부(130)의 가상 머신에 메모리 대기 시간을 '0'으로 설정하고 연산 대기 시간을 기 설정된 일정한 값(예를 들어, 20 클럭 대기 시간 또는 30 클럭 대기 시간)으로 설정하여 가상 머신으로 영상 코덱을 실행한 후 연산에 따른 대기 시간을 측정한 것이다. 따라서, 가상 머신에 설정하는 연산 대기 시간의 설정값에 따라 동일한 영상 코덱이라도 그에 따라 측정되는 연산 대기 시간과 그에 따른 연산 복잡도가 다를 수 있다. 따라서, 복수 개의 영상 코덱 간의 병렬성을 비교하기 위해서는 측정된 연산 대기 시간을 상대적인 실행 속도로 변환하여 비교해야 한다.
도 8에서는 입력된 영상 코덱에서 연산 유닛 개수가 커질 때에 대한 연산 대기 시간을 상대적인 실행 속도로 변환하여 나타낸 입력 영상 코덱 그래프(510)와 기준 코덱(예를 들어, H.264 JM Reference Software 등)에서 연산 유닛 개수가 커질 때에 대한 연산 대기 시간을 상대적인 실행 속도로 변환하여 나타낸 기준 코덱 그래프(520)를 비교하였다.
도 8을 통해, 입력 영상 코덱 그래프(510)에 대한 연산 유닛 개수가 1 개로부터 8 개까지 증가할 때의 실행 속도의 증가율이 기준 영상 코덱 그래프(520)에 대한 연산 유닛 개수가 1 개로부터 8 개까지 증가할 때의 실행 속도의 증가율이 더 크다는 것을 알 수 있다. 또한, 실행 속도의 증가율이 크다는 것은 연산 대기 시간의 감소율이 크다는 것이므로, 입력 영상 코덱 그래프(510)의 경우가 병렬성이 더 큼을 알 수 있다. 결론적으로 입력 코덱이 기준 코덱보다 병렬성이 큰 것으로 판별할 수 있다.
이상에서 설명한 바와 같이, 본 발명에서는 영상 코덱의 복잡도를 연산 복잡도, 메모리 복잡도 및 병렬성으로 구분하여 하나 또는 복수 개를 측정함으로써, 실제의 영상 코덱이 하드웨어 플랫폼에 설치되어 동작할 때 발생할 수 있는 하드웨어 특성을 반영하여 영상 코덱의 복잡도를 정확하게 측정할 수 있다. 즉, 본 발명에서는 측정하고자 하는 영상 코덱이 하드웨어 플랫폼에서 실행되는 것과 동일한 환경을 조성하기 위해, 영상 코덱을 실행할 수 있는 가상 머신을 구현하여 가상 머신으로 영상 코덱을 실행하면서 복잡도를 측정하기 때문에, 하드웨어 특성을 반영한 영상 코덱의 복잡도를 측정할 수 있다.
또한, 본 발명에서는 메모리 접근에 따른 대기 시간을 배제하고 연산에 따른 대기 시간만을 측정할 수 있어 더욱 정확한 연산 복잡도를 측정할 수 있으며, 마찬가지로 연산에 따른 대기 시간을 배제하고 메모리 접근에 따른 대기 시간을 측정할 수 있어 더욱 정확한 메모리 복잡도를 측정할 수 있다. 이뿐만 아니라, 메모리 접근에 따른 대기 시간을 배제하고 영상 코덱이 활용할 수 있는 산술 논리 장치의 개 수를 조절하면서 연산 대기 시간을 측정하여 그 실행 속도의 증가율을 확인함으로써 영상 코덱이 동작하는 데 발생하는 연산들이 얼마나 동시적으로 수행될 수 있는 지에 대한 척도를 나타내는 병렬성을 측정할 수 있으며, 그에 대한 정확한 기준을 마련할 수 있다.
또한, 영상 코덱이 구동될 때 발생할 수 있는 분기 예측(Branch Prediction)과 캐시 적중 실패(Cache Miss) 등의 하드웨어 이벤트를 고려하지 못하던 기존의 방식과는 달리, 본 발명의 경우, 실제의 영상 코덱을 모의실험하여 복잡도를 측정하여 분기 예측과 캐시 적중 실패 등의 하드웨어 이벤트를 고려할 수 있다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
이상에서 설명한 바와 같이 본 발명은 영상 코덱의 복잡도 측정 방법 및 장치 분야에 적용되어, 실제의 영상 코덱이 하드웨어 플랫폼에 설치되어 동작할 때 발생할 수 있는 하드웨어 특성을 반영하여 영상 코덱의 복잡도를 더욱 정확하게 측 정할 수 있는 효과를 발생하는 매우 유용한 발명이다.
도 1은 본 발명의 일 실시예에 따른 영상 코덱의 복잡도 측정 장치의 전자적인 구성을 간략하게 나타낸 블록 구성도,
도 2는 본 발명의 일 실시예에 따른 코덱 입력부의 전자적인 구성을 간략하게 나타낸 블록 구성도
도 3은 본 발명의 일 실시예에 따른 설정부의 전자적인 구성을 간략하게 나타낸 블록 구성도,
도 4는 본 발명의 일 실시예에 따른 복잡도 출력부의 전자적인 구성을 간략하게 나타낸 블록 구성도,
도 5는 본 발명의 일 실시예에 따른 영상 코덱의 연산 복잡도 측정 방법을 설명하기 위한 순서도,
도 6은 본 발명의 일 실시예에 따른 영상 코덱의 메모리 복잡도 측정 방법을 설명하기 위한 순서도,
도 7은 본 발명의 일 실시예에 따른 영상 코덱의 병렬성도 측정 방법을 설명하기 위한 순서도,
도 8은 본 발명의 일 실시예에 따라 병렬성을 측정한 결과를 나타낸 예시도이다.
< 도면의 주요 부분에 대한 부호의 설명 >
110: 코덱 입력부 120: 설정부
130: 코덱 실행부 140: 대기 시간 측정부
150: 복잡도 출력부

Claims (14)

  1. 다수의 연산을 포함하는 영상 코덱을 실행하는 과정에서 발생하는 메모리 읽기 또는 쓰기에 소요되는 메모리 대기 시간, 상기 연산의 실행에 소요되는 연산 유닛의 대기 시간을 이용하여 상기 영상 코덱의 복잡도를 측정하는 장치에 있어서,
    상기 영상 코덱을 입력받는 코덱 입력부;
    상기 연산 유닛의 대기 시간을 '0'이 아닌 값으로 설정하고 상기 메모리 대기 시간을 '0'으로 설정하는 설정부;
    상기 입력된 영상 코덱을 실행하는 코덱 실행부;
    상기 영상 코덱을 실행하는 과정에서 상기 연산 유닛의 대기 시간을 수집하여 상기 영상 코덱의 실행 시간을 측정하는 대기 시간 측정부; 및
    상기 측정된 실행 시간을 이용하여 상기 영상 코덱의 연산 관련 시간에 대한 정보를 나타내는 연산 복잡도를 생성하고 출력하는 복잡도 출력부
    를 포함하는 것을 특징으로 하는 영상 코덱 복잡도 측정 장치.
  2. 제 1 항에 있어서, 상기 복잡도 출력부는,
    상기 측정된 실행 시간을 기 설정된 기준 코덱의 연산 대기 시간에 관련된 정보와 비교하여 상기 연산 복잡도를 생성하는 것을 특징으로 하는 영상 코덱 복잡도 측정 장치.
  3. 다수의 연산을 포함하는 영상 코덱을 실행하는 과정에서 발생하는 메모리 읽기 또는 쓰기에 소요되는 메모리 대기 시간, 상기 연산의 실행에 소요되는 연산 유닛의 대기 시간을 이용하여 상기 영상 코덱의 복잡도를 측정하는 장치에 있어서,
    상기 영상 코덱을 입력받는 코덱 입력부;
    상기 메모리 대기 시간을 '0'이 아닌 값으로 설정하고 상기 연산 유닛의 대기 시간을 '0'으로 설정하는 설정부;
    상기 입력된 영상 코덱을 실행하는 코덱 실행부;
    상기 영상 코덱을 실행하는 과정에서 상기 메모리 대기 시간을 수집하여 상기 영상 코덱의 실행 시간을 측정하는 대기 시간 측정부; 및
    상기 측정된 실행 시간을 이용하여 상기 영상 코덱의 메모리 대기 관련 시간에 대한 정보를 나타내는 메모리 복잡도를 생성하고 출력하는 복잡도 출력부
    를 포함하는 것을 특징으로 하는 영상 코덱 복잡도 측정 장치.
  4. 제 3 항에 있어서, 상기 복잡도 출력부는,
    상기 측정된 실행 시간을 기 설정된 기준 코덱의 메모리 대기 시간에 관련된 정보와 비교하여 상기 연산 복잡도를 생성하는 것을 특징으로 하는 영상 코덱 복잡도 측정 장치.
  5. 다수의 연산을 포함하는 영상 코덱을 실행하는 과정에서 발생하는 메모리 읽기 또는 쓰기에 소요되는 메모리 대기 시간, 상기 연산의 실행에 소요되는 연산 유닛의 대기 시간을 이용하여 상기 영상 코덱의 복잡도를 측정하는 장치에 있어서,
    상기 영상 코덱을 입력받는 코덱 입력부;
    상기 연산 유닛의 대기 시간을 '0'이 아닌 값으로 설정하고 상기 메모리 대기 시간을 '0'으로 설정하고 상기 연산 유닛의 개수를 하나 이상으로 설정하는 설정부;
    상기 입력된 영상 코덱을 실행하는 코덱 실행부;
    상기 영상 코덱을 실행하는 과정에서 상기 연산 유닛의 대기 시간을 수집하여 상기 영상 코덱의 실행 시간을 측정하는 대기 시간 측정부; 및
    상기 연산 유닛의 개수를 서로 다르게 설정한 경우에 대해 각각 측정된 서로 다른 실행 시간을 수집하고 상기 서로 다른 실행 시간을 이용하여 상기 영상 코덱이 실행되는 과정에서 사용되는 상기 연산 유닛의 개수와 관련된 정보를 나타내는 병렬성을 생성하고 출력하는 복잡도 출력부
    를 포함하는 것을 특징으로 하는 영상 코덱 복잡도 측정 장치.
  6. 제 5 항에 있어서, 상기 복잡도 출력부는,
    상기 연산 유닛의 개수가 커짐에 따라 상기 서로 다른 실행 시간이 감소하는 비율을 이용하여 상기 병렬성을 생성하는 것을 특징으로 하는 영상 코덱 복잡도 측정 장치.
  7. 제 1 항, 제 3 항 및 제 5 항 중 어느 한 항에 있어서, 상기 코덱 입력부는,
    상기 입력된 영상 코덱의 프로그래밍 언어를 고급 언어에서 저급 언어로 번역하여 상기 코덱 실행부로 전달하는 것을 특징으로 하는 영상 코덱 복잡도 측정 장치.
  8. 제 1 항, 제 3 항 및 제 5 항 중 어느 한 항에 있어서, 상기 코덱 실행부는,
    상기 입력되는 영상 코덱이 설치되는 하드웨어를 제어하여 상기 영상 코덱을 부호화 또는 복호화하는 동작을 실행하는 소프트웨어로 구현된 가상 머신인 것을 특징으로 하는 영상 코덱 복잡도 측정 장치.
  9. 다수의 연산을 포함하는 영상 코덱을 실행하는 과정에서 발생하는 메모리 읽기 또는 쓰기에 소요되는 메모리 대기 시간, 상기 연산의 실행에 소요되는 연산 유닛의 대기 시간을 이용하여 상기 영상 코덱의 복잡도를 측정하는 방법에 있어서,
    상기 영상 코덱을 입력받는 코덱 입력 단계;
    상기 연산 유닛의 대기 시간을 '0'이 아닌 값으로 설정하고 상기 메모리 대기 시간을 '0'으로 설정하는 설정 단계;
    상기 입력된 영상 코덱을 실행하는 코덱 실행 단계;
    상기 영상 코덱을 실행하는 과정에서 상기 연산 유닛의 대기 시간을 수집하여 상기 영상 코덱의 실행 시간을 측정하는 대기 시간 측정 단계; 및
    상기 측정된 실행 시간을 이용하여 상기 영상 코덱의 연산 관련 시간에 대한 정보를 나타내는 연산 복잡도를 생성하고 출력하는 복잡도 출력 단계
    를 포함하는 것을 특징으로 하는 영상 코덱 복잡도 측정 방법.
  10. 다수의 연산을 포함하는 영상 코덱을 실행하는 과정에서 발생하는 메모리 읽기 또는 쓰기에 소요되는 메모리 대기 시간, 상기 연산의 실행에 소요되는 연산 유닛의 대기 시간을 이용하여 상기 영상 코덱의 복잡도를 측정하는 방법에 있어서,
    상기 영상 코덱을 입력받는 코덱 입력 단계;
    상기 메모리 대기 시간을 '0'이 아닌 값으로 설정하고 상기 연산 유닛의 대기 시간을 '0'으로 설정하는 설정 단계;
    상기 입력된 영상 코덱을 실행하는 코덱 실행 단계;
    상기 영상 코덱을 실행하는 과정에서 상기 메모리 대기 시간을 수집하여 상기 영상 코덱의 실행 시간을 측정하는 대기 시간 측정 단계; 및
    상기 측정된 실행 시간을 이용하여 상기 영상 코덱의 메모리 대기 관련 시간에 대한 정보를 나타내는 메모리 복잡도를 생성하고 출력하는 복잡도 출력 단계
    를 포함하는 것을 특징으로 하는 영상 코덱 복잡도 측정 방법.
  11. 다수의 연산을 포함하는 영상 코덱을 실행하는 과정에서 발생하는 메모리 읽기 또는 쓰기에 소요되는 메모리 대기 시간, 상기 연산의 실행에 소요되는 연산 유닛의 대기 시간을 이용하여 상기 영상 코덱의 복잡도를 측정하는 방법에 있어서,
    상기 영상 코덱을 입력받는 코덱 입력 단계;
    상기 연산 유닛의 대기 시간을 '0'이 아닌 값으로 설정하고 상기 메모리 대기 시간을 '0'으로 설정하는 대기 시간 설정 단계;
    상기 연산 유닛의 개수를 하나 이상으로 설정하는 연산 유닛 개수 설정 단계;
    상기 입력된 영상 코덱을 실행하는 코덱 실행 단계;
    상기 영상 코덱을 실행하는 과정에서 상기 연산 유닛의 대기 시간을 수집하여 상기 영상 코덱의 실행 시간을 측정하는 대기 시간 측정 단계;
    상기 연산 유닛의 개수를 서로 다르게 설정한 경우에 대해 각각 측정된 서로 다른 실행 시간을 수집하고 상기 서로 다른 실행 시간을 이용하여 상기 영상 코덱이 실행되는 과정에서 사용되는 상기 연산 유닛의 개수와 관련된 정보를 나타내는 병렬성을 생성하고 출력하는 병렬성 출력 단계
    를 포함하는 것을 특징으로 하는 영상 코덱 복잡도 측정 방법.
  12. 삭제
  13. 삭제
  14. 삭제
KR1020080059970A 2008-06-25 2008-06-25 영상 코덱의 복잡도 측정 방법 및 장치 Active KR101441886B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020080059970A KR101441886B1 (ko) 2008-06-25 2008-06-25 영상 코덱의 복잡도 측정 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080059970A KR101441886B1 (ko) 2008-06-25 2008-06-25 영상 코덱의 복잡도 측정 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20100000458A KR20100000458A (ko) 2010-01-06
KR101441886B1 true KR101441886B1 (ko) 2014-09-25

Family

ID=41810845

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080059970A Active KR101441886B1 (ko) 2008-06-25 2008-06-25 영상 코덱의 복잡도 측정 방법 및 장치

Country Status (1)

Country Link
KR (1) KR101441886B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11488621B1 (en) * 2021-04-23 2022-11-01 Tencent America LLC Estimation through multiple measurements

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040030131A (ko) * 2001-08-15 2004-04-08 제너럴 인스트루먼트 코포레이션 압축된 디지털 비디오용 i 및 p 프레임 복잡도의 제1패스 인코딩
US20050024486A1 (en) * 2003-07-31 2005-02-03 Viresh Ratnakar Video codec system with real-time complexity adaptation
KR20050097386A (ko) * 2004-04-03 2005-10-07 (주)씨앤에스 테크놀로지 최적화된 연산복잡도를 갖는 움직임 추정 장치 및 그 방법
KR100790148B1 (ko) 2006-07-27 2008-01-02 삼성전자주식회사 실시간 영상 복잡도 측정 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040030131A (ko) * 2001-08-15 2004-04-08 제너럴 인스트루먼트 코포레이션 압축된 디지털 비디오용 i 및 p 프레임 복잡도의 제1패스 인코딩
US20050024486A1 (en) * 2003-07-31 2005-02-03 Viresh Ratnakar Video codec system with real-time complexity adaptation
KR20050097386A (ko) * 2004-04-03 2005-10-07 (주)씨앤에스 테크놀로지 최적화된 연산복잡도를 갖는 움직임 추정 장치 및 그 방법
KR100790148B1 (ko) 2006-07-27 2008-01-02 삼성전자주식회사 실시간 영상 복잡도 측정 방법

Also Published As

Publication number Publication date
KR20100000458A (ko) 2010-01-06

Similar Documents

Publication Publication Date Title
CN101482891B (zh) 性能评估模拟
KR101505341B1 (ko) 로우 비트 레이트 신호 코더 및 디코더
CN110223671B (zh) 语言韵律边界预测方法、装置、系统和存储介质
JP4634525B2 (ja) シミュレート方法、シミュレートプログラムおよびシミュレーション装置
CN112825058B (zh) 处理器性能评估方法及装置
CN111626065A (zh) 神经机器翻译模型的训练方法、装置及存储介质
KR101441886B1 (ko) 영상 코덱의 복잡도 측정 방법 및 장치
Panda et al. Accurate address streams for llc and beyond (slab): A methodology to enable system exploration
CN102144232A (zh) 使用分支取代的仿真处理器执行
CN106649067A (zh) 一种性能和能耗预测方法及装置
US20070265822A1 (en) Data processing system and method
Kilic et al. Memgaze: Rapid and effective load-level memory trace analysis
Zandian et al. Wearmon: Reliability monitoring using adaptive critical path testing
Herglotz et al. Foundations of measuring power and energy consumption in video communication
Brunet et al. Design space exploration of high level stream programs on parallel architectures: A focus on the buffer size minimization and optimization problem
CN120492275B (zh) Pcie功耗测试装置
Hwang et al. Low power showdown: comparison of five DSP platforms implementing an LPC speech codec
Herglotz et al. Estimation of non-functional properties for embedded hardware with application to image processing
Casale-Brunet et al. Design space exploration and implementation of RVC-CAL applications using the TURNUS framework
Wei et al. MixCache: Mixture-of-Cache for Video Diffusion Transformer Acceleration
Peddersen et al. Energy driven application selfadaptation
Jia et al. Scaling Up On-Device LLMs via Active-Weight Swapping Between DRAM and Flash
Montgomerie-Corcoran et al. POMMEL: Exploring Off-Chip Memory Energy & Power Consumption in Convolutional Neural Network Accelerators
Márquez et al. Fixing Amdahl's Law within the Limits of Accelerated Systems: FALLACY
Raman et al. A general stochastic framework for low-cost design of multimedia SoCs

Legal Events

Date Code Title Description
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20080625

PG1501 Laying open of application
A201 Request for examination
PA0201 Request for examination

Patent event code: PA02012R01D

Patent event date: 20130619

Comment text: Request for Examination of Application

Patent event code: PA02011R01I

Patent event date: 20080625

Comment text: Patent Application

E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20140410

Patent event code: PE09021S01D

E90F Notification of reason for final refusal
PE0902 Notice of grounds for rejection

Comment text: Final Notice of Reason for Refusal

Patent event date: 20140611

Patent event code: PE09021S02D

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20140813

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20140912

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20140912

End annual number: 3

Start annual number: 1

PG1601 Publication of registration
FPAY Annual fee payment

Payment date: 20170905

Year of fee payment: 4

PR1001 Payment of annual fee

Payment date: 20170905

Start annual number: 4

End annual number: 4

FPAY Annual fee payment

Payment date: 20180903

Year of fee payment: 5

PR1001 Payment of annual fee

Payment date: 20180903

Start annual number: 5

End annual number: 5

FPAY Annual fee payment

Payment date: 20190626

Year of fee payment: 6

PR1001 Payment of annual fee

Payment date: 20190626

Start annual number: 6

End annual number: 6

PR1001 Payment of annual fee

Payment date: 20200701

Start annual number: 7

End annual number: 7

PR1001 Payment of annual fee

Payment date: 20210615

Start annual number: 8

End annual number: 8

PR1001 Payment of annual fee

Payment date: 20230622

Start annual number: 10

End annual number: 10

PR1001 Payment of annual fee

Payment date: 20240619

Start annual number: 11

End annual number: 11

PR1001 Payment of annual fee

Payment date: 20250619

Start annual number: 12

End annual number: 12