KR101006864B1 - 데이터 은닉을 이용한 데이터 무손실 압축방법 - Google Patents

데이터 은닉을 이용한 데이터 무손실 압축방법 Download PDF

Info

Publication number
KR101006864B1
KR101006864B1 KR1020080101110A KR20080101110A KR101006864B1 KR 101006864 B1 KR101006864 B1 KR 101006864B1 KR 1020080101110 A KR1020080101110 A KR 1020080101110A KR 20080101110 A KR20080101110 A KR 20080101110A KR 101006864 B1 KR101006864 B1 KR 101006864B1
Authority
KR
South Korea
Prior art keywords
data
type
size
huffman tree
hidden
Prior art date
Application number
KR1020080101110A
Other languages
English (en)
Other versions
KR20100042009A (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 KR1020080101110A priority Critical patent/KR101006864B1/ko
Publication of KR20100042009A publication Critical patent/KR20100042009A/ko
Application granted granted Critical
Publication of KR101006864B1 publication Critical patent/KR101006864B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/60General implementation details not specific to a particular type of compression
    • H03M7/6017Methods or arrangements to increase the throughput
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

본 발명은 이미 압축된 데이터에 추가의 정보를 은닉하여 재압축함으로써 압축효율을 높일 수 있는 데이터 은닉을 이용한 데이터 무손실 압축방법에 관한 것으로, (a) 압축된 원본 데이터(S)의 허프만 트리를 조사하는 단계; (b) 상기 (a) 단계를 통해 조사된 허프만 트리가 타입 II 또는 타입 IV이면 데이터를 은닉하면서 타입 I 또는 타입 III으로 변경함과 동시에 새로운 허프만 트리를 만드는 단계; (c) 상기 (b) 단계를 통해 새로 만들어진 허프만 트리가 타입 I 또는 타입 III로 변경되었는지의 여부를 판단하는 단계; (d) 상기 (c) 단계의 판단결과, 새로 만들어진 허프만 트리가 타입 I이면 원본 데이터(S)에 은닉 데이터(X)를 은닉하여 압축하고, 데이터 은닉 과정에서 새로운 허프만 트리를 만듦과 동시에 부가정보(L)를 압축하는 단계; (e) 상기 압축된 원본 데이터(S)에 은닉 데이터(X)를 은닉하여 압축된 출력 데이터(Y)와, 압축된 부가정보(L)를 출력하는 단계를 포함한다.

Description

데이터 은닉을 이용한 데이터 무손실 압축방법{LOSSLESS DATA COMPRESSION METHOD USING DATA HIDING}
본 발명은 데이터 은닉을 이용한 데이터 무손실 압축방법에 관한 것으로, 더욱 상세하게는 이미 압축된 원본 데이터에 은닉 데이터를 숨겨서 다시 압축할 수 있는 데이터 은닉을 이용한 데이터 무손실 압축방법에 관한 것이다.
일반적으로, 데이터를 압축했다가 원래의 데이터와 완전히 동일하게 복원할 수 있는 압축 기법을 무손실 압축이라고 하며, 종래의 무손실 데이터 압축 기법으로는 엔트로피 코딩(Entropy coding) 기법이 가장 널리 사용되고 있다.
상기 엔트로피 코딩기법은 출현빈도가 높은 심볼에 짧은 코드를 배정하고 빈도가 낮은 심볼에 긴 코드를 배정하므로, 일명 가변길이코딩(Variable-length coding)이라고 불린다.
한편, 엔트로피 코딩에서는 심볼의 빈도만을 고려하는데, 대표적인 방법으로는 허프만(Huffman) 코딩이 사용된다.
엔트로피 코딩은 미리 각 심볼의 출현 빈도를 알아야 최적의 압축이 가능하며, 허프만 코딩에서는 각각의 심볼에 하나씩 코드워드를 배정하므로 정수 길이의 코드워드만 허용한다.
예를 들면, X7 = {A A A B B C D}에 대하여, 종래의 허프만 테이블은 도 1을 기반으로 하여 그림 2와 같이 만들어진다.
도 1은 종래의 허프만 트리를 나타내는 도면이고, 도 2는 상기 도 1의 허프만 트리를 기반으로 하여 만들어진 허프만 테이블을 나타낸다.
즉, 그림 2에 나타낸 허프만 테이블에 의해 X7을 복호화하면, 그 결과는 Y7 = {000 10 10 110 111}이 되어 13비트가 필요하다.
여기서, A는 0으로, B는 10으로, C는 110으로 D는 111로 각각 변환된다.
상기와 같이, 종래의 허프만 코딩에서는 일단 허프만 테이블이 만들어지면, 코딩이 끝날 때까지 모든 심볼에 동일한 코드워드가 배정되고, 배정된 코드워드는 변하지 않는다.
따라서, 종래의 허프만 테이블을 활용하여 추가로 데이터를 은닉할 수 있는 여지를 만들 수는 있지만, 데이터를 은닉하면서 압축 효과도 달성하기 위해서는 허프만 트리를 다시 한번 만들어야 하는 문제점이 있다.
또한, 종래의 엔트로피 코딩은 압축의 한계에 거의 근접했고, 비록 압축효율을 더 높인다고 해도 무손실 압축의 한계인 엔트로피에 더 가까이 접근할 뿐 그 한계를 뛰어넘어 엔트로피 이하로 압축할 수 없는 문제점이 있다.
본 발명은 상기와 같은 문제점을 해결하기 위한 것으로서, 그 목적은 이미 압축된 원본 데이터에 은닉 데이터를 숨겨서 다시 압축할 수 있는 데이터 은닉을 이용한 데이터 무손실 압축방법을 제공하는 것이다.
즉, 본 발명의 목적은 이미 압축된 데이터에도 추가의 정보를 은닉하여 재압축할 수 있는 데이터 은닉을 이용한 데이터 무손실 압축방법을 제공하는 것이다.
상기의 목적을 달성하기 위한 본 발명의 일실시예에 따른 데이터 은닉을 이용한 데이터 무손실 압축방법은, (a) 압축된 원본 데이터(S)의 허프만 트리의 타입을 확인하는 단계(S310); (b) 상기 (a) 단계를 통해 확인된 허프만 트리가 타입 II 또는 타입 IV이면 데이터를 은닉하면서 타입 I 또는 타입 III으로 변경하고 제 1 허프만 트리를 만드는 단계(S320); (c) 상기 (b) 단계를 통해 만들어진 제 1 허프만 트리가 타입 I 또는 타입 III로 변경되었는지의 여부를 판단하는 단계(S325); (d) 상기 (c) 단계의 판단결과, 상기 제 1 허프만 트리가 타입 I이면 원본 데이터(S)에 은닉 데이터(X)를 은닉하여 압축하고, 이 (d) 단계의 데이터 은닉 과정에서 제 2 허프만 트리를 만들고 부가정보(L)를 압축하는 단계(S330); (e) 상기 압축된 원본 데이터(S)에 은닉 데이터(X)를 은닉하여 압축된 출력 데이터(Y)와, 압축된 부가정보(L)를 출력하는 단계(S340)를 포함하되, 상기 타입 II는 원본 데이터의 크기(∥S∥)와 은닉 데이터의 크기(∥X∥)를 가산한 값이 출력 데이터의 크기(∥Y∥)와 부가정보의 크기(∥L∥)를 가산한 값과 동일한 경우이고, 상기 타입 IV는 부가정보(L)가 0이면서 원본 데이터의 크기(∥S∥)와 은닉 데이터의 크기(∥X∥)를 가산한 값이 출력 데이터의 크기(∥Y∥)와 동일한 경우를 나타내며, 상기 타입 I은 원본 데이터의 크기(∥S∥)와 은닉 데이터의 크기(∥X∥)를 가산한 값이 출력 데이터의 크기(∥Y∥)와 부가정보의 크기(∥L∥)를 가산한 값보다 큰 경우이고, 상기 타입 III은 원본 데이터의 크기(∥S∥)와 은닉 데이터의 크기(∥X∥)를 가산한 값이 출력 데이터의 크기(∥Y∥)보다 큰 경우를 나타낸다.
바람직하게는, (f) 상기 (c) 단계의 판단 결과, 상기 제 1 허프만 트리가 타입 III이면 원본 데이터(S)에 은닉 데이터(X)를 은닉하여 압축하고, 이 (f) 단계의 데이터 은닉 과정에서 제 3 허프만 트리를 만드는 단계(S335)를 더 포함한다.
더 바람직하게는, (g) 상기 (f) 단계를 통해 압축된 원본 데이터(S)에 은닉 데이터(X)를 은닉하여 압축된 출력 데이터(Y)를 출력하는 단계(S345)를 더 포함한다.
또한, 상기 타입 II는 은닉 데이터(X)에 따라 허프만 트리의 복수개의 심볼(A, B, C, ...)을 바꾼 후, 심볼의 개수를 두 배이상 차이나게 하여 데이터의 손실없이 상기 타입 I로 변경되는 것이 바람직하다.
또한, 상기 타입 IV는 허프만 트리의 복수개의 심볼(A, B, C, ...)들 중 하나의 심볼(A)을 반으로 나누어, 나누어진 반은 원래의 심볼(A)로 유지하고, 나머지 반은 새로운 심볼(D)로 만들어 데이터의 손실없이 상기 타입 III로 변경되는 것이 바람직하다.
본 발명에 따른 데이터 은닉을 이용한 데이터 무손실 압축방법에 의하면, 이 미 압축된 데이터에 추가의 정보를 은닉하여 재압축할 수 있으므로, 압축효율을 높일 수 있는 효과가 있다.
상기 목적 외에 본 발명의 다른 목적 및 이점들은 첨부한 도면을 참조한 실시 예에 대한 상세한 설명을 통하여 명백하게 드러나게 될 것이다.
이하, 첨부한 도면을 참조하여 본 발명에 따른 데이터 은닉을 이용한 데이터 무손실 압축방법을 상세하게 설명하기로 한다.
먼저, 본 명세서에 기재된 데이터 은닉이라 함은 이미지나 오디오 등의 데이터에 추가로 정보를 숨기는 것을 말한다.
도 3은 본 발명의 일실시예에 따른 데이터 은닉을 이용한 데이터 무손실 압축방법을 설명하기 위한 구성을 나타내는 도면이다.
또한, 도 4는 타입 I의 허프만 트리의 일예를 나타낸 도면이고, 도 5는 타입 I의 허프만 트리의 다른 예를 나타낸 도면이며, 도 6은 타입 II의 허프만 트리의 일예를 나타낸 도면이고, 도 7은 타입 II의 허프만 트리를 다시 만든 일예를 나타낸 도면이다.
또한, 도 8은 타입 III의 허프만 트리의 일예를 나타낸 도면이고, 도 9는 타입 III의 허프만 트리의 다른 예를 나타낸 도면이며, 도 10은 타입 III의 케이스 (1)의 새로 만들어진 허프만 트리의 일예를 나타낸 도면이고, 도 11은 타입 III의 케이스 (2)의 새로 만들어진 허프만 트리의 일예를 나타낸 도면이며, 도 12는 타입 III의 케이스 (3)의 새로 만들어진 허프만 트리의 일예를 나타낸 도면이다.
또한, 도 13은 본 발명에 따른 데이터 은닉을 이용한 데이터 무손실 압축방법을 나타낸 순서도이고, 도 14는 타입 I의 네 종류의 심볼의 일예를 나타낸 도면이며, 도 15는 상기 도 14에서 새로 만들어진 허프만 트리를 나타낸 도면이다.
도 3에 나타낸 바와 같이, 본 발명의 일실시예에 따른 데이터 은닉을 이용한 데이터 무손실 압축방법에는 부호기(100) 및 복호기(200)가 적용된다.
부호기(100)는 원본 데이터(S)에 은닉 데이터(X)를 감추어 출력 데이터(Y)를 만든다.
이때, 부호기(100)의 출력 데이터(Y)에서 다시 원본 데이터(S)와 은닉 데이터(X)를 분리하여 정확히 복구하려면 부가정보(Location map)(L)이 필요하다.
예컨대, 원본 데이터(S)의 데이터 양(∥S∥)과 은닉 데이터(X)의 데이터 양(∥X∥)을 가산한 데이터의 양(∥S∥+∥X∥)이 출력 데이터(Y)의 데이터 양(∥Y∥)과 부가정보(L)의 데이터 양(∥L∥)을 가산한 데이터의 양(∥Y∥+∥L∥)보다 크다면 압축이 가능하다. 즉, (∥S∥+∥X∥) 〉(∥Y∥+∥L∥)이면 압축이 가능하다.
복호기(200)는 출력 데이터(Y)와 부가정보(L)을 통해 원본 데이터(S)와 은닉데이터(X)를 정확히 복구할 수 있다면 데이터의 무손실 압축이 가능하다.
한편, 본 발명에 따른 데이터 은닉을 이용한 데이터 무손실 압축방법을 설명하면 다음과 같다.
일예로서, 원본 데이터(S)의 데이터 크기가 1,000 바이트(Byte)이고, 은닉 데이터(X)의 크기가 100 바이트이라고 하면, 원본 데이터(S)에 은닉 데이터(X)를 숨겨 출력 데이터(Y)를 만들고 부가정보(L)를 추가하여 복호기(200)를 통해 출력할 때, 출력 데이터(Y)의 크기가 960 비트이고 부가정보(L)의 크기가 50 비트이라면, 데이터 입력은 1,100 비트인데, 출력 데이터는 1,010 비트이므로, 90 비트(Bit)가 줄어드는 효과, 즉 90 비트가 압축되는 효과가 있다.
이때, 데이터를 은닉하는 과정에서, 원본 데이터(S), 은닉 데이터(X), 출력 데이터(Y) 및 부가정보(L)에는 다음과 같은 4가지의 경우가 발생된다.
타입 I : ∥S∥+∥X∥ 〉∥Y∥+∥L∥ (∥S∥+∥X∥- ∥Y∥- ∥L∥ 〉0)
타입 II : ∥S∥+∥X∥ = ∥Y∥+∥L∥ (∥S∥+∥X∥- ∥Y∥- ∥L∥ = 0)
타입 III : ∥S∥+∥X∥ 〉∥Y∥ (∥S∥+∥X∥- ∥Y∥ 〉0)
타입 IV : ∥S∥+∥X∥ = ∥Y∥ (∥S∥+∥X∥- ∥Y∥ = 0)
여기서, ∥S∥는 원본 데이터(S)의 크기이고, ∥X∥는 은닉 데이터(X)의 크기이며, ∥Y∥는 출력 데이터(Y)의 크기이고, ∥L∥는 부가정보(L)의 크기이다.
이하에서는 상기 타입 I 내지 타입 IV에 대하여 일예를 들어 구체적으로 설명한다.
* 타입 I : ∥S∥+∥X∥ 〉∥Y∥+∥L∥ (∥S∥+∥X∥- ∥Y∥- ∥L∥ 〉0) *
도 4에 나타낸 바와 같이, 심볼 A = 20, 심볼 B = 16, 심볼 C = 1인 허프만 테이블인 경우, 심볼 B의 개수와 심볼 C의 개수에 큰 차이가 있으므로, 은닉 데이터를 추가로 감출 수 있다.
예컨대, 원본 데이터(S)의 스트링 = ABAABABBAAABABBBAAABAABACABBBAABAABAB 일 때, 상기 원본 데이터(S)의 스트링을 압축하는데, A = 20비트, B = 32비트, C = 2비트로서 총 54비트가 필요하다.
그러나, 심볼 B를 심볼 C로 변경할 수 있다.
예를 들어, 은닉 데이터(X) 16비트를, X: 1010110011101000 라고 할 때, 상기 은닉 데이터(X)를 원본 데이터(S)에 은닉하는데, 은닉 데이터(X)의 값이 1일 때에는 B를 C로 변경하고, 0일 때에는 B를 그대로 유지한다.
이 경우, 출력 데이터(Y) = ACAABACBAAACACBBAAACAACACACBCAABAABAB가 된다.
이때, 출력 데이터(Y)를 표현하는데 필요한 비트 수는 은닉 데이터(X)를 표현하는데 사용되는 비트 수와 동일한 54비트인데, 그 이유는 도 5에 나타낸 바와 같이, 허프만 트리에서 B와 C의 수에 변화가 생기지만, 비트 수는 여전히 B와 C에 각각 2비트씩 배정되기 때문이다.
즉, 심볼 개수의 변화에 따라 허프만 트리를 변화시켜도 결과적으로 출력 데이터(Y)에는 변화가 없어서 압축이 가능하다.
또한, 출력 데이터(Y)에 포함되어 있는 심볼 B는 원본 데이터(S)의 B이므로 복호기(200)를 통해 원래대로 복구시킬 수 있다. 다만, 심볼 C는 원본 데이터의 심볼 C인지 심볼 C로 변경된 심볼 B인지의 여부는 알 수 없으므로 부가정보(L)가 필요하다.
즉, 부가정보(L)가 1이면 심볼 B에서 심볼 C로 변경되었음을 알 수 있고, 부가정보(L)가 0이면 원래부터 심볼 C이었음을 알 수 있다. 이 경우 부가정보(L) = 111111011과 같이 표현된다.
따라서, 원본 데이터의 크기(∥S∥) = 54비트, 은닉 데이터의 크기(∥X∥) = 16비트, 출력 데이터의 크기(∥Y∥) = 54비트, 부가정보의 크기(∥L∥) = 9비트로 서, 총 입력 데이터는 70비트인데 비해, 총 출력 데이터는 63비트로 7비트가 압축된다.
또한, 원본 데이터의 크기(∥S∥)와 출력 데이터의 크기(∥Y∥)가 같고, 은닉 데이터의 크기(∥X∥)보다 부가정보의 크기(∥L∥)가 작으면 압축이 가능한데, 이 경우에는 심볼 B의 수가 심볼 C의 수보다 두 배 이상 많아야 압축이 가능하며, 아울러 은닉 데이터(X)의 상황, 즉 0과 1의 비율에 따라 압축이 가능하다. 또, 부가정보(L)의 추가 압축도 가능하다. 즉, 부가정보(L)에는 1이 10개, 0이 1개이면, 비율이 1 쪽으로 치우쳐 압축할 수 있는 여지가 충분하다.
* 타입 II : ∥S∥+∥X∥ = ∥Y∥+∥L∥ (∥S∥+∥X∥- ∥Y∥- ∥L∥ = 0) *
도 6에 나타낸 바와 같이, 심볼 A = 20, 심볼 B = 1, 심볼 C = 1인 허프만 테이블인 경우, 심볼 B의 개수와 심볼 C의 개수가 동일하므로, 은닉 데이터의 추가에 대한 압축이 불가능하다.
그러나, 타입 II에서는 심볼 B를 심볼 B로 변경하여 압축하는 방법을 고려해볼 수 있다.
예를 들어, 원본 데이터(S) = AAAAAAAABAAAAAAAAAACAA 일 때, 심볼 A = 20비트, 심볼 B = 2비트, 심볼 C = 2비트가 사용되어 원본 데이터의 크기(∥S∥)는 24비트가 된다. 그런데, 은닉 데이터(X) = 11111111110000000000인 경우에 은닉 데이터의 크기(∥X∥)는 20비트가 된다. 즉, 최대로 은닉할 수 있는 데이터의 양은 심볼 A의 수와 같은 20비트가 된다.
이때, 은닉 데이터(X)에 따라 심볼 A를 그대로 A로(X 값이 0일 때), 심볼 A 를 심볼 B로(X 값이 1일 때) 변경할 수 있는데, 이 경우에 출력 데이터(Y) = BBBBBBBBBBBAAAAAAAACAA이 된다.
이 경우, 심볼 A = 10, 심볼 B = 11, 심볼 C = 1이 된다.
따라서, 도 7에 나타낸 바와 같이, 허프만 트리를 다시 만들 경우, 출력 데이터의 크기(∥Y∥)는 33비트(11비트 + 20비트 + 2비트)가 되며, 부가정보의 크기(∥L∥)는 11비트를 요구한다.
즉, 입력 데이터로서, 원본 데이터의 크기(∥S∥)와 은닉 데이터의 크기(∥X∥)에 44비트(24비트 + 20비트)가 소요되며, 출력으로서 출력 데이터의 크기(∥Y∥)와 부가정보의 크기(∥L∥)에 44비트(33비트 + 11비트)가 필요하여 입력과 출력에 차이가 없으므로 압축이 이루어지지 않는다.
그러나, 타입 II를 변형하면, 도 7에 나타낸 바와 같은 타입 I과 같은 형식의 새로운 트리가 만들어진다.
즉, 상기 타입 II와 같은 형식으로는 압축이 되지 않지만, 타입 II를 변형하여 타입 I과 같은 형식의 새로운 트리가 만들어지므로, 변형된 타입 I을 통해 압축이 가능하다. 이때, 부가정보(L)의 추가 압축이 가능해지며, 부가정보(L)의 압축에 따라 전체적인 압축이득이 증가된다.
* 타입 III : ∥S∥+∥X∥ 〉∥Y∥ (∥S∥+∥X∥- ∥Y∥ 〉0) *
상기 타입 I과 타입 II는 부가정보(L)를 만들어야 하지만, 타입 III은 부가정보(L)를 만들지 않아도 되는 경우이다. 예를 들어, 도 6에서와 같이 심볼 A가 20개 있을 때, 이를 심볼 A로 유지하거나 새로운 심볼 D로 변경하는 방법이다.
즉, If 은닉 데이터(X)=0, then A → A, If 은닉 데이터(X)=1, then A → D
를 적용할 수 있다.
상기 타입 I과 비교할 때, 심볼 D는 새로 만들어지므로, 부가정보(L)가 없어도 된다.
따라서, 원본 데이터의 크기(∥S∥)는 24비트이고 은닉 데이터의 크기(∥X∥)는 20비트가 된다. 또한, 부가정보의 크기(∥L∥)는 0비트이다. 만일 심볼 D가10개 만들어졌다면 허프만 트리를 새로 만들어야 한다.
즉, 도 8에 나타낸 바와 같이, 출력 데이터의 크기(∥Y∥)는 36비트(10비트 + 20비트 + 3비트 + 3비트)를 요구한다. 따라서, 입력은 44비트(24비트 + 20비트)이고 출력은 36비트이므로 8비트의 이득이 생긴다.
한편, 다른 예로서, 도 9에 나타낸 바와 같이, 심볼 A의 수가 m1인 경우, m1이 다른 심볼 B 및 심볼 C에 비해 수가 가장 많으면, 심볼 A를 새로운 심볼 D로 변경하는 경우를 생각해 볼 수 있다.
심볼 A를 새로운 심볼 D로 변경하는 방법은, 위에서 설명한 바와 같이, If 은닉 데이터(X)=0, then A → A, If 은닉 데이터(X)=1, then A → D를 적용할 수 있다.
즉, 심볼 A의 수는 짝수개가 있고, 그 반은 A로 남고 반은 심볼 D로 변경된다고 가정해보면, 아래와 같은 3가지 케이스를 고려해 볼 수 있다.
(1). m2 ≥ m3 ≥ m1/2
(2). m2 ≥ m1/2 ≥ m3
(3). m1/2 ≥ m2 ≥ m3
상기 3가지 케이스일 때, 어떤 케이스나 원본 데이터의 크기(∥S∥)는 m1 + 2(m2 + m3)이다. 이때, 은닉 데이터의 크기(∥X∥)가 m1이다. 따라서, 입력은 원본 데이터의 크기(∥S∥) + 은닉 데이터의 크기(∥X∥) = 2(m1 + m2 + m3)이다.
상기 케이스 (1)의 경우에는, 심볼 A를 심볼 A와 심볼 D로 나누면 각각의 심볼의 수가 가장 작아지므로, 이로 인해 새로 만들어진 허프만 트리는 도 10과 같이 표현되며, 출력으로서 출력 데이터의 크기(∥Y∥)는 2(m1 + m2 + m3)가 된다.
따라서, 상기 케이스 (1)의 경우에는 입력과 출력이 같아져서 압축은 불가능하지만 데이터 은닉은 가능한 타입 IV에 해당된다.
이때, 타입 IV는 부가정보(L)가 0이면서 입력과 출력이 동일한 경우이다.
한편, 상기 케이스 (2)의 경우에는, 도 11과 같이 허프만 트리가 새로 만들어져, 출력 데이터의 크기(∥Y∥) = 5m1/2 + m2 + 3m3가 된다.
따라서, 입력과 출력의 차이인, 원본 데이터의 크기(∥S∥) + 은닉 데이터의 크기(∥X∥) - 출력 데이터의 크기(∥Y∥) = -m1/2 + m2 - m3인데, m2 〉m3 + m1/2이면 압축이 가능하다.
또한, 상기 케이스 (3)의 경우에는, 도 12와 같이 허프만 트리가 새로 만들 어져, 출력 데이터의 크기(∥Y∥) = 3m1/2 + 3m2 + 3m3가 된다.
따라서, 입력과 출력의 차이인, 원본 데이터의 크기(∥S∥) + 은닉 데이터의 크기(∥X∥) - 출력 데이터의 크기(∥Y∥) = m1/2 - m2 - m3인데, m1/2 〉m2 + m2이면 압축이 가능하다.
즉, 상기 케이스 (2)에 대해서도 정보를 은닉할 수 있는 경우가 발생할 수 있다.
* 타입 IV : ∥S∥+∥X∥ = ∥Y∥ (∥S∥+∥X∥- ∥Y∥ = 0) *
상기 타입 IV는 부가정보(L)가 0이면서 원본 데이터의 크기(∥S∥)와 은닉 데이터의 크기(∥X∥)를 가산한 값이 출력 데이터의 크기(∥Y∥)가 동일한 경우이다.
여기서, 상기와 같은 예를 통해 데이터 은닉을 이용한 데이터 무손실 압축방법은, 도 13에 나타낸 바와 같이 다음과 같은 절차를 갖는다.
먼저, 압축된 원본 데이터(S)의 허프만 트리의 타입을 확인한다(S310).
다음에, 상기 S310 단계를 통해 확인된 허프만 트리가 상기 타입 II(원본 데이터의 크기(∥S∥)와 은닉 데이터의 크기(∥X∥)를 가산한 값이 출력 데이터의 크기(∥Y∥)와 부가정보의 크기(∥L∥)를 가산한 값과 동일한 경우) 또는 타입 IV(부가정보(L)가 0이면서 원본 데이터의 크기(∥S∥)와 은닉 데이터의 크기(∥X∥)를 가산한 값이 출력 데이터의 크기(∥Y∥)와 동일한 경우)이면, 데이터를 은닉하면서 타입 I(원본 데이터의 크기(∥S∥)와 은닉 데이터의 크기(∥X∥)를 가산한 값이 출력 데이터의 크기(∥Y∥)와 부가정보의 크기(∥L∥)를 가산한 값보다 큰 경우) 또는 타입 III(원본 데이터의 크기(∥S∥)와 은닉 데이터의 크기(∥X∥)를 가산한 값이 출력 데이터의 크기(∥Y∥)보다 큰 경우)으로 변경하고 제 1 허프만 트리를 만든다(S320).
그 다음, 상기 S320 단계를 통해 만들어진 제 1 허프만 트리가 타입 I 또는 타입 III인지의 여부를 판단한다(S325).
상기 S325 단계의 판단결과, 상기 제 1 허프만 트리가 타입 I이면 원본 데이터(S)에 은닉 데이터(X)를 은닉하여 압축하고, 이 데이터 은닉 과정에서 제 2 허프만 트리를 만들고 부가정보(L)를 압축한다(S330).
한편, 상기 S325 단계의 판단결과, 상기 제 1 허프만 트리가 타입 III이면 원본 데이터(S)에 은닉 데이터(X)를 은닉하여 압축하고, 이 데이터 은닉 과정에서 제 3 허프만 트리를 만든다(S335).
이후, 상기 S330 단계를 통해 원본 데이터(S)에 은닉 데이터(X)를 은닉하여 압축된 출력 데이터(Y)와, 압축된 부가정보(L)를 출력한다(S340).
또한, 상기 S335 단계를 통해 원본 데이터(S)에 은닉 데이터(X)를 은닉하여 압축된 출력 데이터(Y)를 출력한다(S345).
여기서, 상기 타입 I인 경우의 데이터 압축방법을 설명하면 다음과 같다.
즉, 상기 타입 I(원본 데이터의 크기(∥S∥)와 은닉 데이터의 크기(∥X∥)를 가산한 값이 출력 데이터의 크기(∥Y∥)와 부가정보의 크기(∥L∥)를 가산한 값보다 큰 경우)에 속하는 허프만 트리는 다양하며, 데이터를 압축하는 방법도 다양하 다.
일예로서, 도 14에 나타낸 바와 같이, 심볼 A, 심볼 B, 심볼 C 및 심볼 D와 같이 네 종류의 심볼들이 있는 경우, 심볼 A를 심볼 A, 심볼 B, 심볼 C 및 심볼 D중 어느 하나의 심볼로 변경할 수 있다.
즉, If 은닉 데이터(X)=0(00), then A → A,
If 은닉 데이터(X)=1(01), then A → B,
If 은닉 데이터(X)=2(10), then A → C,
If 은닉 데이터(X)=3(11), then A → D.
와 같이 변경될 수 있다. 즉, 심볼 하나를 변경할 때마다 2비트의 정보를 은닉할 수 있다.
도 14를 참조하면, 심볼 A가 1200개이므로, 각각 2비트씩 은닉할 수 있어서, 은닉 데이터의 크기(∥X∥)는 2400비트가 된다.
한편, 도 8의 허프만 트리에서 원본 데이터의 크기(∥S∥)는 1214비트(1200비트 + 8비트 + 3비트 + 3비트)이다. 만일, 은닉 데이터(X)에 0, 1, 2, 3이 각각 300개씩 있다면, 데이터를 은닉한 후 출력 데이터(Y)에는 심볼 A가 300개, 심볼 B가 304개, 심볼 C가 301개, 심볼 D가 301개가 된다.
따라서, 새로 허프만 트리를 만들면 도 15에 나타낸 바와 같이 된다.
즉, 심볼 B, 심볼 C, 심볼 D 및 심볼 A에 각각 2비트씩 배정되므로 출력 데이터의 크기(∥Y∥)는 2412비트(1206 ×2)가 된다. 그리고, 부가정보의 크기(∥L∥)는 906비트(304비트 + 301비트 + 301비트)가 필요하다.
따라서, 입력으로 3614비트, 출력으로 3318비트가 소요되므로 296비트의 이득이 생긴다. 은닉 데이터(X)에 0 내지 3의 네 종류의 심볼 A 내지 심볼 D가 있기 때문에 이를 표현하려면 2비트가 필요하다.
따라서, 데이터를 은닉할 수 있는 여러 가지 방법이 존재하므로, 상기 타입 I, 타입 II, 타입 III 및 타입 IV와 같은 허프만 트리에 적(×)을 적용하여 압축할 수 있다.
이상에서는 본 발명의 일실시예에 따라 본 발명을 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 변경 및 변형한 것도 본 발명에 속함은 당연하다.
도 1은 종래의 허프만 트리를 나타내는 도면.
도 2는 상기 도 1의 허프만 트리를 기반으로 하여 만들어진 허프만 테이블을 나타낸 도면.
도 3은 본 발명의 일실시예에 따른 데이터 은닉을 이용한 데이터 무손실 압축방법을 설명하기 위한 구성을 나타낸 도면.
도 4는 타입 I의 허프만 트리의 일예를 나타낸 도면.
도 5는 타입 I의 허프만 트리의 다른 예를 나타낸 도면.
도 6은 타입 II의 허프만 트리의 일예를 나타낸 도면.
도 7은 타입 II의 허프만 트리를 다시 만든 일예를 나타낸 도면.
도 8은 타입 III의 허프만 트리의 일예를 나타낸 도면.
도 9는 타입 III의 허프만 트리의 다른 예를 나타낸 도면.
도 10은 타입 III의 케이스 (1)의 새로 만들어진 허프만 트리의 일예를 나타낸 도면.
도 11은 타입 III의 케이스 (2)의 새로 만들어진 허프만 트리의 일예를 나타낸 도면.
도 12는 타입 III의 케이스 (3)의 새로 만들어진 허프만 트리의 일예를 나타낸 도면.
도 13은 본 발명에 따른 데이터 은닉을 이용한 데이터 무손실 압축방법을 나타낸 순서도.
도 14는 타입 I의 네 종류의 심볼의 일예를 나타낸 도면.
도 15는 도 14에서 새로 만들어진 허프만 트리를 나타낸 도면.

Claims (5)

  1. 데이터 은닉을 이용하여 데이터를 무손실로 압축하는 방법으로서,
    (a) 압축된 원본 데이터(S)의 허프만 트리의 타입을 확인하는 단계(S310);
    (b) 상기 (a) 단계를 통해 확인된 허프만 트리가 타입 II 또는 타입 IV이면 원본 데이터(S)에 은닉 데이터(X)를 은닉하면서 타입 I 또는 타입 III으로 변경하고 제 1 허프만 트리를 만드는 단계(S320);
    (c) 상기 (b) 단계를 통해 만들어진 제 1 허프만 트리가 타입 I 또는 타입 III로 변경되었는지의 여부를 판단하는 단계(S325);
    (d) 상기 (c) 단계의 판단결과, 상기 제 1 허프만 트리가 타입 I이면 원본 데이터(S)에 은닉 데이터(X)를 은닉하여 압축하고, 이 (d) 단계의 데이터 은닉 과정에서 제 2 허프만 트리를 만들고 부가정보(L)를 압축하는 단계(S330);
    (e) 상기 압축된 원본 데이터(S)에 은닉 데이터(X)를 은닉하여 압축된 출력 데이터(Y)와, 압축된 부가정보(L)를 출력하는 단계(S340)를 포함하되,
    상기 타입 II는 원본 데이터의 크기(∥S∥)와 은닉 데이터의 크기(∥X∥)를 가산한 값이 출력 데이터의 크기(∥Y∥)와 부가정보의 크기(∥L∥)를 가산한 값과 동일한 경우이고, 상기 타입 IV는 부가정보(L)가 0이면서 원본 데이터의 크기(∥S∥)와 은닉 데이터의 크기(∥X∥)를 가산한 값이 출력 데이터의 크기(∥Y∥)와 동일한 경우를 나타내며,
    상기 타입 I은 원본 데이터의 크기(∥S∥)와 은닉 데이터의 크기(∥X∥)를 가산한 값이 출력 데이터의 크기(∥Y∥)와 부가정보의 크기(∥L∥)를 가산한 값보다 큰 경우이고, 상기 타입 III은 원본 데이터의 크기(∥S∥)와 은닉 데이터의 크기(∥X∥)를 가산한 값이 출력 데이터의 크기(∥Y∥)보다 큰 경우를 나타내는 것을 특징으로 하는 데이터 은닉을 이용한 데이터 무손실 압축방법.
  2. 제 1항에 있어서,
    (f) 상기 (c) 단계의 판단 결과, 상기 제 1 허프만 트리가 타입 III이면 원본 데이터(S)에 은닉 데이터(X)를 은닉하여 압축하고, 이 (f) 단계의 데이터 은닉 과정에서 제 3 허프만 트리를 만드는 단계(S335)를 더 포함하는 것을 특징으로 하는 데이터 은닉을 이용한 데이터 무손실 압축방법.
  3. 제 2항에 있어서,
    (g) 상기 (f) 단계를 통해 압축된 원본 데이터(S)에 은닉 데이터(X)를 은닉하여 압축된 출력 데이터(Y)를 출력하는 단계(S345)를 더 포함하는 것을 특징으로 하는 데이터 은닉을 이용한 데이터 무손실 압축방법.
  4. 제 1항에 있어서,
    상기 타입 II는 은닉 데이터(X)에 따라 허프만 트리의 복수개의 심볼(A, B, C, ...)을 바꾼 후, 심볼의 개수를 두 배이상 차이나게 하여 데이터의 손실없이 상기 타입 I로 변경되는 것을 특징으로 하는 데이터 은닉을 이용한 데이터 무손실 압 축방법.
  5. 제 1항에 있어서,
    상기 타입 IV는 허프만 트리의 복수개의 심볼(A, B, C, ...)들 중 하나의 심볼(A)을 반으로 나누어, 나누어진 반은 원래의 심볼(A)로 유지하고, 나머지 반은 새로운 심볼(D)로 만들어 데이터의 손실없이 상기 타입 III로 변경되는 것을 특징으로 하는 데이터 은닉을 이용한 데이터 무손실 압축방법.
KR1020080101110A 2008-10-15 2008-10-15 데이터 은닉을 이용한 데이터 무손실 압축방법 KR101006864B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020080101110A KR101006864B1 (ko) 2008-10-15 2008-10-15 데이터 은닉을 이용한 데이터 무손실 압축방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080101110A KR101006864B1 (ko) 2008-10-15 2008-10-15 데이터 은닉을 이용한 데이터 무손실 압축방법

Publications (2)

Publication Number Publication Date
KR20100042009A KR20100042009A (ko) 2010-04-23
KR101006864B1 true KR101006864B1 (ko) 2011-01-12

Family

ID=42217485

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080101110A KR101006864B1 (ko) 2008-10-15 2008-10-15 데이터 은닉을 이용한 데이터 무손실 압축방법

Country Status (1)

Country Link
KR (1) KR101006864B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101645235B1 (ko) * 2014-04-04 2016-08-04 고려대학교 산학협력단 정보 은닉 기법을 이용한 재압축-재압축 해제 장치, 방법 및 이를 저장한 저장매체

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20000036133A (ko) * 1996-10-15 2000-06-26 포만 제프리 엘 데이터 은폐 방법 및 데이터 추출 방법
KR20060036179A (ko) * 2004-10-25 2006-04-28 학교법인 성균관대학 데이터 은닉을 위한 부호화/복호화 방법 및 그 방법을이용한 부호화기/복호화기

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20000036133A (ko) * 1996-10-15 2000-06-26 포만 제프리 엘 데이터 은폐 방법 및 데이터 추출 방법
KR20060036179A (ko) * 2004-10-25 2006-04-28 학교법인 성균관대학 데이터 은닉을 위한 부호화/복호화 방법 및 그 방법을이용한 부호화기/복호화기

Also Published As

Publication number Publication date
KR20100042009A (ko) 2010-04-23

Similar Documents

Publication Publication Date Title
CN101795407B (zh) 用于对比特序列进行编码的方法和设备
US5703581A (en) Method and apparatus for data compression and decompression
US20020106019A1 (en) Method and apparatus for implementing motion detection in video compression
RU2595916C1 (ru) Кодер, декодер и способ
US20140266816A1 (en) Method and apparatus for compressing data-carrying signals
US6778109B1 (en) Method for efficient data encoding and decoding
US6584226B1 (en) Method and apparatus for implementing motion estimation in video compression
KR100647192B1 (ko) 데이터의 복원 시간을 단축하는 데이터 압축 장치 및 그방법
KR100316785B1 (ko) 비트 오류에 견실한 산술 부호화/복호화 장치 및 그 방법
KR101023536B1 (ko) 데이터 무손실 압축 방법
KR101006864B1 (ko) 데이터 은닉을 이용한 데이터 무손실 압축방법
WO2014131526A1 (en) Entropy modifier and method
US8018359B2 (en) Conversion of bit lengths into codes
US7683809B2 (en) Advanced lossless bit coding
KR101575939B1 (ko) 이진 데이터의 압축 및 복원 방법과 장치
KR20120012790A (ko) 입력 비트 시퀀스를 인코딩하는 방법과 디바이스 및 대응하는 디코딩 방법 및 디바이스
US20060125660A1 (en) Digital data compression robust relative to transmission noise
KR101573983B1 (ko) 데이터 압축 및 데이터 복원 방법과 장치
US8754791B1 (en) Entropy modifier and method
KR101268934B1 (ko) 데이터 압축/해제장치 및 방법
JP2006157944A (ja) 可変長コード生成方法、符号化装置及び復号装置
KR100686354B1 (ko) 가변 트리를 이용한 허프만 복호화 방법 및 장치
Braci et al. On the tradeoff between security and robustness of the trellis coded quantization scheme
KR101760070B1 (ko) 데이터 부호화 및 복호화 방법과 장치
KR20230022289A (ko) 데이터 압축 방법 및 장치

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

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20160502

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee