KR101583870B1 - 이미지 인코딩 시스템, 디코딩 시스템 및 그 제공방법 - Google Patents

이미지 인코딩 시스템, 디코딩 시스템 및 그 제공방법 Download PDF

Info

Publication number
KR101583870B1
KR101583870B1 KR1020130108558A KR20130108558A KR101583870B1 KR 101583870 B1 KR101583870 B1 KR 101583870B1 KR 1020130108558 A KR1020130108558 A KR 1020130108558A KR 20130108558 A KR20130108558 A KR 20130108558A KR 101583870 B1 KR101583870 B1 KR 101583870B1
Authority
KR
South Korea
Prior art keywords
frame
images
image
encoding
quantization table
Prior art date
Application number
KR1020130108558A
Other languages
English (en)
Other versions
KR20150029398A (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 KR1020130108558A priority Critical patent/KR101583870B1/ko
Publication of KR20150029398A publication Critical patent/KR20150029398A/ko
Application granted granted Critical
Publication of KR101583870B1 publication Critical patent/KR101583870B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/41Bandwidth or redundancy reduction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding

Abstract

일련의 이미지(예를 들면, 연속 촬영 이미지)를 효율적으로 압축할 수 있으면서도, 디코딩 시의 오버헤드를 줄여 인코딩된 이미지에 대한 임의 접근(Random Access)을 가능하게 하는 이미지 인코딩 시스템, 디코딩 시스템 및 그 제공방법이 개시된다. 본 발명의 일 측면에 따르면, 복수의 이미지를 인코딩하기 위한 인코딩 시스템 제공방법으로서, (a) 상기 복수의 이미지 중 일부인 제1이미지들 각각을 인트라프레임 인코딩(Intra-Frame Encoding)하여, 상기 제1이미지 각각에 상응하는 독립 프레임을 생성하는 단계 및 (b) 상기 복수의 이미지 중 상기 제1이미지를 제외한 나머지 일부인 제2이미지들 각각을 인터프레임 인코딩(Inter-Frame Encoding)하여, 상기 제2이미지들 각각에 상응하는 의존 프레임을 생성하는 단계를 포함하되, 상기 각각의 의존 프레임은, 상기 독립 프레임 중 어느 하나를 직접 참조하여 인코딩되는 것을 특징으로 하는 인코딩 시스템 제공방법이 제공된다.

Description

이미지 인코딩 시스템, 디코딩 시스템 및 그 제공방법{Image encoding system, image decoding system and providing method thereof}
본 발명은 이미지 인코딩 시스템, 이미지 디코딩 시스템 및 그 제공방법에 관한 것으로, 보다 상세하게는 일련의 이미지(예를 들면, 연속 촬영 이미지)를 효율적으로 압축할 수 있으면서도, 디코딩 시의 오버헤드를 줄여 인코딩된 이미지에 대한 임의 접근(Random Access)을 가능하게 하는 이미지 인코딩 시스템, 디코딩 시스템 및 그 제공방법에 관한 것이다.
최근 디지털 카메라가 발전하면서, 보다 좋은 품질의 사진을 얻기 위한 방법으로 짧은 시간에 여러 장의 사진을 연속적으로 촬영하는 기술(예를 들면, 버스트 샷)이 등장하고 있다.
이처럼 일련의 연속된 사진들을 저장하는 방식은 각각의 사진들을 모두 압축저장하는 방식과 동영상 인코딩 방식으로 인코딩을 하여 저장하는 방식이 존재한다.
전자의 경우는 각각의 사진들을 소정의 이미지 압축방식으로 압축하여, 서로독립된 압축 이미지 자체를 저장하므로 사용자는 연속된 복수의 사진들 중 자신이 원하는 시점에 대한 사진을 바로 억세스(access)할 수 있는 다이렉트 억세스가 가능하고, 플레이 백(play back) 즉, 촬영된 순서와는 반대방향으로 플레이를 수행하는 등 다양한 서비스가 가능한 장점이 있다. 하지만 각각의 사진들을 독립적으로 압축하여 저장하여야 하므로 많은 저장공간을 차지하게 되는 문제점이 있다.
한편, 연속된 일련의 사진들을 동영상 인코딩(예컨대, H.264 MPEG 등) 을 하여 저장하는 방식은 각각의 사진들의 이미지 자체를 저장하는 것이 아니라, 일부의 사진(또는 이미지)에 해당하는 프레임(예컨대, P프레임, B프레임 등)은 이전 사진(또는 이미지)와 차이가 있는 정보들만 제한적으로 저장하게 되므로 전술한 방식에 비해 훨씬 저장되는 정보의 양을 줄일 수 있는 장점이 있다. 하지만, 동영상 인코딩으로 연속된 일련의 사진들을 저장하는 경우에는 전술한 바와 같은 다이렉트 억세스 또는 플레이 백과 같은 서비스가 수행되기 어렵다는 문제점이 있다. 왜냐하면 동영상 인코딩에서는 사용자로부터 선택되거나 플레이 백을 위한 임의의 프레임을 디코딩하기 위해서는 상기 임의의 프레임이 참조하는 프레임들을 순차적으로 디코딩한 후, 최종적으로 상기 임의의 프레임을 디코딩할 수 있는 경우가 빈번하기 때문이다. 또한, 몇 번의 참조 및 디코딩을 거쳐야 상기 임의의 프레임을 디코딩할 수 있을지도 미리 알 수 없기 때문에, 다이렉트 억세스 또는 플레이 백을 위해서는 실질적으로 많은 연산 및 시간이 소요되는 문제점이 있다.
예컨대, 동영상 인코딩(압축) 기술을 보다 구체적으로 살펴보면, MPEG(Moving Picture Experts Group)이나 H.264 등이 널리 공지되어 있다. 이들 동영상 인코딩 기술에서는 동영상의 이미지 프레임들에서 공간(spatial) 및 시간(temporal)상의 중복을 탐색하여 동영상의 사이즈를 줄일 수 있다.
MPEG 코딩 기술을 비롯한, 각종 동영상 인코딩 기술에서는 각 프레임을 I 프레임(Intra Frame), P 프레임(Predicted Frame) 혹은 B 프레임(Bidirectional Frame) 중 어느 하나로 인코딩할 수 있다.
I 프레임은 JPEG과 같은 방식으로 소스 이미지로부터 직접 압축되는 프레임으로서, 다른 프레임을 참조하지 않으며 독립적으로 인코딩된다. 따라서, 다른 프레임들의 참조 없이 디코딩될 수 있으며, 동영상 데이터에 대한 임의 접근 또는 다이렉트 억세스(Random Access or direct access)를 위해 사용될 수 있다. 하지만, 이미지 전체에 대한 모든 데이터를 가지고 있으므로 P 프레임이나 B 프레임에 비해 용량이 크고 디코딩에 많은 시간이 소요될 수 있다. 한편, I 프레임의 경우, 해당 프레임 내의 개별적인 매크로 블록의 공간적 중복(spatial redundancy)를 이용하는 인트라프레임 인코딩(Intra-Frame Encoding)이 적용될 수 있다. 여기서, 인트라프레임 인코딩은 프레임 시퀀스 내의 다른 프레임을 참조하지 않고, 인코딩 대상이 되는 프레임 내의 정보간의 공간적 상관성에만 기반하여 수행되는 다양한 손실/비손실 압축 방식을 의미할 수 있다. 따라서, 인트라프레임 인코딩된 프레임은 자신의 데이터만으로 원래 이미지를 복원할 수 있다. 인트라 프레임 인코딩 기술은 대표적으로 JPEG(Joint Photographic Experts Group) 압축 기술을 들 수 있으며, 이에 대하여는 이후에 더욱 상세하게 설명하기로 한다.
P 프레임은 직전에 위치하는 프레임 예컨대, I 프레임 또는 P 프레임(참조 프레임)에 포함된 정보를 참조하여 예측 인코딩되는 프레임이다. 연속되는 이미지들의 경우, 이미지 전체가 바뀌는 것이 아니라 이미지 블록들이 옆으로 조금씩 이동한다는 점(즉, 움직임이 있는 경우, 앞 프레임에 있는 물체 자체의 모양에는 큰 변화가 없이 프레임 내의 특정 영역이 옆으로 이동하는 경우가 대부분이라는 점)에 착안하여, 프레임 간의 차이 값을 이용하여 예측 부호화하는 것이다. 따라서, P 프레임의 경우에는 상술한 인트라프레임 인코딩 외에도, 이전에 주변 프레임과의 시간적 중복(temporal redundancy)을 이용하는 인터프레임 인코딩(Inter-Frame Encoding)이 함께 적용될 수 있다. 따라서, P 프레임의 경우, 참조 프레임에 포함된 정보를 함께 이용하여야만 디코딩될 수 있다.
B 프레임 역시 주변 프레임을 참조하여 예측 인코딩되는 프레임로서, 특히 직전 및 직후에 위치하는 I 프레임/P 프레임 정보를 모두 이용하여 인코딩되는 프레임이다.
도 1은 종래의 동영상 인코딩 기술에 의해 인코딩된 각 프레임간의 참조관계를 나타내는 도면이다. 도 1은 모두 14개의 프레임 중 1번, 6번, 14번 프레임이 I 프레임이고, 나머지 프레임인 모두 P 프레임인 경우를 예시하고 있다.
도 1을 참조하면, 모든 I 프레임(I1, I6, I14)는 인트라프레임 인코딩된 독립적인 프레임이므로, 어떠한 다른 프레임도 참조하지 않는다. 각각의 P 프레임은 바로 이전의 I 프레임 또는 P 프레임을 참조하여 인터프레임 인코딩된 프레임이다. 예를 들어, 3번 프레임(P3)은 바로 이전에 위치한 선행 P 프레임인 2번 프레임(P2)를 참조하며, 10번 프레임(P10)은 바로 이전에 위치한 선행 I 프레임인 9번 프레임(I9)를 참조할 수 있다.
한편, 도 1에 도시된 바와 같은 종래의 프레임 참조 구조에서, P 프레임이 디코딩되기 위해서는 가장 가까운 선행 I 프레임까지 모두 디코딩을 하여야 한다. 예를 들어, 5번째 프레임(P5)을 디코딩하기 위해서는 참조 프레임인 4번째 프레임(P4)을 먼저 디코딩해야 하며, 이를 위해서는 4번째 프레임(P4)의 참조 프레임인 3번째 프레임(P3)이 디코딩 되어야 한다. 따라서, 결국 5번째 프레임(P5)를 디코딩하기 위해서는 P5와 가장 가까운 I 프레임인 1번 프레임(I1)부터 P5까지 차례로 디코딩되어야 한다.
일반적인 동영상의 경우에는 각 프레임이 순차적으로 디스플레이되므로 이러한 디코딩 방식이 아무런 문제가 없지만, 임의의 P 프레임에 직접 접근하고자 하는 경우(즉, 임의 접근의 경우) 또는 플레이 백(즉, 영상을 역순으로 플레이)하기에는 해당 P 프레임으로부터 가장 가까운 거리에 있는 선행 I 프레임부터 해당 P 프레임까지 모두 디코딩해야 하므로 디코딩 오버헤드가 매우 클 수 있다는 문제가 있다.
따라서 연속 촬영된 일련의 이미지(예를 들면, 버스트 샷)를 상술한 바와 같은 종래의 동영상 인코딩 방식으로 저장하는 경우에는 마찬가지로 랜덤 억세스 또는 플레이 백 등의 서비스가 적용되기 어려운 문제점이 있다.
그러므로 임의의 이미지에 임의 접근 시 오버헤드를 줄일 수 있으면서도 효율적으로 각 이미지를 압축할 수 있는 인코딩 방법이 요구된다.
한편, 상술한 바와 같이, I 프레임과 같은 다른 프레임을 참조하지 않은 독립된 프레임은 해당 프레임을 구성하는 모든 데이터를 포함하고 있으므로 용량이 클 수 있다. 따라서, 독립된 프레임을 더욱 효율적으로 압축할 수 있는 방안이 더 강구되어야 한다.
단일 이미지를 압축하는 종래의 다양한 방식이 널리 공지되어 있다. 그 중에서 가장 널리 쓰이고 있는 JPEG은 이미지를 압축하여 표현하는 표준으로 널리 이용되고 있다.
본 발명의 기술적 사상은 모든 형태의 데이터 압축 방식에 적용될 수 있지만, 설명의 편의를 위해 대표적으로 JPEG에 적용되는 경우를 일 예로 설명하기로 한다.
도 2는 종래의 JPEG 이미지의 생성방법을 개략적으로 설명하기 위한 도면이다.
도 2를 참조하면, JPEG은 원본 이미지를 압축하여 저장하는 방식인데, 원본 이미지를 DCT(Discrete Cosine Transform)을 수행하여 주파수 공간의 데이터로 변환하고(S10), 변환된 데이터를 양자화 테이블(예컨대, 표준 양자화 테이블)을 이용하여 양자화(Quantization)을 수행함으로써(S11) 손실 압축(lossy compression)을 수행하게 된다(S11). 그리고 손실 압축된 데이터를 인코딩(encoding)을 수행함으로써(S12), 압축된 이미지 데이터를 생성할 수 있다.
이와 같이 JPEG과 같은 손실 압축을 수행하는 경우, 정보의 손실은 대부분이 양자화 과정에서 수행되게 된다. 따라서, 이미지 압축률은 얼마만큼의 스케일(scale)로 양자화를 수행하는지에 주도적으로 의존하게 되는 방식이다.
하지만, 이미지 압축은 사용자의 가시적 화질이 크게 저하되지 않는 범위에서 수행되는 것이 바람직하다. 예컨대, 이미지 압축률을 크게 하는 경우(즉, 양자화 스케일을 크게 하는 경우)에는 압축된 이미지의 데이터 크기가 적어진다는 효과는 있지만, 가시적으로 크게 화질이 떨어질 수 있는 문제점이 있다. 또한, 이미지 압축률을 적게 하는 경우에는 화질의 저하는 크지 않지만, 데이터의 압축 정도가 미미하다는 문제점이 있다.
따라서, 가시적 화질을 유사화질(즉, 원본 대비 가시적 화질이 육안으로 구분하기 어려운 정도의 화질)의 범위 내로 유지하면서 최대한 압축률을 높일 수 있도록 하기 위한 방법 즉, 화질 대비 압축률을 최적화하는 방법에 대한 연구가 활발히 수행되고 있다.
이와 관련된 종래의 방법은 주로 반복적인(iterative) 압축을 수행함으로써 최적화 압축률을 탐색하는 방식(예컨대, JPEG Mini)을 이용하고 있다. 도 3은 이러한 일 예를 나타낸다.
도 3을 참조하면, 종래의 방식은 주파수 영역으로 변환된 이미지를 소정의 양자화 스케일로 양자화 즉, 블록별 DCT 계수 조정을 수행하는 스텝(S20), 화질 저하가 발생하였는지를 판단하는 스텝(S21), 화질저하가 없다면 다시 양자화 스케일로 블록별 DCT 계수 조정을 수행하는 스텝을 반복적으로 수행하고 있다(S20). 화질 저하가 발생하였는지는 이른바 아티팩트(Artifact) 즉, 유사화질을 벗어나도록 하는 인공적 영상이 발생하였는지를 검사하는 방식이 사용될 수 있다. 이러한 방식에서는 특정 스텝에서 소정의 스케일로 양자화를 수행한 후, 양자화 수행 전 이미지와 수행 후의 이미지 간에 아티팩트가 발생하지 않으면 양자화 스케일을 증가시킨 후 다시 양자화를 수행하는 방식을 사용하거나 또는 양자화가 수행된 블록별 DCT 계수의 값을 소정의 값만큼 줄여본 후 아티팩트가 발생하는지를 판단하는 방식이 이용될 수 있다. 이와 같은 방식으로 반복적인 압축(양자화 스케일의 증가 또는 양자화된 DCT 계수의 조정)을 통해 아티팩트가 발생하면, 이전 스텝까지의 압축된 정보를 인코딩함으로써 압축을 완료할 수 있다(S23).
하지만, 이러한 종래의 압축방식은 압축할 이미지가 복잡하여 손실이 커도 상대적으로 가시적 화질 저하가 적은 이미지인지 또는 이미지가 단순하여 손실이 적어도 상대적으로 가시적 화질 저하가 큰 이미지인지 여부를 고려하지 않고 양자화가 수행되므로 비효율적인 방식일 수 있다. 또한, 일단 압축을 해본 후 다시 압축을 할지 압축을 그만 수행할지를 반복적으로 수행하므로 압축속도가 느릴 수밖에 없다.
또한, 최종 압축결과가 최적의 압축률임을 보장할 수 없는 문제점이 있다. 왜냐하면, 마지막 양자화 스텝 수행결과 아티팩트가 발생하면 이전 양자화 스텝의 결과가 최종 압축결과가 되는데, 이전 양자화 스텝의 결과가 최적화 압축률로 압축되었음을 보장하지 못하기 때문이다.
이러한 문제점을 해결하기 위한 기술적 사상은 본 출원인이 출원한 한국특허출원(출원번호 10-2012-0091873, "적응 이미지 압축시스템 및 그 방법", 이하 '이전출원')에 개시된 바 있다. 이전출원의 명세서에 개시된 기술적 사상은 본 발명의 레퍼런스로 포함되며, 본 명세서의 기재에 포함되는 것으로 취급될 수 있다.
이전출원의 기술적 사상은 종래의 공지된 이미지 압축방식과 달리 이미지의 특성에 따라 가시적 화질을 보장하는 양자화 레벨(level) 또는 스케일을 결정하여 비반복적으로 압축을 수행하는 방식일 수 있다. 즉, 이미지의 특성을 분석하여 유사화질을 유지하는 손실 허용 범위를 결정하고, 그에 따라 미리 압축에 사용될 양자화 스케일을 결정한 후 결정된 양자화 스케일에 상응하는 적응적 양자화 테이블을 생성하여 압축을 수행함으로써 한 번의 압축만으로 유사화질 범위 내에서 압축률을 높일 수 있는 방법이다.
하지만, 이전출원의 기술적 사상은 압축대상 이미지에 대해 하나의 양자화 테이블(이전 출원의 적응 양자화 테이블)을 이용하여 모든 블록별로 양자화를 수행하게 되어서, 상기 압축대상 이미지에 포함된 특정 블록은 다른 블록에 비해 보다 큰 양자화 스케일로 양자화가 수행되어도 문제가 없음에도 불구하고 동일한 양자화 스케일로 압축이 수행되게 된다.
이러한 문제점은 JPEG 표준과 같이 압축대상 이미지에 대해 하나의 양자화 테이블을 이용하도록 정의된 이미지 압축 방식에 공통적으로 발생할 수 있는 문제점일 수 있다. 즉, JPEG 표준과 같이 하나의 양자화 테이블을 이용하여 다수의 블록들을 양자화하는 이미지 압축 방식은 상기 다수의 블록들 각각의 특성(얼마나 압축(양자화)이 되어도 유사화질 범위를 유지하는지와 관련된 특성)을 고려하여 블록들별로 서로 다른 스케일의 압축(양자화)을 수행하지 못하고 다수의 블록들에 대해 획일적으로 압축(양자화)을 수행하게 된다.
따라서 다수의 블록들에 대해 양자화를 수행하기 위해 이용되는 양자화 테이블이 하나라도, 압축대상 이미지에 포함된 다수의 블록들 각각의 특성을 고려하여 블록별로 적응적으로 압축 정도를 달리할 수 있는 기술적 사상이 요구된다. 또한, 이때에도 전술한 바와 같이 블록별로 DCT 계수 조정 또는 양자화 스케일의 조정을 반복적으로 수행하는 것이 아니라, 블록별 특성에 따라 미리 허용되는 한도(유사화질 범위 내에서) 한 번에 압축(양자화)을 수행할 수 있는 기술적 사상 역시 요구된다.
따라서, 본 발명이 이루고자 하는 기술적인 과제는 연속적으로 촬영된 일련의 이미지를 효율적으로 인코딩(압축)할 수 있으면서도, 임의의 이미지에 접근하거나 플레이 백을 용이하게 수행할 수 있는 방법 및 시스템을 제공하는 것이다.
또한, 다른 프레임을 참조하지 않고 인코딩되는 독립 프레임을 인코딩하기 위하여, 압축대상 이미지에 포함된 다수의 블록들에 대해 양자화를 수행하기 위해 이용되는 양자화 테이블이 하나라도, 압축대상 이미지에 포함된 다수의 블록들 각각의 특성을 고려하여 블록별로 적응적으로 압축 정도를 달리할 수 있는 방법 및 시스템을 제공하는 것이다.
또한, 압축(양자화된 DCT 계수의 조정)을 수행한 후 압축된 결과가 유사화질 범위 내인지를 판단하는 과정을 반복적으로 수행하는 것이 아니라, 블록별로 특성을 판단한 후 해당 블록에 적합한 양자화 레벨(level)(또는 양자화된 DCT 계수의 조정 정도)를 결정하여 한번에 압축을 수행하도록 함으로써, 현저히 압축 속도를 개선할 수 있는 방법 및 그 시스템을 제공하는 것이다.
본 발명의 일 측면에 따르면, 복수의 이미지를 인코딩하기 위한 인코딩 시스템 제공방법으로서, (a) 상기 복수의 이미지 중 일부인 제1이미지들 각각을 인트라프레임 인코딩(Intra-Frame Encoding)하여, 상기 제1이미지들 각각에 상응하는 독립 프레임들을 생성하는 단계 및 (b) 상기 복수의 이미지 중 상기 제1이미지를 제외한 나머지 일부인 제2이미지들 각각을 인터프레임 인코딩(Inter-Frame Encoding)하여, 상기 제2이미지들 각각에 상응하는 의존 프레임을 생성하는 단계를 포함하되, 상기 각각의 의존 프레임은, 상기 독립 프레임 중 어느 하나를 직접 참조하여 인코딩되는 것을 특징으로 하는 인코딩 시스템 제공방법이 제공된다.
일 실시예에서, 상기 의존 프레임은, 상기 의존 프레임으로부터 가장 가까운 선행 독립 프레임 또는 상기 의존 프레임으로부터 가장 가까운 후행 독립 프레임 중 어느 하나를 직접 참조하여 인코딩될 수 있다.
일 실시예에서, 상기 의존 프레임은, 상기 선행 독립 프레임 또는 상기 후행 독립 프레임 중 가장 가까운 것을 참조하여 인코딩될 수 있다.
일 실시예에서, 상기 복수의 이미지는, 소정의 시간 간격마다 촬영된 연속 이미지일 수 있다.
일 실시예에서, 상기 (a) 단계는, 상기 제1이미지 각각에 대하여, 상기 인코딩 시스템이, 상기 제1이미지에 포함되는 블록들 중 특정 블록의 양자화를 수행하기 위하여, 상기 특정 블록에 대응되는 블록특성별 양자화 테이블을 확인하는 단계 및 상기 인코딩 시스템이, 상기 특정 블록의 특정 엘리먼트를 양자화하기 위해, 상기 제1이미지에 포함된 블록들의 양자화를 수행할 때 공통적으로 이용되는 공통 양자화 테이블의 상기 특정 엘리먼트에 대응되는 제1엘리먼트의 값과 확인한 상기 특정 엘리먼트에 대응되는 상기 블록특성별 양자화 테이블의 제2엘리먼트의 값을 이용하여 연산하는 단계를 포함할 수 있다.
일 실시예에서, 상기 (a) 단계는, 상기 제1이미지 각각에 대하여, 상기 인코딩 시스템이, 상기 제1이미지에 포함되는 블록들 중 특정 블록의 양자화를 수행하면서 상기 특정 블록에 포함된 각각의 엘리먼트를 상기 제1이미지에 포함된 블록들의 양자화를 수행할 때 공통적으로 이용되는 공통 양자화 테이블을 이용하여 양자화하는 단계 및 상기 인코딩 시스템이, 각각의 엘리먼트들 중 적어도 일부에 대해 선택적으로 상기 각각의 엘리먼트에 대응되는 추가 압축 값을 차감하여 저장하는 단계를 포함하며, 상기 추가 압축 값은, 상기 특정 블록의 특징 값에 기초하여 결정된 상기 특정 블록에 대응되는 블록특성별 양자화 테이블에 기초하여 결정되는 것을 특징으로 할 수 있다.
본 발명의 다른 일 측면에 따르면, 복수의 이미지 중 일부인 제1이미지들 각각이 인트라프레임 인코딩되어 생성된 독립 프레임 및 상기 복수의 이미지 중 상기 제1이미지들을 제외한 나머지 일부인 제2이미지들 각각이 인터프레임 인코딩되어 생성된 의존 프레임을 기록한 기록매체로서, 상기 의존 프레임 각각은, 상기 독립 프레임 중 어느 하나를 직접 참조하여 인코딩된 것을 특징으로 하는 기록매체가 제공된다.
본 발명의 다른 일 측면에 따르면, 상술한 기록매체에 기록된 복수의 프레임을 디코딩하기 위한 디코딩 시스템 제공방법으로서, 상기 복수의 프레임에 포함된 독립 프레임 각각을 인트라프레임 디코딩(Intra-Frame Decoding)하는 단계 및 상기 복수의 프레임에 포함된 의존 프레임 각각에 대하여, 상기 의존 프레임이 참조하는 독립 프레임에 기초하여 상기 의존 프레임을 인터프레임 디코딩(Inter-Frame Decoding)하는 단계를 포함하는 디코딩 시스템 제공방법이 제공된다.
본 발명의 다른 일 측면에 따르면, 상술한 방법을 수행하기 위한 프로그램을 기록한 컴퓨터 판독 가능한 기록매체가 제공된다.
본 발명의 다른 일 측면에 따르면, 복수의 이미지를 인코딩하기 위한 인코딩 시스템으로서, 상기 복수의 이미지 중 일부인 제1이미지들 각각을 인트라프레임 인코딩(Intra-Frame Encoding)하여, 상기 제1이미지들 각각에 상응하는 독립 프레임을 생성하는 인트라프레임 인코딩모듈 및 상기 복수의 이미지 중 상기 제1이미지를 제외한 나머지 일부인 제2이미지들 각각을 인터프레임 인코딩(Inter-Frame Encoding)하여, 상기 제2이미지들 각각에 상응하는 의존 프레임을 생성하는 인터프레임 인코딩모듈을 포함하되, 상기 각각의 의존 프레임은, 상기 독립 프레임 중 어느 하나를 직접 참조하여 인코딩되는 것을 특징으로 하는 인코딩 시스템이 제공된다.
일 실시예에서, 상기 인트라프레임 인코딩모듈은, 상기 제1이미지에 포함된 블록들의 양자화를 수행할 때 공통적으로 이용되는 공통 양자화 테이블 및 상기 제1이미지에 포함되는 블록들 중 특정 블록에 대응되는 블록특성별 양자화 테이블을 정의하는 양자화 테이블 모듈 및 상기 특정 블록의 특정 엘리먼트를 양자화하기 위해, 상기 특정 엘리먼트에 대응되는 상기 양자화 테이블의 제1엘리먼트의 값과 상기 양자화 테이블 모듈에 의해 정의되는 상기 특정 엘리먼트에 대응되는 상기 블록특성별 양자화 테이블의 제2엘리먼트의 값을 이용하여 연산하는 처리모듈을 포함할 수 있다.
일 실시예에서, 상기 인트라프레임 인코딩모듈은, 상기 제1이미지에 포함된 블록들의 양자화를 수행할 때 공통적으로 이용되는 공통 양자화 테이블 및 상기 제1이미지에 포함되는 블록들 중 특정 블록에 대응되는 블록특성별 양자화 테이블을 정의하는 양자화 테이블 모듈 및 상기 참조 프레임에 포함되는 블록들 중 특정 블록의 양자화를 수행하면서 상기 특정 블록에 포함된 각각의 엘리먼트를 상기 양자화 테이블을 이용하여 양자화하고, 양자화된 각각의 엘리먼트들 중 적어도 일부에 대해 선택적으로 상기 각각의 엘리먼트에 대응되는 추가 압축 값을 차감하여 저장하는 처리모듈을 포함하며, 상기 추가 압축 값은, 상기 특정 블록의 특징 값에 기초하여 상기 양자화 테이블 모듈에 의해 결정된 상기 특정 블록에 대응되는 블록특성별 양자화 테이블에 기초하여 결정되는 것을 특징으로 할 수 있다.
본 발명의 다른 일 측면에 따르면, 상술한 기록매체에 기록된 복수의 프레임을 디코딩하기 위한 디코딩 시스템으로서, 상기 복수의 프레임에 포함된 독립 프레임 각각을 인트라프레임 디코딩(Intra-Frame Decoding)하는 인트라프레임 디코딩모듈 및 상기 복수의 프레임에 포함된 의존 프레임 각각에 대하여, 상기 의존 프레임이 참조하는 독립 프레임에 기초하여 상기 의존 프레임을 인터프레임 디코딩(Inter-Frame Decoding)하는 인터프레임 디코딩모듈을 포함하는 디코딩 시스템이 제공된다.
본 발명의 기술적 사상에 따르면 인코딩된 일련의 프레임은 해당 프레임이 의존 프레임인 경우에도 한 번의 참조로 디코딩이 가능하다. 따라서, 의존 프레임을 디코딩하는데 소요되는 오버헤드를 현저히 줄일 수 있는 효과가 있다.
또한, 독립 프레임을 생성함에 있어, 각각의 압축대상 이미지에 이용되는 하나의 양자화 테이블을 이용하여 블록별로 양자화를 수행하면서도, 블록 별 특성이 고려되어 적어도 하나의 블록에 대해서는 상기 양자화 테이블을 이용하여 양자화를 수행하는 것에 비해 보다 큰 양자화 스케일(또는 압축정도)로 압축이 수행됨으로써 보다 높은 압축률이 제공되면서도 유사화질 범위 내의 압축이미지가 제공될 수 있는 효과가 있다. 또한, 압축대상 이미지에 포함된 소정의 블록에 대해 DCT 계수의 조정이 수행되는 경우에도, 반복적 압축 후의 화질 검사를 수행하는 것이 아니라 블록별 특성에 따라 간단한 연산 만으로도 한 번의 양자화를 통해 압축(DCT 계수의 조정)이 완료되므로, 압축 속도의 현저한 개선이 존재하는 효과가 있다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 간단한 설명이 제공된다.
도 1은 종래의 동영상 인코딩 기술에 의해 인코딩된 각 프레임간의 참조관계를 나타내는 도면이다.
도 2는 종래의 JPEG 압축 방식을 개략적으로 설명하기 위한 도면이다.
도 3은 종래의 반복적인 압축 방식을 개략적으로 설명하기 위한 도면이다.
도 4는 본 발명의 일 실시예에 따른 이미지 인코딩 시스템 및 디코딩 시스템의 개략적인 구성 및 동작을 나타내는 도면이다.
도 5는 본 발명의 일 실시예에 따른 이미지 인코딩 시스템에 의해 인코딩된 각 프레임간의 참조관계를 나타내는 도면이다.
도 6은 본 발명의 실시 예에 따른 인트라프레임 인코딩 모듈의 개략적인 구성을 나타내는 도면이다.
도 7은 본 발명의 실시 예에 따른 인트라프레임 인코딩 모듈에서 수행되는 블록특성을 이용한 적응 이미지 압축방법에 따라 양자화된 DCT 계수의 조정방식을 설명하기 위한 도면이다.
도 8은 본 발명의 실시 예에 따른 인트라프레임 인코딩 모듈에서 수행되는 압축대상 이미지의 블록 별 이미지 특징 값 판단방법을 설명하기 위한 도면이다.
도 9는 본 발명의 실시 예에 따른 인트라프레임 인코딩 모듈에서 수행되는 압축대상 이미지의 블록 별 특성 판단방식을 설명하기 위한 도면이다.
본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 바람직한 실시 예를 예시하는 첨부 도면 및 첨부 도면에 기재된 내용을 참조하여야만 한다.
또한, 본 명세서에 있어서는 어느 하나의 구성요소가 다른 구성요소로 데이터를 '전송'하는 경우에는 상기 구성요소는 상기 다른 구성요소로 직접 상기 데이터를 전송할 수도 있고, 적어도 하나의 또 다른 구성요소를 통하여 상기 데이터를 상기 다른 구성요소로 전송할 수도 있는 것을 의미한다.
반대로 어느 하나의 구성요소가 다른 구성요소로 데이터를 '직접 전송'하는 경우에는 상기 구성요소에서 다른 구성요소를 통하지 않고 상기 다른 구성요소로 상기 데이터가 전송되는 것을 의미한다.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시 예를 설명함으로써, 본 발명을 상세히 설명한다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다.
도 4는 본 발명의 일 실시예에 따른 이미지 인코딩 시스템 및 디코딩 시스템의 개략적인 구성 및 동작을 나타내는 도면이다.
도 4를 참조하면, 본 발명의 일 실시예에 따른 이미지 인코딩 시스템(10; 이하, '인코딩 시스템'이라고 함)은 복수의 원본 이미지(1)를 각각 인코딩하여 각 이미지에 상응하는 복수의 프레임(2)을 생성할 수 있다.
상기 복수의 원본 이미지(1)는 일정 시간 간격마다 연속적으로 촬영된 연속 촬영 이미지일 수 있다. 본 명세서에서 이미지라고 함은 인코딩 전의 원본 이미지를 의미할 수 있다. 상기 복수의 원본 이미지(1)는 RGB 로우 포맷(RGB raw format)의 이미지일 수도 있으며, JPEG 등 다양한 이미지 압축 코덱에 의해 압축된 이미지일 수 있다. 한편, 이하에서 프레임이라 그에 상응하는 원본 이미지를 본 발명의 기술적 사상에 따라 인코딩한 결과물을 의미할 수 있다.
상기 인코딩 시스템(10)은 생성된 복수의 프레임(2)을 소정의 기록매체에 저장할 수 있다. 생성된 프레임이 저장되는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다.
한편, 상기 이미지 디코딩 시스템(20; 이하, '디코딩 시스템'이라고 함)은 상기 복수의 프레임(2)을 디코딩하여 각 프레임에 상응하는 이미지(3)를 복원할 수 있다. 상기 인코딩 시스템(10)은 무손실 압축기법을 이용하여 원본 이미지(1)를 인코딩할 수도 있지만, 실시예에 따라 손실 압축기법을 이용할 수도 있는데, 이 경우 상기 디코딩 시스템(10)에 의해 디코딩되는 이미지(3)의 비트스트림은 그에 상응하는 원본 이미지의 비트 스트림과 동일하지 않을 수 있다.
상기 인코딩 시스템(10)은 인트라프레임 인코딩모듈(100) 및 인터프레임 인코딩모듈(200)을 포함할 수 있으며, 상기 디코딩 시스템(20)은 인트라프레임 디코딩모듈(300) 및 인터프레임 디코딩모듈(400)을 포함할 수 있다.
본 발명의 실시예에 따라서는, 상술한 구성요소들 중 일부 구성요소는 반드시 본 발명의 구현에 필수적으로 필요한 구성요소에 해당하지 않을 수도 있으며, 또한 실시예에 따라 상기 인코딩 시스템(10) 또는 상기 디코딩 시스템(20)은 이보다 더 많은 구성요소를 포함할 수도 있음은 물론이다. 예를 들어, 상기 인코딩 시스템(10) 또는 상기 디코딩 시스템(20)은 소정의 제어모듈(미도시)을 포함할 수 있으며, 상기 제어모듈은 상기 인코딩 시스템(10) 또는 디코딩 시스템(10)에 포함된 다른 구성들(예를 들면, 상기 인트라프레임 인코딩모듈(100) 및/또는 인터프레임 인코딩모듈(200), 또는 상기 인트라프레임 디코딩모듈(300) 및/또는 인터프레임 디코딩모듈(300) 등)의 기능 및/또는 리소스를 제어할 수 있다.
상기 이미지 인코딩 시스템(10) 및/또는 상기 이미지 디코딩 시스템(20)은 소정의 데이터 프로세싱 장치(예컨대, 컴퓨터, 모바일 단말기 등)에 설치되어, 상기 데이터 프로세싱 장치에 구비된 하드웨어 및 본 발명의 기술적 사상을 구현하도록 정의되는 소정의 소프트웨어 코드와 유기적으로 결합되는 구성을 의미할 수 있다.
본 명세서에서 '모듈'이라 함은, 본 발명의 기술적 사상을 수행하기 위한 하드웨어 및 상기 하드웨어를 구동하기 위한 소프트웨어의 기능적, 구조적 결합을 의미할 수 있다. 예컨대, 상기 '모듈'은 소정의 코드와 상기 소정의 코드가 수행되기 위한 하드웨어 리소스(resource)의 논리적인 단위를 의미할 수 있으며, 반드시 물리적으로 연결된 코드를 의미하거나, 한 종류의 하드웨어를 의미하는 것은 아님은 본 발명의 기술분야의 평균적 전문가에게는 용이하게 추론될 수 있다.
구현 예에 따라, 상기 상기 이미지 인코딩 시스템(10) 및/또는 상기 이미지 디코딩 시스템(20)은 어느 하나의 물리적 장치가 아니라, 복수의 물리적 장치에 분산되어 설치될 수도 있다. 필요에 따라, 상기 이미지 인코딩 시스템(10) 및/또는 상기 이미지 디코딩 시스템(20)에 포함된 각각의 구성들이 독립적인 물리적 장치들로 구현되면, 이러한 물리적 장치들이 유무선 네트워크를 통해 유기적으로 결합되어 구현되어 본 발명의 기술적 사상에 따른 상기 이미지 인코딩 시스템(10) 및/또는 상기 이미지 디코딩 시스템(20)을 구현할 수도 있다.
상기 인트라프레임 인코딩모듈(100)은 상기 복수의 원본 이미지(1) 중 적어도 일부인 제1이미지들 각각을 인트라프레임 인코딩 하여, 상기 제1이미지 각각에 상응하는 독립 프레임을 생성할 수 있다.
특정 이미지를 인트라프레임 인코딩한다고 함은, 다른 프레임을 참조하지 않고, 상기 특정 이미지 내에 포함된 정보만을 이용하여 인코딩함을 의미할 수 있으며, 상기 인트라프레임 인코딩모듈(100)은 예를 들어, JPEG 압축 기법 등을 이용하여, 특정 이미지를 인트라프레임 인코딩할 수 있다. 따라서, 인트라프레임 인코딩된 독립 프레임은 다른 프레임을 참조하지 않고 그 안에 포함된 정보만을 이용하여 디코딩될 수 있는 프레임일 수 있다.
한편, 상기 인트라프레임 인코딩모듈(100)은 더욱 효율적으로 이미지를 인코딩하기 위하여, 후술하는 바와 같이 해당 이미지 내의 블록특성을 이용할 수 있다.
상기 인터프레임 인코딩모듈(200)은 상기 복수의 원본 이미지(1) 중 상기 제1이미지를 제외한 나머지 일부인 제2이미지들 각각을 인터프레임 인코딩하여, 상기 제2이미지들 각각에 상응하는 의존 프레임을 생성할 수 있다.
특정 이미지를 인터프레임 인코딩한다고 함은, 상기 특정 이미지의 주변 이미지 또는 이미 인코딩된 주변 프레임(즉, 참조 프레임)을 참조하여 인코딩하는 것을 의미할 수 있다. 따라서, 인터프레임 인코딩되는 의존 이미지는 그 자체에 포함된 정보뿐만 아니라 참조 프레임에 포함된 정보를 함께 이용하여야 디코딩될 수 있다.
특히, 본 발명의 일 실시예에 따른 상기 인터프레임 인코딩모듈(200)은 상기 인트라프레임 인코딩모듈(100)에 의해 생성된 독립 프레임을 직접 참조하여 상기 특정 이미지를 인터프레임 인코딩할 수 있다. 소정의 독립 프레임을 직접 참조하여 인코딩한다고 함은 상기 독립 프레임을 제외한 나머지 주변 프레임은 참조하지 않고, 상기 독립 프레임만을 참조하여 인코딩함을 의미할 수 있다. 즉, MPEG-1 등과 같은 통상적인 동영상 인코딩 기법에서는 다른 프레임에 의존적인 P 프레임을 인코딩할 때, 바로 이전에 위치하는 선행 P 프레임 또는 선행 I 프레임을 참조하지만, 본 발명이 일 실시예에 따른 인터프레임 인코딩모듈(200)은 이와 달리, 모든 의존 프레임이 독립 프레임을 참조하여 인코딩되도록 할 수 있다.
상기 인터프레임 인코딩모듈(200)은 움직임 예측이나 블록 매칭과 같은 MPEG-1 등의 통상적인 동영상 인코딩 기법에서 이용되는 인트라프레임 인코딩 기법을 모두 수행할 수 있다.
일 실시예에서, 상기 인터프레임 인코딩모듈(200)은 모든 의존 프레임에 대하여, 생성하고자 하는 의존 프레임으로부터 가장 가까운 선행 독립 프레임을 직접 참조할 수 있다. 다른 일 실시예에서는 의존 프레임에 대하여, 생성하고자 하는 의존 프레임과 가장 가까운 후행 독립 프레임을 직접 참조할 수도 있다. 또한 다른 일 실시예에서, 상기 인터프레임 인코딩모듈(200)은 상기 선행 독립 프레임 또는 상기 후행 독립 프레임 중 가장 가까운 것을 참조할 수도 있다. 상술한 세 개의 실시예 중 뒤의 두 실시예에서, 상기 인코딩 시스템(10)은 모든 독립 프레임을 먼저 인코딩한 후에 의존 프레임을 인코딩할 수 있다. 첫 번째 실시예에는 이와 마찬가지로 모든 독립 프레임을 먼저 인코딩할 수도 있지만, 이와 달리 프레임 순서대로 인코딩할 수도 있다.
한편, 특정 프레임과 다른 프레임간의 거리가 가장 가깝다고 함은, 상기 특정 프레임이 촬영된 시간과 상기 다른 프레임이 촬영된 시간의 차이가 가장 작거나, 프레임의 순번의 차이가 가장 작음을 의미할 수 있다.
도 5는 본 발명의 일 실시예에 따른 이미지 인코딩 시스템에 의해 인코딩된 각 프레임간의 참조관계를 나타내는 도면이다.
도 5(a) 및 도 5(b)에 도시된 복수의 프레임은 도 1과 마찬가지로 14개의 프레임을 포함하며, 도 1과 유사하게 1번 프레임, 6번 프레임 및 14번 프레임이 독립 프레임이고, 나머지 프레임은 의존 프레임인 경우를 도시하고 있다.
도 5(a)의 예는 모든 의존 프레임이 가장 가까운 선행 독립 프레임을 참조하는 실시예에 의해 구성되는 일련의 프레임을 나타낸다. 따라서, D2 내지 D5은 가장 가까운 선행 독립 프레임인 첫 번째 프레임(I1)을 참조하며, D7 및 D8은 가장 가까운 선행 독립 프레임인 여섯 번째 프레임(I6)을 참조하며, D10 내지 D13은 가장 가까운 선행 독립 프레임인 아홉 번째 프레임(I9)을 참조할 수 있다.
도 5(b)는 모든 의존 프레임이 가장 가까운 독립 프레임을 참조하는 실시예에 의해 구성되는 일련의 프레임을 나타낸다. D2 및 D3의 경우 가장 가까운 독립 프레임이 선행 프레임 I1이므로 I1을 참조하지만, D4 및 D5의 경우에는 가장 가까운 프레임이 후행 프레임 I6이므로 I6를 참조할 수 있다. 나머지 의존 프레임도 가장 가까운 독립 프레임을 참조함을 확인할 수 있다.
이와 같이, 본 발명의 일 실시예에 따라 인코딩된 일련의 프레임은 해당 프레임이 의존 프레임인 경우에도 한 번의 참조로 디코딩이 가능하다. 따라서, 의존 프레임을 디코딩하는데 소요되는 오버헤드를 현저히 줄일 수 있는 효과가 있다.
한편, 본 발명의 일 실시예에 따른 인코딩 시스템(10)은 2-패스 인코딩을 수행할 수 있다. 즉, 상기 인코딩 시스템(10)은 상술한 바와 같은 인트라프레임 인코딩 및 인터프레임 인코딩을 수행하기 전에 원본 이미지들을 검사하여 상기 원본 이미지들 중 독립 프레임으로 인코딩될 이미지를 결정하고, 이후 상술한 인트라프레임 인코딩 및 인터프레임 인코딩을 수행할 수 있다. 상기 인코딩 시스템(10)은 미리 결정된 일정 순번에 해당하는 이미지를 독립 프레임으로 인코딩하고 나머지 프레임은 의존 프레임으로 인코딩할 수도 있지만, 구현 예에 따라서는 특정 이미지와 상기 특정 이미지의 가장 가까운 선행 독립 프레임과의 차이가 일정 기준을 넘어서는 경우에 상기 특정 이미지가 독립 프레임으로 인코딩되도록 결정할 수도 있다.
한편, 상기 인코딩 시스템(10)은 인코딩된 각 의존 프레임에 해당 의존 프레임이 참조하는 독립 프레임에 관한 정보(예를 들면, 참조하는 독립 프레임의 순번 또는 파일 이름 등)를 저장할 수 있다. 혹은 상기 인코딩 시스템(10)은 각 의존 프레임이 참조하는 독립 프레임의 정보가 저장된 별도의 메타 데이터를 생성할 수도 있다.
결국 본 발명의 기술적 사상에 의하면, 복수의 이미지들 각각을 모두 독립적으로 인코딩(예컨대, JPEG 압축 등)하여 저장하는 것에 비해, 인터프레임 인코딩되는 프레임의 용량은 줄어드는 효과가 있다. 그러면서도 한 번의 참조만으로 항상 특정 프레임이 디코딩됨을 보장할 수 있으므로, 빠른 시간내에 랜덤 억세스(다이렉트 억세스) 및/또는 플레이 백 등이 구현될 수 있는 효과가 있다.
일 예에 의하면, 본 발명의 기술적 사상에 따라 복수의 이미지들이 인코딩되면 상기 복수의 이미지들은 복수의 독립 프레임 및 복수의 의존 프레임으로 인코딩될 수 있다. 또한 어느 두 개의 독립 프레임들 사이에는 일정한 개수의 의존 프레임이 존재하도록 구현될 수 있다.
예컨대, 도 5c에 도시된 바와 같이, 두 개의 독립 프레임들 사이에 k(k는 2보다 큰 자연수, 예컨대, 4)개의 의존 프레임이 위치하도록 본 발명의 기술적 사상에 따른 인코딩 방법이 구현되는 경우, 임의의 프레임에 접근(디코딩)하기 위한 평균 시간은 I1부터 D5까지의 프레임 중 어느 하나의 프레임에 접근하는데 걸리는 평균 시간과 동일할 수 있다.
이러한 경우, 독립프레임(I1)이 디코딩되는데 걸리는 시간을 T(I)라고 하고, 의존 프레임이 디코딩된 독립 프레임을 참조하여 디코딩되는데 걸리는 시간을 T(D)라고 하면, 다섯 개의 프레임(I1 ~ D5) 각각이 임의로 선택되었을 때 디코딩되는 시간은 각각 T(I), T(I)+T(D), T(I)+T(D), T(I)+T(D), T(I)+T(D)가 될 수 있다.
그러면 평균적으로 임의의 프레임에 접근했을 때의 디코딩 시간은 T(I)+4/5T(D)가 된다. 이를 일반화하여 표시하면, 본 발명의 기술적 사상에 따라 인코딩이 수행되었을 때 임의의 프레임의 평균 디코딩 시간은 T(I)+(k-1)/k *T(D)되며, 일반적으로 T(I) >> T(D)이므로, 실질적으로 평균 디코딩 시간은 T(I)에 가까울 수 있다. 즉, 모든 이미지를 인코딩 했을 때의 평균 디코딩 시간인 T(I)와 큰 차이가 나지 않음을 알 수 있다.
다만 k를 작은 수로 선택하는 경우에는 독립 프레임의 수가 많음을 의미하며 이러한 경우에는 독립 프레임의 수가 적은 경우에 비해 용량 감축의 효과가 낮아지므로, 필요에 따라 적절한 k의 값을 결정할 수 있다.
물론, 두 개의 독립 프레임 사이의 의존 프레임의 수가 도 5b와 같이 다를 수도 있음은 물론이다.
한편, 일 실시예에서, 상기 인트라프레임 인코딩모듈(100)은 각 독립 프레임을 생성하기 위하여, 해당 프레임에 상응하는 압축 대상 이미지의 블록특성을 이용할 수 있는데, 이하에서 이에 대하여 도 6 내지 도 9를 참조하여 상세히 설명하기로 한다.
도 6은 본 실시 예에 따른 인트라프레임 인코딩 모듈(100)의 개략적인 구성을 나타내는 도면을 나타낸다.
도 6을 참조하면, 본 실시 예에 따라 블록특성을 이용하는 인트라프레임 인코딩 모듈(100)은 처리모듈(110) 및 양자화 테이블 모듈(120)을 포함한다. 상기 인트라프레임 인코딩 모듈 (100)은 특성 판단모듈(130)을 더 포함할 수 있다.
또한, 도 6에는 도시되지 않았지만, 상기 인트라프레임 인코딩 모듈 (100)에는 소정의 타입 컨버터(미도시), 인코더(미도시) 등이 더 포함될 수 있음은 본 발명의 기술분야의 평균적 전문가는 용이하게 추론할 수 있을 것이다.
상기 인트라프레임 인코딩 모듈 (100)은 소정의 압축(인코딩) 대상 이미지를 입력으로 수신할 수 있다. 그러면 본 발명의 기술적 사상에 따른 블록특성을 이용한 적응 이미지 압축방법에 따라 상기 압축 대상 이미지를 압축한 후 인코딩된 프레임을 출력할 수 있다.
상기 양자화 테이블 모듈(120)은 상기 인트라프레임 인코딩 모듈(100)이 인코딩하는 압축대상 이미지의 양자화 테이블 모듈(120)을 정의할 수 있다. 또한, 상기 양자화 테이블 모듈(120)은 상기 압축대상 이미지에 포함된 블록 별로 대응하는 블록특성 별 양자화 테이블을 정의할 수 있다. 양자화 테이블 및/또는 블록특성 별 양자화 테이블을 정의한다고 함은, 미리 상기 적응 이미지 압축시스템(100)에 포함된 소정의 저장장치에 상기 양자화 테이블 및/또는 상기 블록특성 별 양자화 테이블을 생성하여 저장하고 있거나, 또는 필요 시에 상기 양자화 테이블 및/또는 상기 블록특성 별 양자화 테이블을 생성할 수 있는 소정의 알고리즘 또는 정보들을 저장하고 있다가 필요 시에 생성하는 것을 의미할 수 있다.
상기 양자화 테이블 모듈(120)이 정의하는 상기 양자화 테이블은 압축대상 이미지에 따라 적응적으로 정의될 수도 있고, JPEG 표준에서 정의되는 표준 양자화 테이블일 수도 있다.
또한, 상기 양자화 테이블 모듈(120)은 블록 별로 블록특성 별 양자화 테이블을 정의할 수 있다. 상기 블록특성 별 양자화 테이블은 상기 압축대상 이미지에 포함되는 블록들 모두에 대해 정의될 수도 있고, 구현 예에 따라서는 상기 블록들 중 일부의 블록에 대해서만 정의될 수도 있다. 상기 일부의 블록은 예컨대, 상기 양자화 테이블보다 양자화 스케일이 큰 블록특성 별 양자화 테이블에 의해 양자화가 수행되어도 유사화질 범위를 보장할 수 있는 블록일 수 있다. 즉, 상기 양자화 테이블에 의해 양자화가 수행된 후에도 더 압축(즉, DCT 계수의 조정)이 수행되어도 무방한(유사화질 범위일 수 있는) 블록에 대해서만 상기 양자화 테이블 모듈(120)은 블록특성 별 양자화 테이블을 정의할 수도 있다. 또한 더 압축이 수행된다고 함은, 블록에 포함된 DCT 계수들(즉, 블록의 엘리먼트들) 중 적어도 하나의 계수(엘리먼트)에 대해서 조정(양자화된 DCT 계수의 값을 낮춤)이 수행되는 경우를 포함하는 의미로 정의될 수 있다.
상기 양자화 테이블 모듈(120)은 상기 압축대상 이미지에 포함된 블록들 각각에 대한 특징 값에 기초하여 블록들 각각의 블록특성 별 양자화 테이블을 정의할 수 있다. 상기 특징 값은 해당 블록이 얼마나 양자화가 수행되어도 유사화질을 보장할 수 있는지를 판단할 수 있는 기준이 되는 값일 수 있다. 이러한 특징 값은 상기 특성 판단모듈(130)에 의해 판단될 수 있다.
상기 특성 판단모듈(110)은 상기 적응 이미지 압축시스템(100)으로 입력되는 압축대상 이미지에 포함되는 블록들 중 적어도 하나의 특성을 판단할 수 있다. 즉, 상기 압축대상 이미지의 포함된 블록이 복잡한 이미지인지 단순한 이미지인지 등을 나타내는 복잡도, 화질, 종류(그라데이션(gradation), 스토롱 에지(strong edge), 텍스쳐(texture) 등) 등 압축과 관련된 특성을 판단할 수 있다. 이러한 블록별 특성은 상기 적응 이미지 압축시스템(100)이 손실 압축을 수행하기 때문에 고려되어야 할 특성일 수 있다. 왜냐하면, 상기 압축대상 이미지는 그 특성에 따라 일정 정도의 정보의 손실이 되어도 가시적 화질에는 큰 영향이 없는 이미지일 수도 있고, 상기 일정 정도의 정보의 손실이 있는 경우에는 가시적 화질에 큰 영향이 존재하는 이미지일 수도 있기 때문이다.
따라서, 본 발명의 기술적 사상에 따르면, 상기 특성 판단모듈(130)에 의해 소정의 블록의 특징 값이 판단되면, 상기 블록에 대응되는 블록특성별 양자화 테이블이 정의될 수 있다. 블록특성 별 양자화 테이블이 정의된다고 함은, 상기 블록특성 별 양자화 테이블에 포함되는 각각의 엘리먼트의 값이 정의됨을 의미할 수 있다. 결국, 블록특성 별 양자화 테이블은 해당 블록의 특성에 따라 양자화가 수행되어도 유사화질 범위 내라고 판단되는 양자화 정도의 최대치에 상응하는 양자화 테이블을 의미할 수 있다.
이러한 블록특성 별 양자화 테이블은 블록 별 특징 값을 어떻게 정의하는지 여부에 따라 소정의 방식으로 정의될 수 있다. 또한, 특징 값이 판단되면 판단된 특징값에 대응되는 블록특성 별 양자화 테이블이 실험적으로 미리 결정되어 있을 수 있다.
이론적으로는 압축대상 이미지의 모든 블록 별로 대응되는 블록특성 별 양자화 테이블에 따라 양자화를 수행하면 높은 압축률을 획득할 수 있다. 하지만, 소정의 이미지 압축방식(예컨대, JPEG)은 하나의 압축대상 이미지에 대해서는 동일한 양자화 테이블로 양자화를 수행하여야 하도록 정의되어 있을 수 있다. 따라서, 이러한 경우에는 이전출원에 개시된 바와 같이 전체 블록들에 적용될 양자화 테이블을 적응적으로 적절하게 선택함으로써 압축률을 높이는 방식이 채택될 수 있다.
하지만, 이처럼 전체 블록들에 적용될 양자화 테이블이 적절히 정의된다고 하더라도, 압축대상 이미지에는 다른 블록들에 비해 복잡도 등이 높아서 상기 양자화 테이블로 양자화를 수행한 후에 추가적으로 압축(양자화 스케일의 증가 또는 DCT 계수의 조정)이 수행되어도 유사화질이 유지될 수 있는 특정 블록이 적어도 하나 존재할 수 있다. 즉, 상기 특정 블록에 대응하는 블록특성 별 양자화 테이블의 양자화 스케일은 압축대상 이미지 전체에 적용되는 양자화 테이블에 비해 클 수 있다. 따라서 상기 특정 블록은 더 압축이 수행되어도 유사화질을 유지할 수 있는 블록일 수 있다.
그러므로 본 발명의 기술적 사상은 압축대상 이미지의 블록 별 양자화에 이용되는 전체 양자화 테이블을 이용하여 양자화가 수행되는 경우에도, 블록 별 특성이 고려되어 특정 블록에 대해서는 상기 전체 양자화 테이블로 양자화를 수행한 것에 비해 결과적으로 보다 높은 스케일의 양자화(보다 높은 압축)가 수행될 수 있는 기술적 사상을 제공한다.
이를 위해 상기 처리모듈(110)은 압축대상 이미지에 포함되는 블록 별로 상기 압축대상 이미지 전체에 적용되는 양자화 테이블을 이용하여 양자화를 수행할 수 있다. 양자화를 수행한다고 함은 블록 별 DCT 계수들(엘리먼트들)을 양자화 테이블을 이용하여 양자화하여 양자화된 값을 연산하는 과정을 의미할 수 있다. 이러한 과정을 수행하면서, 상기 처리모듈(110)은 상기 압축대상 이미지에 포함된 특정 블록의 적어도 하나의 엘리먼트(DCT 계수)에 대해서는 상기 양자화 테이블을 이용하여 양자화한 후에도 추가로 압축을 수행할 수 있다. 추가로 압축을 수행한다고 함은 소정의 상기 양자화 테이블을 이용하여 양자화된 값을 그대로 최종 결과 값으로 이용하는 것이 아니라, 상기 양자화된 값에서 소정의 추가 압축 값을 뺀 값을 최종 결과 값으로 특정하는 것을 의미할 수 있다. 이때 상기 추가 압축 값은 상기 특정 블록에 대응되는 블록특성 별 양자화 테이블에 기초하여 결정되는 값일 수 있다.
상기 처리모듈(110)은 양자화 테이블 모듈(120)로부터 상기 특정 블록에 대응되는 블록특성별 양자화 테이블에 대한 정보를 수신하여, 상기 추가 압축 값을 연산할 수 있다. 그리고 연산된 추가 압축 값을 이용하여, 상기 양자화 테이블을 이용하여 양자화된 값을 조정하여 추가로 압축을 수행할 수 있다. 이러한 추가 압축은 상기 특정 블록의 엘리먼트 별로 수행될 수 있다.
일 실시 예에 의하면, 상기 처리모듈(110)은 압축대상 이미지에 포함된 블록별로 양자화 테이블을 이용하여 양자화를 수행하면서, 현재 양자화를 수행하는 블록이 추가 압축을 수행할 블록인지를 판단할 수도 있다. 추가 압축을 수행할 블록인지 여부는 상기 블록의 특징 값에 기초하여 판단될 수 있다. 상기 특징값은 상기 블록의 양자화 스케일에 상응하는 값이므로, 상기 블록의 특징 값에 상응하는 양자화 스케일이 상기 양자화 테이블의 양자화 스케일보다 큰 경우에는 상기 처리모듈(110)은 상기 블록을 추가 압축을 수행할 블록으로 판단할 수도 있다. 물론, 다른 실시 예에 의하면 상기 처리모듈(110)은 양자화를 수행하는 블록이 추가 압축이 가능한지 여부를 별도로 판단하지 않고, 상기 블록들에 포함된 엘리먼트들 각각에 대해 추가 압축 가능한지 여부를 판단할 수도 있다. 엘리먼트들 각각이 추가 압축이 가능한지 여부는, 특정 블록에 포함된 특정 엘리먼트(DCT 계수)에 대응되는 양자화 테이블의 제1엘리먼트의 값이 상기 특정 엘리먼트에 대응되는 블록특성별 양자화 테이블의 제2엘리먼트의 값보다 작은 경우일 수 있다. 즉, 블록특성별 양자화 테이블의 제2엘리먼트의 값이 더 큰 경우에는, 상기 양자화 테이블로 양자화가 수행되면 상기 특정 엘리먼트는 제2엘리먼트로 양자화가 수행되어도 되지만 제2엘리먼트의 값보다 작은 제1엘리먼트의 값으로 양자화가 수행되는 것을 의미할 수 있다.
따라서, 이러한 경우에는 상기 처리모듈(110)은 상기 특정 엘리먼트에 대해서는 제1엘리먼트로 양자화된 값에서 소정의 추가 압축 값을 뺀 값을 최종 양자화 결과 값으로 연산함으로써 상기 특정 엘리먼트에 대해서 추가 압축을 수행할 수 있다.
본 발명의 기술적 사상에 따라 상기 추가 압축 값을 판단하는 방법의 일 예는 도 7에 도시된다.
도 7은 본 발명의 실시 예에 따른 인트라프레임 인코딩 모듈(100)에서 수행되는 블록특성을 이용한 적응 이미지 압축방법에 따라 양자화된 DCT 계수의 조정을 수행하는 방식을 설명하기 위한 도면이다.
도 7을 참조하면, 상기 양자화 테이블 모듈(120)은 도 7에 도시된 바와 같이 압축대상 이미지 전체에 이용되는 양자화 테이블(1)을 정의할 수 있다. 상기 양자화 테이블은 블록이 8ㅧ8 픽셀로 구분되는 경우, q0 ~ q63의 엘리먼트들을 포함할 수 있다. 상기 양자화 테이블(1)은 상기 압축대상 이미지가 JPEG인 경우, JPEG 표준에서 정의되는 표준 양자화 테이블일 수도 있다. 또는 상기 양자화 테이블(1)은 이전출원에서 개시된 바와 같이 상기 압축대상 이미지에 포함된 블록들 각각의 특징 값에 기초하여 결정되는 상기 압축대상 이미지 전체의 특성에 따라 적응적으로 생성될 수도 있다.
한편, 상기 양자화 테이블 모듈(120)은 특정 블록의 블록특성별 양자화 테이블(2)을 도 4에 도시된 바와 같이 정의할 수 있다. 상기 블록특성별 양자화 테이블(2)은 상기 특정 블록의 특징값이 특성 판단모듈(130)에 의해 판단되면, 판단된 특징값에 따라 결정될 수 있다. 상기 양자화 테이블 모듈(120)은 특성 판단모듈(130)에 의해 판단되는 특징값에 상응하는 블록특성별 양자화 테이블(2)에 대한 정보를 미리 저장하고 있거나, 적어도 상기 블록특성별 양자화 테이블(2)을 생성할 수 있는 소정의 정보들을 저장하고 있을 수 있다. 상기 블록특성별 양자화 테이블(2) 역시 도 4에 도시된 바와 같이 q'0 ~ q'63의 엘리먼트들을 포함할 수 있다.
그러면, 상기 처리모듈(110)은 특정 블록에 대해 상기 양자화 테이블(1)을 이용하여 양자화를 수행할 수 있다. 양자화는 상기 특정 블록에 포함되는 각각의 엘리먼트들을, 각각의 엘리먼트들에 대응되는 상기 양자화 테이블(1)의 엘리먼트들로 나누어 몫을 연산하는 과정을 통해 수행될 수 있다. 상기 처리모듈(110)은 특정 블록의 특정 엘리먼트(qi(0≤i≤63)에 대응되는 DCT 계수)에 대해 상기 양자화 테이블(1)에 포함된 제1엘리먼트(qi)을 이용하여 우선 양자화를 수행할 수 있다. 그리고 상기 특정 엘리먼트가 추가 압축이 가능한지를 판단할 수 있다. 추가 압축이 가능한지는 상기 제1엘리먼트(qi)가 상기 제1엘리먼트(qi)에 대응되는 상기 블록특성별 양자화 테이블(2)의 엘리먼트 즉, 제2엘리먼트(q'i)보다 작은지 여부에 따라 판단될 수 있다. 즉, 제2엘리먼트(q'i)가 더 큰 경우는 상기 특정 엘리먼트는 추가 압축이 가능할 수 있다. 왜냐하면, 상기 블록특성별 양자화 테이블(2)은 상기 특정 블록에 대해서는 유사화질을 보장하는 양자화 테이블로 미리 정의되어 있는 테이블이므로, 상기 블록특성별 양자화 테이블(2)에 포함된 각각의 엘리먼트를 이용하여 양자화를 수행하여도 무방하기 때문이다. 따라서, 상기 제2엘리먼트(q'i)가 상기 제1엘리먼트(qi)보다 더 큰 경우에는, 추가 압축이 가능함을 의미할 수 있다.
그러면, 상기 처리모듈(110)은 상기 특정 엘리먼트에 대해 추가 압축이 가능한 경우, 추가 압축 값을 연산할 수 있다.
상기 추가 압축 값은 상기 특정 엘리먼트를 제1엘리먼트(qi)로 양자화한 값에서 추가 압축 값(p)를 차감한 경우의 DCT 계수의 오차 값이 상기 특정 엘리먼트를 제2엘리먼트(q'i)로 양자화하는 경우의 DCT 계수의 오차 값보다 작거나 같은 경우를 만족하는 것이 바람직할 수 있다.
즉, 추가 압축은 상기 특정 엘리먼트를 제1엘리먼트(qi)로 양자화한 값에서 상기 추가 압축 값(p)만큼 차감함으로써 수행될 수 있다. 이때 상기 특정 엘리먼트를 상기 제1엘리먼트(qi)로 양자화하는 경우에는, 상기 특정 엘리먼트를 반올림한 후 양자화를 수행하므로 최대 오차는 qi/2가 된다. 그리고 양자화된 값에서 p 만큼을 차감하면 최대 오차는 p×qi 만큼 증가할 수 있다. 따라서, 상기 특정 엘리먼트를 상기 제1엘리먼트(qi)로 양자화한 값에서 상기 추가 압축 값만큼 추가 압축이 될 경우의 DCT 계수의 최대 오차는 (qi/2 + p×qi)일 수 있다.
또한, 상기 특정 엘리먼트를 제2엘리먼트(q'i)로 양자화는 경우의 DCT 계수의 최대 오차는 q'i/2일 수 있다.
따라서, 양자화를 수행해도 무방한 값인 제2엘리먼트(q'i)로 양자화를 수행했을 때의 오차(q'i/2)보다 오차가 작거나 같은 값을 갖게 하는 추가 압축 값(p)는 도 7에 도시된 바와 같이 (qi/2 + p×qi) ≤ (q'i/2)를 만족하게 된다. 따라서, 이러한 조건을 만족하는 추가 압축 값(p)을, 특정 엘리먼트를 제1엘리먼트(qi)로 양자화한 값에서 차감하면, 상기 특정 엘리먼트가 추가 압축이 수행된 최종 양자화 결과 값이 될 수 있다.
이러한 방식으로 상기 처리모듈(110)은 상기 특정 블록의 각각의 엘리먼트들에 대해 추가 압축이 가능한 경우 선택적으로 추가 압축을 수행함으로써, 결과적으로 양자화 테이블을 이용하여 양자화를 수행할 때보다 더 압축이 가능한 상기 특정 블록에 대해서, 압축대상 이미지에 공통적으로 이용되는 상기 양자화 테이블(1)을 통해 양자화를 수행하면서도 실제로는 상기 특정 블록에 대해서는 상기 특정 블록의 특성이 고려된 적응적 압축이 가능하게 되는 효과가 있다.
또한, 상기 특정 블록에 대해 미리 정의된 상기 블록특성별 양자화 테이블(2)을 이용하여 간단한 연산을 통해서 상기 특정 블록에 대한 압축(양자화)이 완료되므로 종래의 이터러티브(iterative)한 압축방식에 비해 현저한 압축속도의 개선이 가능한 효과가 있다.
한편, 상기 특성 판단모듈(130)은 상기 압축대상 이미지에 포함된 각각의 블록 별 특징 값을 산출할 수 있다.
상기 특징 값을 산출하는 방식은 다양한 방식이 존재할 수 있으며, 어떠한 경우든 상기 특징 값은 특정 블록의 양자화 스케일을 판단하는 기준이 되는 값으로 정의될 수 있다.
본 발명의 일 실시 예에 따른 특징 값을 판단하는 방법은 도 5에 도시된다.
도 8은 본 발명의 실시 예에 따른 인트라프레임 인코딩 모듈에서 수행되는 압축대상 이미지의 블록 별 이미지 특징 값을 판단하는 방법을 설명하기 위한 도면이다.
도 7 및 도 8을 참조하면, 적응 이미지 압축시스템(100)에 포함된 소정의 타입 컨버터(미도시)에 의해 그레이 이미지로 타입 컨버팅된 압축대상 이미지의 데이터가 상기 특성 판단모듈(110)로 입력될 수 있다. 상기 그레이 이미지는 예컨대, 이미지의 루미넌스(luminence) 값을 갖는 데이터일 수 있으며, 소정의 버퍼에 저장될 수 있다. 그러면, 상기 특성 판단모듈(110)은 상기 버퍼로부터 상기 데이터를 독출할 수 있다. 물론, 상기 적응 이미지 압축시스템(100)에 인코딩된 이미지 파일(예컨대, JPEG 파일 등)이 입력되는 경우에는, 소정의 디코더를 통해 인코딩된 이미지 파일이 디코딩되어 원본 이미지에 상응하는 데이터(RGB raw image)로 변환된 후, 상기 타입 컨버터(미도시)로 입력될 수도 있다.
상기 특성 판단모듈(110)은 이미지를 복수의 블록으로 구분할 수 있다. 일 예에 의하면, 상기 특성 판단모듈(110)은 JPEG 표준과 같이 상기 블록의 크기를 8ㅧ8로 설정할 수 있지만, 이에 한정되는 것은 아니다.
상기 특성 판단모듈(110)은 구분된 복수의 블록들 각각의 특징 값을 산출할 수 있다. 상기 특징 값은 각각의 블록에 상응하는 부분 이미지의 특징을 나타낼 수 있는 정보를 의미할 수 있다. 상기 특징 값은 각 블록이 얼마나 압축될 수 있는지와 관련된 값일 수 있다. 본 명세서에서는 상기 특징 값을 BQI(Block Quality Indicator)로 명명하기로 한다.
상기 BQI는 도 8에 도시된 바와 같이 상기 블록에 포함된 각각의 픽셀들의 디퍼렌셜 값의 평균에 의해 산출될 수 있다. 디퍼렌셜 값의 평균이 높다는 것은 상기 블록에 상응하는 부분 이미지가 복잡도가 높음을 나타낼 수도 있고, 부분 이미지 내에 루미넌스의 변화가 많음을 나타낼 수도 있다. 그리고 이처럼 디퍼렌셜 값의 평균 즉, BQI가 높다는 것은 일반적으로 압축이 많이 되어도 가시적인 화질의 저하가 상대적으로 낮음을 의미할 수도 있다.
상기 블록에 포함된 어느 하나의 픽셀(예컨대, 10)의 디퍼렌셜 값은 상기 필셀(10)과 주변 픽셀들(11~17) 각각의 값의 차이들(d1~d7)의 평균을 의미할 수 있다. 이처럼, 상기 블록에 포함된 어느 하나의 픽셀의 디퍼렌셜 값이 결정되면, 나머지 픽셀들에 대해서도 동일한 방식으로 디퍼렌셜 값이 결정될 수 있다. 그러면, 상기 특성 판단모듈(110)은 상기 블록에 포함된 모든 픽셀들 각각의 디퍼렌셜 값을 산출할 수 있고, 이에 따라 상기 블록의 BQI 값을 산출할 수 있다.
이처럼 소정의 블록에 대해 특징값 즉, BQI가 산출되면, 산출된 BQI에 대응되는 블록특성별 양자화 테이블이 결정될 수 있다. BQI에 대응되는 블록특성별 양자화 테이블은 반복적인 실험을 통해 결정되어 미리 양자화 테이블 모듈(120)에 의해 정의될 수 있다. 즉, 특정 블록의 BQI 값이 산출되면, 산출된 BQI의 값에 해당하는 블록특성별 양자화 테이블이 실험을 통해 또는 소정의 방식을 통해 미리 결정되어 있을 수 있으며, 미리 결정되어 있는 블록특성별 양자화 테이블에 대한 정보가 상기 양자화 테이블 모듈(120)에 미리 저장되어 있을 수 있다. 구현 예에 따라서는, 상기 양자화 테이블 모듈(120)은 BQI를 이용하여 블록특성별 양자화 테이블을 소정의 방식으로 생성할 수 있다. 예컨대, BQI의 값을 이용하여 표준 양자화 테이블의 엘리먼트의 값들을 스케일링(scaling)하여 블록특성별 양자화 테이블을 생성할 수도 있다.
어떠한 경우든 본 발명의 기술적 사상에 의하면, 블록별 특성(즉, 특징값)에 따라 블록특성별 양자화 테이블이 정의될 수 있고, 상기 블록특성별 양자화 테이블에 기초하여 상기 적응 이미지 압축시스템(100)은 양자화 테이블을 이용하여 양자화된 값을 조정하여 추가적인 압축을 수행할 수 있다.
한편, 압축대상 이미지 전체에 적용될 양자화 테이블 역시 압축대상 이미지의 특성에 의해 결정될 수도 있다. 압축대상 이미지의 특성은 각각의 블록별 특징값 즉, BQI에 의해 결정될 수 있다.
상기 BQI에 기초하여 상기 압축대상 이미지의 특성을 판단하는 방식은 다양할 수 있다. 예컨대, 상기 BQI의 산술평균값 등과 같은 소정의 대표 값을 상기 압축대상 이미지의 특성으로 판단할 수 있다. 어떠한 방식이든 상기 BQI에 기초하여 상기 압축대상 이미지 전체의 특성을 결정할 수 있다. 상기 특성은 상기 압축대상 이미지가 얼마나 압출될 수 있는지를 나타낼 수 있는 소정의 값일 수도 있고, 상기 BQI 값들의 조합 또는 통계를 의미할 수도 있다. 이처럼 상기 특성을 판단할 수 있는 다양한 구현 예가 가능하다.
일 실시 예에 의하면, 상기 양자화 테이블 모듈(120)은 특성 판단모듈(130)에 의해 판단된 블록들 각각에 상응하는 복수의 BQI들 각각을 소정의 분류기준에 기초하여 분류할 수 있다. 즉, 복수의 블록들 각각의 특성을 상기 분류기준에 기초하여 분류할 수 있다. 그리고, 분류된 결과를 이용하여 상기 압축대상 이미지 전체의 특성을 판단할 수도 있다.
이러한 일 예는 도 9에 도시된다.
도 9는 본 발명의 실시 예에 따라 압축대상 이미지의 특성을 판단하는 방식을 설명하기 위한 도면이다.
도 9를 참조하면, 상기 양자화 테이블 모듈(120)은 각각의 블록들이 가질 수 있는 BQI를 소정의 범위로 분류하는 기준을 미리 저장하고 있을 수 있다. 그리고, 이러한 분류의 기준에 기초하여, 도 9에 도시된 바와 같이 BQI가 제1범위(예컨대, 0.5보다 적은 범위) 보다 적은 블록을 제1분류, 제2범위(예컨대, BQI가 0.5보다 크거나 같고 1보다 적은 범위)에 해당하는 블록을 제2분류, 제3범위(예컨대, BQI가 1보다 크거나 같고 1.5보다 적은 범위)에 해당하는 블록을 제3분류로 구분할 수 있다.
그러면 유사한 특성을 가지는 블록들은 동일한 분류로 분류될 수 있다. 따라서 상기 양자화 테이블 모듈(120)은 상기 압축대상 이미지에 포함되는 블록들 중 어떤 분류에 해당하는 블록이 몇 개인지에 따라 상기 압축대상 이미지 전체의 특성을 결정하고, 결정된 특성에 따라 상기 양자화 테이블을 정의할 수 있다. 예컨대, 제1분류에 해당하는 블록이 많은 경우에는, 압축률이 작아야 가시적 화질 저하가 없는 블록이 많은 것을 의미할 수 있다. 따라서, 이러한 경우에는 상기 양자화 테이블 모듈(120)은 상기 압축대상 이미지 전체의 압축률이 낮아야 가시적 화질 저하가 없는 이미지라고 판단할 수 있다. 그러면, 그에 적합한 QSF(quntaization scale factor) 값을 결정할 수 있다. 물론, 제1분류 뿐만 아니라, 다른 다양한 분류에 해당하는 블록의 개수 등에 기초하여 상기 양자화 테이블 모듈(120)은 상기 압축대상 이미지의 특성 즉, 상기 압축대상 이미지의 압축정도를 나타내는 QSF를 결정할 수 있다.
상기 BQI의 분류기준 즉, BQI를 분류하는 기준 값들 및 분류된 BQI에 기초하여 어떠한 QSF 값이 결정될지 여부는 실험적으로 결정되어 미리 상기 적응 이미지 압축시스템(100)에 저장되어 있을 수 있다. 예컨대, 제1분류를 결정하는 기준 값(예컨대, 0.5)은 반복적인 실험 및 이에 따른 압축결과의 검증에 통해 결정될 수 있다. 또한, 상기 BQI가 어떠한 값들을 가지는지, 어떠한 분포를 가지는지, 또는 어떤 분류에 속하는 블록들이 몇 개(또는 전체 블록에서 차지하는 비율)인지 여부 등에 따라 실험적으로 결정된 QSF 값들에 대한 정보가 즉, QSF 판단 리스트가 미리 상기 적응 이미지 압축시스템(100)에 저장되어 있을 수 있다. 그리고, 이러한 QSF 판단 리스트에 기초하여 상기 QSF 값이 결정될 수 있다.
양자화 테이블 모듈(120)에 의해 QSF 값이 결정되면, 상기 양자화 테이블 모듈(120)은 결정된 QSF 값에 기초하여 적응 양자화 테이블을 생성할 수 있다. 또한, 이전출원에 개시된 바와 같이 상기 적응 양자화 테이블을 생성하기 위해 표준 양자화 테이블이 이용될 수도 있다. 각각의 블록별 특징값에 기초하여 전체 압축대상 이미지의 특성이 정의되고, 그에 따라 상기 양자화 테이블이 정의되는 기술적 사상은 이전출원에 상세히 개시되어 있으므로 상세한 설명은 생략하도록 한다.
결국, 본 발명의 기술적 사상에 의하면, 하나의 양자화 테이블을 이용하여 양자화를 수행하면서도 적어도 하나의 블록에 대해서는 상기 양자화 테이블에 상응하는 양자화 스케일과는 서로 다른 양자화 스케일로 양자화를 수행할 수 있는 효과가 있다. 또한, 종래의 압축방식과 같이 압축을 수행한 후 아티팩트가 존재하는지를 검사하는 과정을 반복적으로 수행하는 것이 아니라, 미리 얼마만큼 압축대상 이미지를 압축 또는 추가압축 할지를 결정한 후, 한 번의 압축으로 압축을 수행할 수 있으므로, 현저한 압축 속도의 성능 개선 효과가 존재할 수 있다.
다시 도 4를 참조하면, 상기 디코딩 모듈(20)은 상술한 바와 같이, 인트라 프레임 디코딩 모듈(300) 및 인터프레임 디코딩모듈(400)을 포함할 수 있다.
상기 인트라프레임 디코딩모듈(300)은 복수의 프레임에 포함된 독립 프레임 각각을 인트라프레임 디코딩할 수 있다. 한편, 인터프레임 디코딩모듈(400)은 상기 복수의 프레임에 포함된 의존 프레임 각각에 대하여, 상기 의존 프레임이 참조하는 독립 프레임에 기초하여 상기 의존 프레임을 인터프레임 디코딩할 수 있다.
본 발명의 실시 예에 따른 블록특성을 이용한 적응 이미지 압축방법은 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 하드 디스크, 플로피 디스크, 광 데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어, 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한, 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고 본 발명을 구현하기 위한 기능적인(functional) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술분야의 프로그래머들에 의해 용이하게 추론될 수 있다.
본 발명은 도면에 도시된 일 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.

Claims (13)

  1. 복수의 이미지를 인코딩하기 위한 인코딩 시스템 제공방법으로서,
    (a) 상기 복수의 이미지 중 일부인 제1이미지들 각각을 인트라프레임 인코딩(Intra-Frame Encoding)하여, 상기 제1이미지들 각각에 상응하는 독립 프레임을 생성하는 단계; 및
    (b) 상기 복수의 이미지 중 상기 제1이미지들을 제외한 나머지 일부인 제2이미지들 각각을 인터프레임 인코딩(Inter-Frame Encoding)하여, 상기 제2이미지들 각각에 상응하는 의존 프레임을 생성하는 단계를 포함하되,
    상기 각각의 의존 프레임은,
    상기 독립 프레임 중 어느 하나를 직접 참조하여 인코딩되며,
    상기 복수의 이미지는,
    소정의 시간 간격마다 촬영된 연속 이미지인 것을 특징으로 하며,
    상기 (a) 단계는,
    상기 제1이미지 각각에 대하여,
    상기 인코딩 시스템이, 상기 제1이미지에 포함되는 블록들 중 특정 블록의 양자화를 수행하기 위하여, 상기 특정 블록에 대응되는 블록특성별 양자화 테이블을 확인하는 단계; 및
    상기 인코딩 시스템이, 상기 특정 블록의 특정 엘리먼트를 양자화하기 위해, 상기 제1이미지에 포함된 블록들의 양자화를 수행할 때 공통적으로 이용되는 공통 양자화 테이블의 상기 특정 엘리먼트에 대응되는 제1엘리먼트의 값과 확인한 상기 특정 엘리먼트에 대응되는 상기 블록특성별 양자화 테이블의 제2엘리먼트의 값을 이용하여 연산하는 단계를 포함하는 인코딩 시스템 제공방법.
  2. 제1항에 있어서, 상기 의존 프레임은,
    상기 의존 프레임으로부터 가장 가까운 선행 독립 프레임 또는 상기 의존 프레임으로부터 가장 가까운 후행 독립 프레임 중 어느 하나를 직접 참조하여 인코딩되는 인코딩 시스템 제공방법.
  3. 제2항에 있어서, 상기 의존 프레임은,
    상기 선행 독립 프레임 또는 상기 후행 독립 프레임 중 가장 가까운 것을 참조하여 인코딩되는 인코딩 시스템 제공방법.
  4. 삭제
  5. 삭제
  6. 복수의 이미지를 인코딩하기 위한 인코딩 시스템 제공방법으로서,
    (a) 상기 복수의 이미지 중 일부인 제1이미지들 각각을 인트라프레임 인코딩(Intra-Frame Encoding)하여, 상기 제1이미지들 각각에 상응하는 독립 프레임을 생성하는 단계; 및
    (b) 상기 복수의 이미지 중 상기 제1이미지들을 제외한 나머지 일부인 제2이미지들 각각을 인터프레임 인코딩(Inter-Frame Encoding)하여, 상기 제2이미지들 각각에 상응하는 의존 프레임을 생성하는 단계를 포함하되,
    상기 각각의 의존 프레임은,
    상기 독립 프레임 중 어느 하나를 직접 참조하여 인코딩되며,
    상기 복수의 이미지는,
    소정의 시간 간격마다 촬영된 연속 이미지인 것을 특징으로 하며,
    상기 (a) 단계는,
    상기 제1이미지 각각에 대하여,
    상기 인코딩 시스템이, 상기 제1이미지에 포함되는 블록들 중 특정 블록의 양자화를 수행하면서 상기 특정 블록에 포함된 각각의 엘리먼트를 상기 제1이미지에 포함된 블록들의 양자화를 수행할 때 공통적으로 이용되는 공통 양자화 테이블을 이용하여 양자화하는 단계; 및
    상기 인코딩 시스템이, 각각의 엘리먼트들 중 적어도 일부에 대해 선택적으로 상기 각각의 엘리먼트에 대응되는 추가 압축 값을 차감하여 저장하는 단계를 포함하며,
    상기 추가 압축 값은,
    상기 특정 블록의 특징 값에 기초하여 결정된 상기 특정 블록에 대응되는 블록특성별 양자화 테이블에 기초하여 결정되는 것을 특징으로 하는 인코딩 시스템 제공방법.
  7. 삭제
  8. 삭제
  9. 제1항, 제2항, 제3항 또는 제6항 중 어느 한 항에 기재된 방법을 수행하기 위한 프로그램을 기록한 컴퓨터 판독 가능한 기록매체.
  10. 삭제
  11. 복수의 이미지를 인코딩하기 위한 인코딩 시스템으로서,
    상기 복수의 이미지 중 일부인 제1이미지들 각각을 인트라프레임 인코딩(Intra-Frame Encoding)하여, 상기 제1이미지 각각에 상응하는 독립 프레임을 생성하는 인트라프레임 인코딩모듈; 및
    상기 복수의 이미지 중 상기 제1이미지를 제외한 나머지 일부인 제2이미지들 각각을 인터프레임 인코딩(Inter-Frame Encoding)하여, 상기 제2이미지들 각각에 상응하는 의존 프레임을 생성하는 인터프레임 인코딩모듈을 포함하되,
    상기 각각의 의존 프레임은,
    상기 독립 프레임 중 어느 하나를 직접 참조하여 인코딩되며,
    상기 복수의 이미지는,
    소정의 시간 간격마다 촬영된 연속 이미지인 것을 특징으로 하며,
    상기 인트라프레임 인코딩모듈은,
    상기 제1이미지에 포함된 블록들의 양자화를 수행할 때 공통적으로 이용되는 공통 양자화 테이블 및 상기 제1이미지에 포함되는 블록들 중 특정 블록에 대응되는 블록특성별 양자화 테이블을 정의하는 양자화 테이블 모듈; 및
    상기 특정 블록의 특정 엘리먼트를 양자화하기 위해, 상기 특정 엘리먼트에 대응되는 상기 양자화 테이블의 제1엘리먼트의 값과 상기 양자화 테이블 모듈에 의해 정의되는 상기 특정 엘리먼트에 대응되는 상기 블록특성별 양자화 테이블의 제2엘리먼트의 값을 이용하여 연산하는 처리모듈을 포함하는 인코딩 시스템.
  12. 복수의 이미지를 인코딩하기 위한 인코딩 시스템으로서,
    상기 복수의 이미지 중 일부인 제1이미지들 각각을 인트라프레임 인코딩(Intra-Frame Encoding)하여, 상기 제1이미지 각각에 상응하는 독립 프레임을 생성하는 인트라프레임 인코딩모듈; 및
    상기 복수의 이미지 중 상기 제1이미지를 제외한 나머지 일부인 제2이미지들 각각을 인터프레임 인코딩(Inter-Frame Encoding)하여, 상기 제2이미지들 각각에 상응하는 의존 프레임을 생성하는 인터프레임 인코딩모듈을 포함하되,
    상기 각각의 의존 프레임은,
    상기 독립 프레임 중 어느 하나를 직접 참조하여 인코딩되며,
    상기 복수의 이미지는,
    소정의 시간 간격마다 촬영된 연속 이미지인 것을 특징으로 하며,
    상기 인트라프레임 인코딩모듈은,
    상기 제1이미지에 포함된 블록들의 양자화를 수행할 때 공통적으로 이용되는 공통 양자화 테이블 및 상기 제1이미지에 포함되는 블록들 중 특정 블록에 대응되는 블록특성별 양자화 테이블을 정의하는 양자화 테이블 모듈; 및
    상기 독립 프레임에 포함되는 블록들 중 특정 블록의 양자화를 수행하면서 상기 특정 블록에 포함된 각각의 엘리먼트를 상기 양자화 테이블을 이용하여 양자화하고, 양자화된 각각의 엘리먼트들 중 적어도 일부에 대해 선택적으로 상기 각각의 엘리먼트에 대응되는 추가 압축 값을 차감하여 저장하는 처리모듈을 포함하며,
    상기 추가 압축 값은,
    상기 특정 블록의 특징 값에 기초하여 상기 양자화 테이블 모듈에 의해 결정된 상기 특정 블록에 대응되는 블록특성별 양자화 테이블에 기초하여 결정되는 것을 특징으로 하는 인코딩 시스템.
  13. 삭제
KR1020130108558A 2013-09-10 2013-09-10 이미지 인코딩 시스템, 디코딩 시스템 및 그 제공방법 KR101583870B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020130108558A KR101583870B1 (ko) 2013-09-10 2013-09-10 이미지 인코딩 시스템, 디코딩 시스템 및 그 제공방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130108558A KR101583870B1 (ko) 2013-09-10 2013-09-10 이미지 인코딩 시스템, 디코딩 시스템 및 그 제공방법

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020150088506A Division KR20150096353A (ko) 2015-06-22 2015-06-22 이미지 인코딩 시스템, 디코딩 시스템 및 그 제공방법

Publications (2)

Publication Number Publication Date
KR20150029398A KR20150029398A (ko) 2015-03-18
KR101583870B1 true KR101583870B1 (ko) 2016-01-22

Family

ID=53023905

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130108558A KR101583870B1 (ko) 2013-09-10 2013-09-10 이미지 인코딩 시스템, 디코딩 시스템 및 그 제공방법

Country Status (1)

Country Link
KR (1) KR101583870B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101852859B1 (ko) 2016-11-07 2018-04-27 이노뎁 주식회사 랜덤액세서블 p-프레임에 기초한 동영상 랜덤액세스 처리 방법

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100669634B1 (ko) 2004-12-06 2007-01-15 엘지전자 주식회사 동영상 압축 및 복원 방법

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050112998A (ko) * 2004-05-28 2005-12-01 주식회사 팬택 연속 촬영 영상의 선택 저장 기능을 가지는무선통신단말기 및 그 방법
KR20090039232A (ko) * 2007-10-17 2009-04-22 (주) 멀티비아 동영상 압축 및 복원 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100669634B1 (ko) 2004-12-06 2007-01-15 엘지전자 주식회사 동영상 압축 및 복원 방법

Also Published As

Publication number Publication date
KR20150029398A (ko) 2015-03-18

Similar Documents

Publication Publication Date Title
RU2722536C1 (ru) Вывод опорных значений режима и кодирование и декодирование информации, представляющей режимы предсказания
EP3158751B1 (en) Encoder decisions based on results of hash-based block matching
KR101247042B1 (ko) 변환 계수의 예측 코딩을 이용하여 디지털 미디어 데이터를인코딩하는 방법, 디지털 미디어 인코더, 디코더, 및컴퓨터 판독가능 기록 매체
US8422546B2 (en) Adaptive video encoding using a perceptual model
US20120128064A1 (en) Image processing device and method
US10085028B2 (en) Method and device for reducing a computational load in high efficiency video coding
KR101482896B1 (ko) 최적화된 디블록킹 필터
US20070237235A1 (en) Method of reducing computations in transform and scaling processes in a digital video encoder using a threshold-based approach
US20160330468A1 (en) Image encoding device, image decoding device, encoded stream conversion device, image encoding method, and image decoding method
JPWO2008084745A1 (ja) 画像符号化装置および画像復号化装置
US9077960B2 (en) Non-zero coefficient block pattern coding
KR20200090990A (ko) 데이터를 손실 압축-인코딩하기 위한 방법 및 장치와 데이터를 재구성하기 위한 대응하는 방법 및 장치
US8594189B1 (en) Apparatus and method for coding video using consistent regions and resolution scaling
JP7297918B2 (ja) ビデオ符号化のための色変換
WO2015176280A1 (en) Re-encoding image sets using frequency-domain differences
JP4574444B2 (ja) 画像復号装置及び方法、画像符号化装置及び方法、コンピュータプログラム及び記憶媒体
US10015484B2 (en) Adaptive scan device and method for scanning thereof
US20230269385A1 (en) Systems and methods for improving object tracking in compressed feature data in coding of multi-dimensional data
KR101583870B1 (ko) 이미지 인코딩 시스템, 디코딩 시스템 및 그 제공방법
US20060146183A1 (en) Image processing apparatus, encoding device, and methods of same
JP4942208B2 (ja) 符号化装置
KR20150096353A (ko) 이미지 인코딩 시스템, 디코딩 시스템 및 그 제공방법
CN115567710A (zh) 数据编码方法和装置以及解码数据流的方法和装置
JP6874844B2 (ja) 動画像符号化装置、動画像符号化方法、及び、動画像符号化プログラム
KR101533051B1 (ko) 블록별 양자화 레벨을 이용한 인코딩 방법 및 그 시스템

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
A107 Divisional application of patent
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20181211

Year of fee payment: 4