KR20190042599A - 로버스트 인덱스 코드 - Google Patents
로버스트 인덱스 코드 Download PDFInfo
- Publication number
- KR20190042599A KR20190042599A KR1020197006566A KR20197006566A KR20190042599A KR 20190042599 A KR20190042599 A KR 20190042599A KR 1020197006566 A KR1020197006566 A KR 1020197006566A KR 20197006566 A KR20197006566 A KR 20197006566A KR 20190042599 A KR20190042599 A KR 20190042599A
- Authority
- KR
- South Korea
- Prior art keywords
- index
- image
- value
- robust
- code
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K7/00—Methods or arrangements for sensing record carriers, e.g. for reading patterns
- G06K7/10—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
- G06K7/14—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K19/00—Record carriers for use with machines and with at least a part designed to carry digital markings
- G06K19/06—Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K19/00—Record carriers for use with machines and with at least a part designed to carry digital markings
- G06K19/06—Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
- G06K19/06009—Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code with optically detectable marking
- G06K19/06037—Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code with optically detectable marking multi-dimensional coding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K19/00—Record carriers for use with machines and with at least a part designed to carry digital markings
- G06K19/06—Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
- G06K19/06009—Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code with optically detectable marking
- G06K19/06046—Constructional details
- G06K19/0614—Constructional details the marking being selective to wavelength, e.g. color barcode or barcodes only visible under UV or IR
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K7/00—Methods or arrangements for sensing record carriers, e.g. for reading patterns
- G06K7/10—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
- G06K7/14—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
- G06K7/1404—Methods for optical code recognition
- G06K7/1408—Methods for optical code recognition the method being specifically adapted for the type of code
- G06K7/1426—Multi-level bar codes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K19/00—Record carriers for use with machines and with at least a part designed to carry digital markings
- G06K19/06—Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
- G06K2019/06215—Aspects not covered by other subgroups
- G06K2019/06225—Aspects not covered by other subgroups using wavelength selection, e.g. colour code
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Electromagnetism (AREA)
- General Health & Medical Sciences (AREA)
- Toxicology (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Image Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
본 발명은 로버스트 인덱스 코드에 관한 것이다. 본 발명의 일 실시예에 따르면, 인덱스를 부호화하여 얻어지는 로버스트 인덱스 코드 화상이 열화되어 얻어진 열화 후의 로버스트 인덱스 코드 화상으로부터 인덱스를 로버스트하게 복호화할 수 있는 로버스트 인덱스 코드를 제공한다. 또한, 열화 후의 로버스트 인덱스 코드 화상으로부터 인덱스를 로버스트하게 복호화할 수 있는 로버스트 인덱스 코드이며, 부호화 처리에서는 인덱스에 기초하여 얻어진 각 N(N≥2)비트의 비트열에 대해서 각각 N개의 색 정보에 의한 컬러화를 행함으로써 로버스트 인덱스 코드 화상을 생성하고, 로버스트 복호화 처리에서는 모든 열화가 있는 데이터 영역에 대응하는 색 정보로부터 이원화 알고리즘에 기초하여 인덱스 후보군을 생성하고, 복수의 제1 화상 속성값과 복수의 제2 화상 속성값을 비교함으로써 인덱스 후보군을 검증하여 얻어진 가정답 인덱스로 된 인덱스 후보의 수에 따라서 정답 인덱스를 선정할 수 있다.
Description
본 발명은 식별 코드 기술에 관한 것으로서, 더욱 상세하게는, 색의 배열로 정보를 표현하는 로버스트 인덱스 코드에 관한 것이다.
최근에는 정보를 표현하는 식별 코드(이하 "식별 코드"를 "코드 마크"라고도 한다.)로서, 일차원 코드(예를 들어 바코드)나 이차원 코드(예를 들어 QR 코드(등록상표))뿐만 아니라, 적색, 청색, 녹색 등의 색의 배열로 정보를 표현하는 컬러 코드도 여러 분야에서 널리 이용되고 있다. 색의 배열로 정보를 표현하는 컬러 코드로서, 예를 들어 마이크로소프트(등록상표)사가 독자적으로 개발한 대용량 컬러 바코드 HCCB(High Capacity Color Barcode)가 있다(비특허문헌 1 참조).
또한, 컬러 코드의 독출 정밀도를 향상시키는 방법으로서, 예를 들어 특허문헌 1에 개시된 이차원 컬러 코드를 들 수 있다. 특허문헌 1에 개시된 이차원 컬러 코드에서는 가이드 코드부와 데이터 기록 코드부의 2 개의 영역으로 나누고, 가이드 코드부로부터 색 성분의 분석을 행하여, 그 정보를 데이터 기록 코드부의 위치의 판정, 복호에 사용함으로써 더욱 고정밀도의 독출을 가능하게 하고 있다.
그러나, 비특허문헌 1에 개시된 컬러 바코드 HCCB(이차원 컬러 코드 화상)는 인터넷 상의 다양한 네트워크 서비스를 거치는 동안 이차원 컬러 코드 화상의 압축이나 신장이 행해짐으로써, 압축이나 신장이 행해진 후의 이차원 컬러 코드 화상에 열화가 일어나 컬러 코드를 바르게 읽을 수 없는 문제점이 발생할 수 있다. 한편, 특허문헌 1에서는 컬러 코드의 독출 정밀도를 향상시키는 방법이 개시되어 있지만, 이를 위하여 가이드 코드부의 화상 면적이 필요하므로 코드 영역이 커지는 문제가 발생한다.
(특허문헌 1) 일본 특개2011-186613호 공보
(비특허문헌 1) "High Capacity Color Barcode", From Wikipedia, the free encyclopedia,
인터넷 <URL:http://en.wikipedia.org/wiki/High_Capacity_Color_Barcode>
본 발명이 이루고자 하는 기술적 과제는, 인덱스를 부호화하여 얻어지는 컬러 코드인 로버스트 인덱스 코드의 화상이 통신 네트워크 상(예를 들면, 인터넷 상)의 다양한 네트워크 서비스를 거칠 때에 행해지는 화상 압축이나 신장 등에 의해 열화된 경우에도, 그 열화된 로버스트 인덱스 코드 화상으로부터 인덱스를 로버스트하게 복호화할 수 있음과 동시에, 코드 영역(로버스트 인덱스 코드 영역)의 면적을 증가시키지 않으면서도, 독출 정밀도를 향상시킨 로버스트 인덱스 코드를 제공하는 것이다.
상기 기술적 과제를 해결하기 위한 본 발명의 일 실시예에 따른 로버스트 인덱스 코드는, 오리지널 화상을 일의적으로 식별할 수 있고, 십진수인 인덱스에 대해서 부호화 처리를 행하여 생성된 로버스트 인덱스 코드 화상을 상기 오리지널 화상에 매립하여 얻어진 로버스트 인덱스 코드가 붙은 화상이 네트워크를 통할 때에 행해지는 화상 처리에 의해 열화되어 얻어진 열화 후의 로버스트 인덱스 코드가 붙은 화상에 포함되어 있는 열화 후의 로버스트 인덱스 코드 화상으로부터, 상기 인덱스를 로버스트 복호화 처리에 의해 로버스트하게 복호할 수 있는 로버스트 인덱스 코드를 포함할 수 있다.
일 실시예에서는, 상기 오리지널 화상, 상기 오리지널 화상의 화상관련정보, 상기 로버스트 인덱스 코드가 붙은 화상, 및 상기 오리지널 화상 또는 상기 로버스트 인덱스 코드가 붙은 화상에 기초하여 생성된 상기 오리지널 화상의 복수의 화상 속성값은 상기 인덱스와 연관되어 데이터베이스에 저장되며, 상기 부호화 처리에서는 상기 인덱스를 변환하여 얻어진 이진수의 비트열로부터 얻어진 각 N(N≥2) 비트의 비트열에 대해서 N개의 색 정보에 의한 컬러화를 행함으로써 상기 인덱스를 부호화하여, 상기 로버스트 인덱스 코드 화상을 생성하고, 상기 로버스트 복호화 처리는 인덱스 후보군 생성처리와, 인덱스 후보군 검증처리와, 정답 인덱스 선정처리로 구성되어 있으며, 상기 인덱스 후보군 생성처리에서는 상기 열화 후의 로버스트 인덱스 코드 화상에서의 모든 열화가 있는 데이터 영역에 대응하는 색 정보로부터 이원화 알고리즘에 기초하여 복수의 인덱스 후보로 구성되는 인덱스 후보군을 생성하고, 상기 인덱스 후보군 검증처리에서는 상기 열화 후의 로버스트 인덱스 코드가 붙은 화상에 기초하여 생성된 복수의 제1 화상 속성값과, 상기 인덱스 후보와 관련지어져 있는 복수의 제2 화상 속성값을 각각 비교함으로써 상기 인덱스 후보군을 검증하여, 가정답 인덱스로 된 인덱스 후보를 얻도록 하고, 상기 정답 인덱스 선정처리에서는 상기 인덱스 후보군 검증처리에 의해 얻어진 상기 가정답 인덱스로 된 인덱스 후보의 수에 따라서 정답 인덱스를 선정하도록 할 수 있다.
상기 가정답 인덱스로 된 인덱스 후보의 수를 Z로 나타내면, 상기 정답 인덱스 선정처리에서는 Z가 1인 경우에 상기 가정답 인덱스로 된 인덱스 후보를 상기 정답 인덱스로 함과 동시에, Z는 1보다 크고, 또한 소정의 수치보다 작은 경우에 가정답 인덱스로 된 Z개의 인덱스 후보와 각각 관련지어져 있는 Z장의 오리지널 화상을 상기 데이터베이스로부터 읽어내어 이용자에게 제시하도록 하고, 상기 이용자에 의해 선택된 1장의 오리지널 화상과 관련지어져 있는 인덱스 후보를 상기 정답 인덱스로 할 수 있다.
또한, 일 실시예에서는, 상기 로버스트 복호화 처리에 의해 얻어진 상기 정답 인덱스에 대해서 재부호화 처리를 행하여 상기 정답 인덱스의 로버스트 인덱스 코드 화상을 생성하고, 생성한 상기 정답 인덱스의 로버스트 인덱스 코드 화상을 상기 오리지널 화상에 매립하여 로버스트 인덱스 코드가 붙은 화상을 생성할 수 있다. 또한, 상기 로버스트 복호화 처리에 의해 얻어진 상기 정답 인덱스에 대해서 재부호화 처리를 행하여 상기 정답 인덱스의 로버스트 인덱스 코드 화상을 생성하고, 생성한 상기 정답 인덱스의 로버스트 인덱스 코드 화상을 상기 열화 후의 로버스트 인덱스 코드가 붙은 화상에 다시 매립하여 로버스트 인덱스 코드가 붙은 화상을 생성할 수 있으며, 상기 N개의 색 정보는 R값, G값, 및 B값일 수 있다.
본 발명의 일 실시예에 따르면, 인덱스를 부호화하여 얻어지는 컬러 코드인 로버스트 인덱스 코드의 화상(로버스트 인덱스 코드 화상)이 화상처리기술에 의한 화상 압축이나 신장 등에 의해 열화된 경우에도, 그 열화된 로버스트 인덱스 코드 화상으로부터 인덱스를 로버스트하게 복호화할 수 있는 로버스트 인덱스 코드를 제공할 수 있다.
또한, 본 발명의 다른 실시예에 따르면, 온라인에서의 화상처리(예를 들어 온라인에서의 화상 압축이나 신장 등)가 원인으로 열화된 로버스트 인덱스 코드 화상으로부터도 인덱스가 바르게 복호될 확률은 높아지므로, 통신 네트워크 상에서도 본 발명의 로버스트 인덱스 코드를 안심하고 사용할 수 있음과 동시에, 본 발명의 로버스트 인덱스 코드를 이용하는 각종 어플리케이션의 개발이나 시스템의 설계가 가능한 로버스트 인덱스 코드를 제공할 수 있다.
도 1은 본 발명의 일 실시예에 따른 로버스트 인덱스 코드의 화상(로버스트 인덱스 코드 화상) 및 로버스트 인덱스 코드 화상을 매립한 화상(로버스트 인덱스 코드가 붙은 화상)을 도시하는 것이다.
도 2는 본 발명의 일 실시예에 따른 로버스트 인덱스 코드에 관한 처리를 도시하는 플로우차트이다.
도 3은 본 발명의 일 실시예에 따른 로버스트 인덱스 코드 화상의 생성을 설명하기 위한 도면이다.
도 4는 본 발명의 다른 실시예에 따른 로버스트 인덱스 코드 화상의 생성을 설명하기 위한 도면이다.
도 5는 본 발명의 일 실시예에 따른 로버스트 인덱스 코드 영역을 설명하기 위한 도면이다.
도 6은 본 발명의 일 실시예에 따른 화상 속성값의 생성을 설명하기 위한 도면이다.
도 7은 본 발명의 일 실시예에 따른 로버스트 인덱스 코드가 붙은 화상에 기초하여 생성된 화상 속성값을 인덱스와 관련지어서 데이터베이스에 저장하는 것을 설명하기 위한 것이다.
도 8은 본 발명의 일 실시예에 따른 로버스트 인덱스 코드가 붙은 화상과 열화 후의 로버스트 인덱스 코드가 붙은 화상의 화상 예이다.
도 9는 본 발명의 일 실시예에 따른 로버스트 인덱스 코드 화상과 열화 후의 로버스트 인덱스 코드의 화상 예이다.
도 10은 본 발명의 일 실시예에 따른 로버스트 인덱스 코드 화상으로부터 인덱스를 복호하는 것을 설명하기 위한 것이다.
도 11은 본 발명의 일 실시예에 따른 열화 후의 로버스트 인덱스 코드 화상으로부터 인덱스를 복호하는 것을 설명하기 위한 것이다.
도 12는 본 발명의 일 실시예에 따른 열화 후의 로버스트 인덱스 코드 화상으로부터 인덱스를 복호할 때에 본 발명의 독자적인 이원화 알고리즘에 기초하여 생성된 이진수의 비트열 후보군을 설명하기 위한 것이다.
도 13은 도 12에 도시된 이진수의 비트열 후보군과, 해당 이진수의 비트열 후보군을 구성하는 각 이진수의 비트열 후보를 십진수화하여 얻어진 각 인덱스 후보로 구성되는 인덱스 후보군을 도시하는 것이다.
도 14는 본 발명의 일 실시예에 따른 열화 후의 로버스트 인덱스 코드가 붙은 화상에 기초하여 생성된 복수의 제1 화상 속성값의 일례를 도시하는 것이다.
도 15는 본 발명의 일 실시예에 따른 데이터베이스에 저장되어 있는 복수의 인덱스와, 이들 인덱스와 관련지어져 있는 화상 속성값을 모식적으로 도시하는 것이다.
도 16은 본 발명의 일 실시예에 따른 로버스트 인덱스 코드의 이용방법을 설명하기 위한 모식도이다.
도 17은 본 발명의 일 실시예에 따른 독자적인 이원화 알고리즘에 기초하여 생성된 이진수의 비트열 후보군으로부터 얻어진 인덱스 후보군을 검증하기 위한 인덱스 후보군 검증처리의 흐름을 도시하는 플로우차트이다.
도 18은 본 발명의 일 실시예에 따른 재부호화 처리를 설명하기 위한 모식도이다.
도 19는 본 발명의 일 실시예에 따른 정답 인덱스 선정처리의 흐름을 도시하는 플로우차트이다.
도 2는 본 발명의 일 실시예에 따른 로버스트 인덱스 코드에 관한 처리를 도시하는 플로우차트이다.
도 3은 본 발명의 일 실시예에 따른 로버스트 인덱스 코드 화상의 생성을 설명하기 위한 도면이다.
도 4는 본 발명의 다른 실시예에 따른 로버스트 인덱스 코드 화상의 생성을 설명하기 위한 도면이다.
도 5는 본 발명의 일 실시예에 따른 로버스트 인덱스 코드 영역을 설명하기 위한 도면이다.
도 6은 본 발명의 일 실시예에 따른 화상 속성값의 생성을 설명하기 위한 도면이다.
도 7은 본 발명의 일 실시예에 따른 로버스트 인덱스 코드가 붙은 화상에 기초하여 생성된 화상 속성값을 인덱스와 관련지어서 데이터베이스에 저장하는 것을 설명하기 위한 것이다.
도 8은 본 발명의 일 실시예에 따른 로버스트 인덱스 코드가 붙은 화상과 열화 후의 로버스트 인덱스 코드가 붙은 화상의 화상 예이다.
도 9는 본 발명의 일 실시예에 따른 로버스트 인덱스 코드 화상과 열화 후의 로버스트 인덱스 코드의 화상 예이다.
도 10은 본 발명의 일 실시예에 따른 로버스트 인덱스 코드 화상으로부터 인덱스를 복호하는 것을 설명하기 위한 것이다.
도 11은 본 발명의 일 실시예에 따른 열화 후의 로버스트 인덱스 코드 화상으로부터 인덱스를 복호하는 것을 설명하기 위한 것이다.
도 12는 본 발명의 일 실시예에 따른 열화 후의 로버스트 인덱스 코드 화상으로부터 인덱스를 복호할 때에 본 발명의 독자적인 이원화 알고리즘에 기초하여 생성된 이진수의 비트열 후보군을 설명하기 위한 것이다.
도 13은 도 12에 도시된 이진수의 비트열 후보군과, 해당 이진수의 비트열 후보군을 구성하는 각 이진수의 비트열 후보를 십진수화하여 얻어진 각 인덱스 후보로 구성되는 인덱스 후보군을 도시하는 것이다.
도 14는 본 발명의 일 실시예에 따른 열화 후의 로버스트 인덱스 코드가 붙은 화상에 기초하여 생성된 복수의 제1 화상 속성값의 일례를 도시하는 것이다.
도 15는 본 발명의 일 실시예에 따른 데이터베이스에 저장되어 있는 복수의 인덱스와, 이들 인덱스와 관련지어져 있는 화상 속성값을 모식적으로 도시하는 것이다.
도 16은 본 발명의 일 실시예에 따른 로버스트 인덱스 코드의 이용방법을 설명하기 위한 모식도이다.
도 17은 본 발명의 일 실시예에 따른 독자적인 이원화 알고리즘에 기초하여 생성된 이진수의 비트열 후보군으로부터 얻어진 인덱스 후보군을 검증하기 위한 인덱스 후보군 검증처리의 흐름을 도시하는 플로우차트이다.
도 18은 본 발명의 일 실시예에 따른 재부호화 처리를 설명하기 위한 모식도이다.
도 19는 본 발명의 일 실시예에 따른 정답 인덱스 선정처리의 흐름을 도시하는 플로우차트이다.
발명의 실시를 위한 최선의 형태
상기 기술적 과제를 해결하기 위한 본 발명의 일 실시예에 따른 로버스트 인덱스 코드는, 오리지널 화상을 일의적으로 식별할 수 있고, 십진수인 인덱스에 대해서 부호화 처리를 행하여 생성된 로버스트 인덱스 코드 화상을 상기 오리지널 화상에 매립하여 얻어진 로버스트 인덱스 코드가 붙은 화상이 네트워크를 통할 때에 행해지는 화상 처리에 의해 열화되어 얻어진 열화 후의 로버스트 인덱스 코드가 붙은 화상에 포함되어 있는 열화 후의 로버스트 인덱스 코드 화상으로부터, 상기 인덱스를 로버스트 복호화 처리에 의해 로버스트하게 복호화할 수 있는 로버스트 인덱스 코드를 포함할 수 있다.
발명의 실시를 위한 형태
본 발명에 따른 로버스트 인덱스 코드(Robust Index Code)는 색의 배열로 정보(인덱스)를 표현하는 컬러 코드이다. 본 발명은 인덱스를 부호화하여 얻어지는 컬러 코드인 로버스트 인덱스 코드의 화상(이하 단순히 "로버스트 인덱스 코드 화상"이라고도 한다.)이 화상압축기술(예를 들어 JPEG 압축)에 의한 화상 압축 등에 의해 열화된 경우에도 그 열화된 로버스트 인덱스 코드 화상(이하 단순히 "열화 후의 로버스트 인덱스 코드 화상"이라고도 한다.)으로부터 인덱스를 로버스트 복호(바르게 복호)할 수 있도록 한 로버스트 인덱스 코드에 관한 것이다. 화상의 열화의 예로서는 색의 간섭, 침투, 또는 경계 소멸일 수 있다.
이하에서는 인덱스를 "로버스트 인덱스 코드에서의 부호화의 대상" 또는 "부호화의 대상"이라고도 한다. 본 발명에서는 로버스트 인덱스 코드 화상을 로버스트 인덱스 코드 화상의 매립 장소가 되는 화상에 매립하도록 하고 있다.
본 발명에서 말하는 "화상"이란 디지털 화상을 의미한다. 또한 본 발명에서는 "화상"의 파일 형식으로서 기존의 디지털 화상의 파일 형식(예를 들어 JPEG, 비트맵, PNG, GIF, TIFF, WebP, JPEG, XR, JPEG-2000, DNG, HD 포토 등)을 사용한다. 또한, 이하에서는 본 발명에서 말하는 "화상"을 단순히 "오리지널 화상"이라고 지칭할 수도 있다.
본 발명에서는 1개의 화상에는 해당 화상과 관련되는 화상관련정보가 존재하고 있으며, 또한, 해당 화상 및 해당 화상관련정보는 후술하는 해당 화상에 기초하여 생성되는 화상 속성값과 함께 데이터베이스에 저장되어 있다. 해당 화상관련정보의 구체적인 예로서, 예를 들어 해당 화상과 관련되는 텍스트, URL, 관련화상정보, 위치정보, 게임이나 가상현실(VR: Virtual Reality) 콘텐츠와 같은 어플리케이션이 있다.
본 발명에서 말하는 "화상 속성값"이란 "화상"의 다양한 특징을 나타내는 속성값이며, 예를 들어, 화상의 비율(종횡비), 화상의 크기, 화상의 색분포 정보, RLE(Run Length Encoding) 압축 알고리즘, RGB 히스토그램, 밝기(Brightness) 차이, FREAK(Fast Retina Keypoint), BRISK(Binary Robust Invariant Scalable Keypoints), SURF(Speeded Up Robust Features), ORB(Oriented FAST and Rotated BRIEF), PSNR(Peak signal-to-noise ratio), 비트맵, 평균 해쉬(Average Hash), 또는 PHash에 의해 얻어지는 화상 전체 또는 부분영역의 화상의 특성을 나타내는 정보이다. 본 발명에서 1개의 화상은 해당 화상을 일의적으로 식별할 수 있는 1개의 인덱스에 대응함과 동시에, 해당 화상에 기초하여 생성되는 복수의 화상 속성값을 가질 수 있다. 또한, 해당 화상에 대응하는 인덱스를 부호화하여 얻어지는 로버스트 인덱스 코드 화상을 해당 화상에 매립할 수 있다.
여기서, 본 발명에서 말하는 "인덱스"란 인덱스를 부호화하여 얻어지는 로버스트 인덱스 코드 화상의 매립 장소가 되는 화상의 화상관련정보 및 화상 속성값을 저장하고 있는 데이터베이스에 접속하기 위한 키이다. 본 발명에서는 로버스트 인덱스 코드 화상을 매립한 화상을 "로버스트 인덱스 코드가 붙은 화상"이라고 한다. 로버스트 인덱스 코드가 붙은 화상은 네트워크를 통해서 다양한 서비스를 경유하면 화상이 열화될 가능성이 높다.
이러한 화상 열화는 화상처리기술에 의한 화상처리, 예를 들어, JPEG 압축에 의해 발생할 수 있으며(예를 들어 로버스트 인덱스 코드가 붙은 화상이 네트워크 상에서 참조 및 확산됨으로써, 화상의 압축 및 신장 처리가 여러 번 행해져서 화상이 열화된 경우라 해도), 그 열화된 로버스트 인덱스 코드가 붙은 화상(이하 단순히 "열화 후의 로버스트 인덱스 코드가 붙은 화상"이라고도 한다.)에 포함되어 있는 열화 후의 로버스트 인덱스 코드 화상으로부터 인덱스를 로버스트하게 복호화할 수 있다.
도 1a에 본 발명의 로버스트 인덱스 코드 화상의 일례를 도시하고 있으며, 도 1b에 본 발명의 로버스트 인덱스 코드가 붙은 화상의 일례를 도시한다.
도 2는 본 발명의 일 실시예에 따른 인덱스의 부호화 및 로버스트 인덱스 코드가 붙은 화상의 생성을 나타내는 순서도이다.
도 2를 참조하면, 먼저 특정 화상에 대해서 해당 화상의 인덱스의 생성을 서버에 요청한다(단계 S1). 또한, 본 발명에서 서버는 화상, 화상관련정보 및 화상 속성값을 저장하기 위한 데이터베이스를 구비하도록 되어 있다.
이후, 상기 해당 화상의 화상관련정보를 서버로부터 부여된 인덱스와 관련지어 함께 데이터베이스에 저장한다(단계 S2). 상기 해당 화상에 기초하여 소정의 화상 속성값 생성 방법을 이용함으로써 상기 해당 화상의 화상 속성값을 생성한다(단계 S3). 생성된 화상 속성값은 상기 서버로부터 부여된 인덱스와 함께 관련지어 데이터베이스에 저장될 수 있다(단계 S4).
그리고, 소정의 부호화 방법에 따라 상기 서버로부터 부여된 인덱스를 부호화함으로써 로버스트 인덱스 코드 화상을 생성할 수 있다(단계 S5). 상기 로버스트 인덱스 코드 화상을 상기 해당 화상에 매립함으로써, 로버스트 인덱스 코드가 붙은 화상을 생성할 수 있다(단계 S6). 또한, 본 발명에서는 인덱스를 생성하기 위해서 단계 S1에 나타난 방법이 아니라, 해당 화상을 일의적으로 식별할 수 있는 인덱스를 그대로 해당 화상에 부여하는 방법을 선택할 수 있다. 또한, 인덱스란, 예를 들어 1, 2, 3, … 와 같은 연속 번호일 수 있다.
상기 단계 S3에서는 상기 해당 화상에 기초하여 소정의 화상 속성값 생성 방법을 이용하여 상기 해당 화상의 화상 속성값을 생성할 수 있다. 그러나, 본 발명의 화상 속성값을 생성하는 방법은 이에 한정되지 아니하며, 상기 단계 S3에 의한 처리를 행하지 아니하고, 상기 단계 S6에 의한 처리에 의해 로버스트 인덱스 코드가 붙은 화상이 생성되고, 이후에 상기 로버스트 인덱스 코드가 붙은 화상에 기초하여 소정의 화상 속성값 생성 방법을 이용하여 해당 화상의 화상 속성값을 생성할 수도 있다.
<부호화 처리>
도 3 및 도 4 는 본 발명의 다양한 실시예에 따른 로버스트 인덱스 코드 화상의 생성을 설명하기 위한 것이다. 여기서, 도 3 및 도 4를 참조하며 본 발명에서의 인덱스의 부호화(인코딩) 및 로버스트 인덱스 코드 화상의 생성에 대해서 구체적인 예를 설명한다. 특히, 상기 단계 S5에서 행해지는 본 발명의 소정의 부호화 방법에 의한 인덱스의 인코딩에 대해서 구체적으로 설명하기로 한다.
먼저, 상기 단계 S1에서 서버로부터 부여된 십진수의 인덱스를 이진수의 비트열로 변환한다. 예를 들어, 인덱스가 1001(십진수)인 경우에 그 십진수(1001)를 이진수의 비트열로 변환하면 이진수의 비트열 "000000001111101001"이 얻어진다. 이후, 얻어진 이진수의 비트열을 3비트씩 나눔으로써 복수의 3비트의 비트열이 얻어지고, 얻어진 각각의 3비트의 비트열에 대해서 색 정보에 의한 컬러화를 행한다.
또한, 이하에서는 색 정보로서 R(Red)값, G(Green)값, 및 B(Blue)값을 사용한다. 예를 들어, 이진수의 비트열 "000000001111101001"을 3비트씩 나눠 도 3에 도시된 바와 같은 6개의 3비트의 비트열이 얻어진다. 도 3에 도시된 바와 같이, 각 3비트의 비트열에 있어서 첫 번째 비트에 대해서 R값에 의한 컬러화가 행해지고, 두 번째 비트에 대해서 G값에 의한 컬러화가 행해지고, 세 번째 비트에 대해서 B값에 의한 컬러화가 행해진다.
즉, 도 3에 있어서,
첫 번째 비트의 값은 "0"일 때에 첫 번째 비트에 대응하는 R값을 "0"으로 한다.
첫 번째 비트의 값은 "1"일 때에 첫 번째 비트에 대응하는 R값을 "255"로 한다.
두 번째 비트의 값은 "0"일 때에 두 번째 비트에 대응하는 G값을 "0"으로 한다.
두 번째 비트의 값은 "1"일 때에 두 번째 비트에 대응하는 G값을 "255"로 한다.
세 번째 비트의 값은 "0"일 때에 세 번째 비트에 대응하는 B값을 "0"으로 한다.
세 번째 비트의 값은 "1"일 때에 세 번째 비트에 대응하는 B값을 "255"로 한다.
이와 같이, 본 발명에서는 각 3비트의 비트열에 대해서 R값, G값, 및 B값에 의한 컬러화를 행할 때에 도 3에 도시된 바와 같은 R값, G값, 및 B값을 얻을 수 있다.
본 발명에서는 도 4에 도시된 바와 같이, 인덱스(십진수)를 변환하여 얻어진 이진수의 비트열로부터 얻어진 각 3비트의 비트열에 대해서 각각 R값, G값, 및 B값에 의한 컬러화를 행함으로써 인덱스를 부호화하여, 복수의 컬러 마크를 갖는 로버스트 인덱스 코드 화상을 생성할 수 있다. 또한, 도 4의 (6), (5), (4), (3), (2), (1)은 이진수의 비트열 "000000001111101001"로부터 얻어진 6개의 3비트의 비트열 "000", "000", "001", "111", "101", "001"에 각각 대응할 수 있다.
도 4에 있어서,
3비트의 비트열(1)이 대응하는 R값, G값, 및 B값으로 얻어진 컬러 마크는 컬러 마크 1이다.
3비트의 비트열(2)이 대응하는 R값, G값, 및 B값으로 얻어진 컬러 마크는 컬러 마크 2이다.
3비트의 비트열(3)이 대응하는 R값, G값, 및 B값으로 얻어진 컬러 마크는 컬러 마크 3이다.
3비트의 비트열(4)이 대응하는 R값, G값, 및 B값으로 얻어진 컬러 마크는 컬러 마크 4이다.
3비트의 비트열(5)이 대응하는 R값, G값, 및 B값으로 얻어진 컬러 마크는 컬러 마크 5이다.
3비트의 비트열(6)이 대응하는 R값, G값, 및 B값으로 얻어진 컬러 마크는 컬러 마크 6이다.
상기 구체적인 예에서는 인덱스를 변환하여 얻어진 이진수의 비트열을 복수의 3비트의 비트열로 나누도록 하고, 각 3비트의 비트열에 대해서 이진수 3비트를 R값, G값, 및 B값에 각각 할당하여 8색의 컬러화를 행하고 있다. 그러나, 본 발명의 다른 실시예에 따른 부호화 처리에서는 인덱스를 변환하여 얻어진 이진수의 비트열을 복수의 2비트의 비트열로 나누도록 하고, 각 2비트의 비트열에 대해서 이진수 2비트를 B값 및 Y(Yellow)값에 할당하여 4색의 컬러화를 수행할 수도 있다. 또한, 본 발명의 부호화 처리에서는 인덱스를 변환하여 얻어진 이진수의 비트열을 복수의 N(N≥2) 비트의 비트열로 나누도록 하고, 각 N비트의 비트열에 대해서 이진수 N비트를 N개의 색 정보에 할당하여 2의 N제곱개(2N)의 색의 컬러화를 행할 수도 있다.
본 발명에서는 로버스트 인덱스 코드 화상을 화상에 매립함으로써 로버스트 인덱스 코드가 붙은 화상을 생성한다. 본 발명에서 말하는 "로버스트 인덱스 코드 영역"이란 로버스트 인덱스 코드가 붙은 화상 중에서 로버스트 인덱스 코드 화상이 점유하고 있는 영역이다.
도 5는 본 발명의 일 실시예에 따른 로버스트 인덱스 코드 영역을 설명하기 위한 도면이다. 여기서, 도 5를 참조하면서 로버스트 인덱스 코드 영역에 대해서 설명한다. 본 발명에서는 로버스트 인덱스 코드가 붙은 화상에 포함되어 있는 로버스트 인덱스 코드 화상으로부터 인덱스를 로버스트에 바르게 복호하기 위하여 로버스트 인덱스 코드가 붙은 화상에서의 로버스트 인덱스 코드 영역을 정확하게 인식할 필요가 있다.
이를 위하여, 본 발명에서는 도 5에 도시된 바와 같이, 로버스트 인덱스 코드 영역(300)에 대해서 로버스트 인덱스 코드 영역의 배경(이하, "배경"이라고도 함)(302)을 밝은 단색, 예를 들어, 회색을 R값:238, G값:238, B값:238으로 구성함과 동시에, 배경(302)과의 콘트라스트 차이를 가능한 넓히기 위해서 외벽(301)을 어두운 단색, 예를 들어, 어두운 단색을 R값:96, G값:96, B값:96으로 구성할 수 있다. 또한, 로버스트 인덱스 코드가 붙은 화상에 JPEG 압축과 같은 화상처리를 할 때 외부의 색(즉 로버스트 인덱스 코드 영역을 제외한 로버스트 인덱스 코드가 붙은 화상의 색)이 로버스트 인덱스 코드 영역에 침투되지 않도록 충분한 값(a픽셀, 예를 들어 a=4의 경우 4픽셀임)을 갖는 외벽(301)을 설정할 수 있다.
도 5에 도시된 바와 같이, 로버스트 인덱스 코드 영역(300)은 가로를 n분할, 세로를 m분할하고, 그 분할된 영역에 인코딩된 컬러 마크를 매립할 수 있다. 각각 분할된 데이터 영역의 중심은 사각의 "로버스트 인덱스 코드 영역"의 가로변의 1/n, 세로변의 1/m을 기점으로 하여 직선으로 연결한 교점에 위치시킬 수 있다. 이러한 방법으로 "로버스트 인덱스 코드 영역"을 추출하고, 사각의 "로버스트 인덱스 코드 영역"의 각 변의 길이를 계산한다. 그리고, 사전에 정의된 n, m에 의해 분할하고, 각각의 포인트를 직선으로 연결하면 각 데이터 영역의 중심을 취할 수 있다. 이러한 상기 "로버스트 인덱스 코드"의 구성 예는 1개의 (n, m)의 조합이 아니라, 복수의 (n, m)의 조합으로부터도 이루어질 수 있다. 예를 들어, 변의 1/7, 1/8, 1/9 위치를 취하여 직선을 연결하여 교점의 위치에 데이터 영역을 위치시켜도 된다.
또한, 도 5에 도시된 바와 같이, 모든 데이터 영역 사이에는 a픽셀의 스페이스를 배치한다. 이 배경의 단색의 스페이스를 배치함으로써 로버스트성은 올라간다. 화상의 열화에 의해 옆에 위치된 데이터 영역에 색이 침투되는 경우가 있으며, 데이터 영역 사이에 단색의 스페이스를 배치함으로써 침투의 영향을 방지할 수 있다.
<화상 속성값 생성처리>
도 6은 본 발명의 일 실시예에 따른 화상 속성값의 생성을 설명하기 위한 도면이다. 여기서, 상기 단계 S3에서 행해지는 화상 또는 로버스트 인덱스 코드가 붙은 화상에 기초하여 화상 속성값을 생성하는 방법에 대해서 구체적으로 설명하기로 한다. 또한, 이하 화상 속성값을 단순히 "속성값"이라고도 한다.
상술한 바와 같이, 본 발명에서는 1개의 화상에 대해서 해당 화상에 기초하여 생성되는 복수의 화상 속성값이 존재한다. 하기 구체 예에서는 도 6에 도시된 로버스트 인덱스 코드가 붙은 화상에 기초하여 화상 속성값 A 및 화상 속성값 B를 포함하는 2개의 화상 속성값이 생성된다. 상기 화상 속성값 A는 화상의 비율(종횡비)이며, 상기 화상 속성값 B는 화상의 색분포 정보이다.
도 6에 도시된 로버스트 인덱스 코드가 붙은 화상에 대해서 화상의 세로방향의 픽셀 수는 1024 픽셀이며, 화상의 가로방향의 픽셀 수는 1280 픽셀이며, 화상의 종횡비를 나타내는 화상 속성값 A는 1024/1280이 되어 0.8이 다. 또한, 화상의 색분포 정보를 나타내는 화상 속성값 B를 생성하기 위해서 도 6에 도시된 바와 같이, 우선 로버스트 인덱스 코드가 붙은 화상을 복수의 영역으로 나눈다. 로버스트 인덱스 코드가 붙은 화상을 나눔으로써 얻어진 각 영역(도 6의 예에서는 영역 A, 영역 B, 영역 C, 영역 D, 영역 E, 영역 F, 영역 G, 영역 H, 영역 I)에 대해서 각각의 RGB의 분포률을 화상 속성값 B로서 산출할 수 있다.
구체적으로 어떤 영역의 화상 속성값 B를 생성하기 위하여, 우선 해당 영역의 모든 픽셀의 R값, G값, B값을 추출하고, 다음에 추출한 R값, G값, B값이 소정의 기준값을 초과하는 픽셀의 수를 계산한다. 또한 이하의 예에서는 128을 소정의 기준값으로 한다.
예를 들어, 영역 D의 화상 속성값 B를 생성하기 위한 영역 D의 총 픽셀 수는 146090(=(1024/3)×(1280/3)) 픽셀이다. 또한, 영역 D에서는 R값이 소정의 기준값(128)을 초과하는 픽셀의 수는 46000이고, G값이 소정의 기준값(128)을 초과하는 픽셀의 수는 4500이며, B값이 소정의 기준값(128)을 초과하는 픽셀의 수는 1500인 경우에 영역 D에 적색계의 픽셀이 많다는 것을 알 수 있다. 상기 결과를 하기와 같이 퍼센트로 나타냄으로써 영역 D의 화상 속성값 B를 생성할 수 있다.
영역 D의 화상 속성값 B(R값)=46000÷146090=0.3148=약 31%
영역 D의 화상 속성값 B(G값)=4500÷146090=0.038=약 3%
영역 D의 화상 속성값 B(B값)=1500÷146090=0.0129=약 1%
즉, 어떤 영역에 대해서
해당 영역의 화상 속성값 B(R값)=해당 영역에서의 R값이 소정의 기준값을 초과하는 픽셀의 수÷해당 영역의 총 픽셀 수
해당 영역의 화상 속성값 B(G값)=해당 영역에서의 G값이 소정의 기준값을 초과하는 픽셀의 수÷해당 영역의 총 픽셀 수
해당 영역의 화상 속성값 B(B값)=해당 영역에서의 B값이 소정의 기준값을 초과하는 픽셀의 수÷해당 영역의 총 픽셀 수
상기에서는 구체 예에 기초하여 영역 D의 화상 속성값 B의 생성방법에 대해서 설명했으나, 영역 D를 제외한 다른 영역(즉 영역 A, 영역 B, 영역 C, 영역 E, 영역 F, 영역 G, 영역 H, 영역 I)의 화상 속성값 B도 상기와 동일한 방법으로 산출할 수 있다.
이와 같이 생성된 화상 속성값 A 및 각 영역의 화상 속성값 B를, 도 7에 도시된 바와 같이 단계 S1에서 서버로부터 부여된 인덱스와 관련지어서 데이터베이스에 저장한다.
<화상 열화 예>
도 8a는 본 발명의 일 실시예에 따른 로버스트 인덱스 코드가 붙은 화상의 일례를 도시하고 있으며, 도 8b는 열화 후의 로버스트 인덱스 코드가 붙은 화상의 일례, 즉 도 8a의 로버스트 인덱스 코드가 붙은 화상이 JPEG 압축에 의해 열화된 경우의 화상을 도시한 것이다.
또한, 도 9a는 본 발명의 일 실시예에 따른 로버스트 인덱스 코드가 붙은 화상의 일예인 도 8a의 로버스트 인덱스 코드가 붙은 화상으로부터 잘라낸 로버스트 인덱스 코드 영역을 도시하고 있으며, 도 9b는 열화 후의 로버스트 인덱스 코드 화상의 일예인 도 8b의 열화 후의 로버스트 인덱스 코드가 붙은 화상으로부터 잘라낸 열화 후의 로버스트 인덱스 코드 영역을 도시하고 있다.
도 9a 및 도 9b를 참조하여 로버스트 인덱스 코드 영역과 열화 후의 로버스트 인덱스 코드 영역을 비교하면, JPEG 압축에 의한 열화 후의 로버스트 인덱스 코드 영역에서, 도 9b의 화살표 A, 화살표 B, 및 화살표 C로 도시된 바와 같이, 데이터 영역(컬러 마크)와 배경의 경계가 전체적으로 흐려지거나, 데이터 영역의 색과 다른 색이 데이터 영역에 침투되는 것을 알 수 있다. 즉, JPEG 압축에 의한 열화 후의 로버스트 인덱스 코드 영역에서 경계 소멸이나 색의 간섭 및 침투와 같은 열화 현상이 발생한다.
<로버스트 인덱스 코드 화상으로부터 인덱스를 복호하는 복호화 처리>
도 10은 본 발명의 일 실시예에 따른 로버스트 인덱스 코드 화상으로부터 인덱스를 복호하는 것을 설명하기 위한 것이다. 도 10을 참조하면서, 로버스트 인덱스 코드 화상으로부터 인덱스를 복호하는 방법을 로버스트 인덱스 코드 화상(로버스트 인덱스 코드 영역)에서의 6개의 데이터 영역(도 10의 (6a), (5a), (4a), (3a), (2a), (1a))으로부터 이진수의 비트열을 복호하는 처리(이하, "이진수의 비트열 복호처리"라 함)를 예를 들어 설명한다. 로버스트 인덱스 코드 화상에 존재하는 모든 데이터 영역에 대하여, 본 발명의 일 실시예에 따른 인덱스를 복호화하는 방법은 "이진수의 비트열 복호처리"를 행함으로써 얻어진 이진수의 비트열을 십진수화하여 인덱스를 복호화할 수 있다..
도 10에 도시된 바와 같이, 데이터 영역(6a), (5a), (4a), (3a), (2a), (1a)은 JPEG 압축에 의한 열화가 없기 때문에, 열화가 없는 데이터 영역(6a), (5a), (4a), (3a), (2a), (1a)으로부터 인덱스를 부호화할 때에 각 3비트의 비트열에 대해서 R값, G값, 및 B값에 의한 컬러화를 행함으로써 얻어진 R값, G값, 및 B값과 동일한 R값, G값, 및 B값을 화상처리에 의해 산출할 수 있다. 상기 R값, G값, 및 B값은 도 10에 도시된 데이터 영역 (6a), (5a), (4a), (3a), (2a), (1a)에 대응하는 값일 수 있다.
이와 같이, 열화가 없는 데이터 영역으로부터 화상처리에 의해 인덱스를 부호화할 때에 색정보(R값, G값, 및 B값)에 의한 컬러화를 행함으로써 얻어진 색 정보(R값, G값, 및 B값)과 동일한 색 정보(R값, G값, 및 B값)을 해당 영역의 색정보로 획득할 수 있다. 따라서, 산출된 데이터 영역(6a), (5a), (4a), (3a), (2a), (1a)에 대응하는 R값, G값, 및 B값으로부터 이진수의 비트열 복호처리에 의해 도 10에 도시된 바와 같이 이진수의 비트열을 정확하게 복호할 수 있다.
예를 들어, 이진수의 비트열 복호처리는 도 10에 도시된 바와 같이, 열화가 없는 첫번째 데이터 영역(1a)으로부터 화상 처리에 의해 얻어진 R값은 "0", G값은 "255", 및 B값은 "255"일 수 있으며, 이들 값을 기초로 하여 R값에 대응하는 첫 번째 비트의 값을 "0", G값에 대응하는 두 번째 비트의 값을 "1", B값에 대응하는 세 번째 비트의 값을 "1"로 할 수 있다. 열화가 없는 두번째 데이터 영역(2a)으로부터 화상 처리에 의해 얻어진 R값은 "255", G값은 "255", B값은 "255"일 수 있으며, 이들 값을 기초로 하여 R값에 대응하는 첫 번째 비트의 값을 "1", G값에 대응하는 두 번째 비트의 값을 "1", B값에 대응하는 세 번째 비트의 값을 "1"로 할 수 있다. 열화가 없는 세번째 데이터 영역(3a)으로부터 화상 처리에 의해 얻어진 R값은 "0", G값은 "0", B값은 "255"일 수 있으며, 이들 값을 기초로 R값에 대응하는 첫 번째 비트의 값을 "0", G값에 대응하는 두 번째 비트의 값을 "0", B값에 대응하는 세 번째 비트의 값을 "1"로 할 수 있다.
열화가 없는 네번째 데이터 영역(4a)으로부터 화상 처리에 의해 얻어진 R값은 "255", G값은 "0", B값은 "0"일 수 있고, 이들 값을 기초로 R값에 대응하는 첫 번째 비트의 값을 "1", G값에 대응하는 두 번째 비트의 값을 "0", B값에 대응하는 세 번째 비트의 값을 "0"로 할 수 있다. 열화가 없는 다섯번째 데이터 영역(5a)으로부터 화상 처리에 의해 얻어진 R값은 "0", G값은 "0", B값은 "0"일 수 있고, 이들 값을 기초로 하여 R값에 대응하는 첫 번째 비트의 값을 "0", G값에 대응하는 두 번째 비트의 값을 "0", B값에 대응하는 세 번째 비트의 값을 "0"으로 할 수 있으며, 열화가 없는 여섯번째 데이터 영역(6a)으로부터 화상 처리에 의해 얻어진 R값은 "0", G값은 "255", B값은 "255"이기 때문에, R값에 대응하는 첫 번째 비트의 값을 "0", G값에 대응하는 두 번째 비트의 값을 "1", B값에 대응하는 세 번째 비트의 값을 "1"로 한다.
<열화 후의 로버스트 인덱스 코드 화상으로부터 인덱스를 복호할 때의 문제점>
열화 후의 로버스트 인덱스 코드 화상으로부터 인덱스를 복호화할 때에는 데이터 영역에 압축에 의한 열화가 있을 수 있으므로, 열화가 있는 데이터 영역들로부터 인덱스를 부호화할 때에 각 3비트의 비트열에 대하여 R,G,B 값의 컬러화를 행함으로써 획득된 R,G,B 값과 열화가 있는 데이터 영역들의 R,G,B 값을 획득할 수 있다.
도 11은 본 발명의 일 실시예에 따른 열화 후의 로버스트 인덱스 코드 화상으로부터 인덱스를 복호하는 것을 설명하기 위한 것이다. 열화 후의 로버스트 인덱스 코드 화상으로부터 인덱스를 복호할 때에 도 11에 도시된 바와 같이 데이터 영역(6a), (5a), (4a), (3a), (2a), (1a)에 JPEG 압축에 의한 열화가 있기 때문에, 열화가 있는 데이터 영역(6a), (5a), (4a), (3a), (2a), (1a)으로부터 화상 처리에 의해 인덱스를 부호화할 때에 각 3비트의 비트열에 대해서 R값, G값, 및 B값에 의한 컬러화를 행함으로써 얻어진 R값, G값, 및 B값과 다른 R값, G값, 및 B값(도 11에 도시된 열화가 있는 데이터 영역(6a), (5a), (4a), (3a), (2a), (1a)에 대응하는 R값, G값, 및 B값)을 산출하게 된다.
일 실시예에서는, 열화가 있는 데이터 영역으로부터 화상처리에 의해 인덱스를 부호화할 때에 색 정보(R값, G값, 및 B값)에 의한 컬러화를 행함으로써 얻어진 색 정보(R값, G값, 및 B값)와 다른 색 정보(R값, G값, 및 B값)를 얻게 된다. 따라서, 도 11에 도시된 바와 같이, 산출된 열화가 있는 데이터 영역(6a), (5a), (4a), (3a), (2a), (1a)에 대응하는 R값, G값, 및 B값으로부터 바른 이진수의 비트열과 다른 이진수의 비트열을 복호하게 된다. 도 11에 도시된 바와 같이, 산출된 열화가 있는 데이터 영역(6a), (5a), (4a), (3a), (2a), (1a)에 대응하는 R값, G값, 및 B값은 인덱스를 부호화할 때에 각 3비트의 비트열에 대해서 R값, G값, 및 B값에 의한 컬러화를 행함으로써 얻어진 R값, G값, 및 B값과 다르기 때문에, 바른 이진수의 비트열과 다른 이진수의 비트열이 복호될 수 있다.
이하, 열화 후의 로버스트 인덱스 코드 화상으로부터 인덱스를 복호할 때에 발생하는 "부호화 시의 R값, G값, 및 B값과 복호화시의 R값, G값, 및 B값이 다른" 현상을 단순히 "부호화 시의 색 정보와 복호화시의 색 정보가 다른 현상"이라고도 한다.
아울러, 도 11에서는 열화가 있는 데이터 영역에 대응하는 R값, G값, 및 B값으로부터 소정의 기준값에 기초하여 이진수의 비트열을 복호하도록 하고 있으며, 또한 소정의 기준값으로서 예를 들어 128을 사용한다. 즉 열화가 있는 데이터 영역에 대응하는 R값이 소정 기준값 이상(128 이상)인 경우에 R값으로부터 복호되는 비트의 비트값을 "1"로 한다. 열화가 있는 데이터 영역에 대응하는 R값이 소정의 기준값 미만(128 미만)인 경우에 R값으로부터 복호되는 비트의 비트값을 "0"으로 한다. 마찬가지로 열화가 있는 데이터 영역에 대응하는 G값이 소정의 기준값 이상(128 이상)인 경우에 G값으로부터 복호되는 비트의 비트값을 "1"로 한다. 열화가 있는 데이터 영역에 대응하는 G값이 소정의 기준값 미만(128 미만)인 경우에 G값으로부터 복호되는 비트의 비트값을 "0"으로 한다. 또한 열화가 있는 데이터 영역에 대응하는 B값이 소정의 기준값 이상(128 이상)인 경우에 B값으로부터 복호되는 비트의 비트값을 "1"로 한다. 열화가 있는 데이터 영역에 대응하는 B값이 소정의 기준값 미만(128 미만)인 경우에 B값으로부터 복호되는 비트의 비트값을 "0"으로 한다.
<열화 후의 로버스트 인덱스 코드 화상으로부터 인덱스를 로버스트하게 복호화하는 로버스트 복호화 처리에서의 인덱스 후보군의 생성>
도 11은 본 발명의 일 실시예에 따른 열화 후의 로버스트 인덱스 코드 화상으로부터 인덱스를 복호하는 것을 설명하기 위한 것이고, 도 12는 본 발명의 일 실시예에 따른 열화 후의 로버스트 인덱스 코드 화상으로부터 인덱스를 복호할 때에 본 발명의 독자적인 이원화 알고리즘에 기초하여 생성된 이진수의 비트열 후보군을 설명하기 위한 것이며, 도 13은 도 12에 도시된 이진수의 비트열 후보군과, 해당 이진수의 비트열 후보군을 구성하는 각 이진수의 비트열 후보를 십진수화하여 얻어진 각 인덱스 후보로 구성되는 인덱스 후보군을 도시하는 것이다.
도 11을 참조하면, 열화 후의 로버스트 인덱스 코드 화상으로부터 인덱스를 복호할 때에 발생하는 "부호화 시의 색 정보와 복호 시의 색 정보가 다른 현상"에 기인하는 "바른 이진수의 비트열과는 다른 이진수의 비트열이 복호되는" 문제점을 해결하기 위한 방법을 도시하고 있다. 도 12를 참조하면, 열화가 있는 데이터 영역에 대응하는 R값, G값, 및 B값으로부터 본 발명의 독자적인 이원화 알고리즘에 기초하여 이진수의 비트열 후보군을 설정하고, 도 13을 참조하면, 설정한 이진수의 비트열 후보군을 구성하는 각 이진수의 비트열 후보를 십진수화하여 얻어진 각 인덱스 후보로 구성되는 인덱스 후보군을 검증하여 줄여감으로써 가정답 인덱스로 된 인덱스 후보를 구하고, 또한 가정답 인덱스로 된 인덱스 후보에 대해서 정답 인덱스 선정처리를 행하여 정답 인덱스를 획득 할 수 있다. 그러므로, 열화 후의 로버스트 인덱스 코드 화상의 매립 장소가 되는 화상의 모든 화상 속성값을 충족하는 인덱스 후보를 바른 인덱스(정답 인덱스)로서 획득할 수 있게 된다.
본 발명에서는 이와 같이 정답 인덱스로서 선출한 인덱스 후보를 복호화된 인덱스로 설정함으로써, 열화 후의 로버스트 인덱스 코드 화상으로부터 인덱스를 로버스트에 정확하게 복호화할 수 있다. 이하에서는, 열화 후의 로버스트 인덱스 코드 화상으로부터 인덱스를 로버스트하게 복호화하는 로버스트 복호화 처리에서 인덱스 후보군을 생성하는 인덱스 후보군 생성처리에 대해서 설명한다.
본 발명의 인덱스 후보군 생성 방법은 열화 후의 로버스트 인덱스 코드 화상으로부터 독자적인 이원화 알고리즘에 기초하여 인덱스 후보군을 생성할 수 있다. 일실시예에서는, 소정의 기준에 의하여, 예를 들어, 도 11에 도시된 바와 같이 소정의 기준값인 128을 기준으로 하여 열화가 있는 데이터 영역에 대응하는 R값, G값, 및 B값으로부터 이진수의 비트열에서의 어떤 비트를 바르게 복호할 수 없는 경우에 본 발명의 독자적인 이원화 알고리즘에 기초한로버스트 복호화 처리를 이용하여 바르게 복호화할 수 있다. 다 른 실시예에서는, 소정의 기준값에 의하여 열화가 있는 데이터 영역에 대응하는 R값, G값, 및 B값으로부터 이진수의 비트열에서의 어떤 비트의 비트값을 "1" 또는 "0"으로 하는 판정이 불가능한 경우에 본 발명의 독자적인 이원화 알고리즘에 기초한 로버스트 복호화 처리를 이용하면 바르게 복호화할 수 있다.
도 12는 본 발명의 일 실시예에 따른 열화 후의 로버스트 인덱스 코드 화상으로부터 인덱스를 복호할 때에 본 발명의 독자적인 이원화 알고리즘에 기초하여 생성된 이진수의 비트열 후보군을 설명하기 위한 것이다. 이하, 도 12에 도시된 열화 후의 로버스트 인덱스 코드 화상을 예로 하여, 본 발명의 독자적인 이원화 알고리즘에 기초하여 인덱스 후보군을 생성하는 인덱스 후보군 생성처리에 대해서 설명한다.
도 12를 참조하면, 먼저, 열화가 있는 데이터 영역(6a), (5a), (4a), (3a), (2a), (1a)으로부터 화상 처리에 의해 각각 대응하는 R값, G값, 및 B값을 산출한다. 도 12에 도시된 바와 같이, 열화가 있는 데이터 영역으로부터 화상 처리에 의해 산출된 R값, G값, 및 B값은 인덱스를 부호화할 때에 각 3비트의 비트열에 대해서 R값, G값, 및 B값에 의한 컬러화를 행함으로써 얻어진 R값, G값, 및 B값과 다를 수 있다. 이후, 산출된 열화가 있는 데이터 영역에 대응하는 R값, G값, 및 B값으로부터 제 1 기준값 - 제 2 기준값(단, 제 1 기준값<제 2 기준값)과 같은 소정의 기준범위에 기초하여 이진수의 비트열을 복호화 하도록 하고 있으며, 여기서, 예를 들어 제1 기준값을 100, 제2 기준값을 200으로 하는 경우에 소정의 기준범위는 100 내지 200이 된다.
본 발명의 로버스트 복호화 처리에서는 열화가 있는 데이터 영역에 대응하는 R값, G값, 및 B값이 소정의 기준범위 내인 경우(예를 들어 100~200 사이에 있는 경우)에 본 발명의 독자적인 이원화 알고리즘에 기초하여 대응하는 비트의 비트값을 "0"과 "1"의 두 가지로 한다. 일 실시예에서는, 도 12의 열화가 있는 데이터 영역(2a)에 대응하는 R값(118)에 대응하는 비트의 비트값을 "0"과 "1"의 두 가지로 하고 있으며, 또한 도 12의 열화가 있는 데이터 영역(3a)에 대응하는 G값(175)에 대응하는 비트의 비트값도 "0"과 "1"의 두 가지로 하고 있다.
다른 실시예에서는, 본 발명의 로버스트 복호화 처리에서는 열화가 있는 데이터 영역에 대응하는 R값, G값, 및 B값이 제1 기준값 미만인 경우에 대응하는 비트의 비트값을 "0"으로 한다. 또한, 열화가 있는 데이터 영역에 대응하는 R값, G값, 및 B값이 제2 기준값보다 큰 경우에 대응하는 비트의 비트값을 "1"로 할 수 있다. 이와 같이, 열화가 있는 데이터 영역(6a), (5a), (4a), (3a), (2a), (1a)에 대응하는 R값, G값, 및 B값으로부터 본 발명의 독자적인 이원화 알고리즘에 기초하여 4개의 이진수의 비트열로 구성하는 이진수의 비트열 후보군이 생성(설정)될 수 있다.
도 13은 도 12에 도시된 이진수의 비트열 후보군과, 해당 이진수의 비트열 후보군을 구성하는 각 이진수의 비트열 후보를 십진수화함으로써 얻어진 각 인덱스 후보로 구성되는 인덱스 후보군을 나타내는 것이다.
도 13에 도시된 바와 같이,
이진수의 비트열 후보 A로부터 얻어진 인덱스 후보는 100571이며,
이진수의 비트열 후보 B로부터 얻어진 인덱스 후보는 100603이며,
이진수의 비트열 후보 C로부터 얻어진 인덱스 후보는 100443이며,
이진수의 비트열 후보 D로부터 얻어진 인덱스 후보는 100475이다.
이상은 도 12에 도시된 열화 후의 로버스트 인덱스 코드 화상에서의 열화가 있는 데이터 영역(6a), (5a), (4a), (3a), (2a), (1a)에 대응하는 R값, G값, 및 B값으로부터 본 발명의 독자적인 이원화 알고리즘에 기초하여 4개의 이진수의 비트열 후보로 구성하는 이진수의 비트열 후보군을 생성하고, 생성한 이진수의 비트열 후보군으로부터 4개의 인덱스 후보로 구성하는 인덱스 후보군을 구하는 인덱스 후보군 생성처리에 대한 설명이다. 상술한 바와 같이 획득된 4개의 인덱스 후보로 구성하는 인덱스 후보군은 도 12에 도시된 열화 후의 로버스트 인덱스 코드 화상에서의 열화가 있는 데이터 영역(6a), (5a), (4a), (3a), (2a), (1a)으로부터 얻어진 인덱스 후보군일 수 있다.
본 발명에서는 상기 인덱스 후보군 생성처리를 이용하여 열화 후의 로버스트 인덱스 코드 화상에서의 모든 열화가 있는 데이터 영역에 대응하는 R값, G값, 및 B값으로부터 본 발명의 독자적인 이원화 알고리즘에 기초하여 이진수의 비트열 후보군을 생성할 수 있다. 이후, 상기 생성된 이진수의 비트열 후보군으로부터 열화 후의 로버스트 인덱스 코드 화상에서의 모든 열화가 있는 데이터 영역에 대응하는 인덱스 후보군을 구할 수 있다. 상술한 과정은 열화 후의 로버스트 인덱스 코드 화상으로부터 인덱스를 로버스트하게 복호화하는 로버스트 복호화 처리에서 인덱스 후보군 생성처리에 의한 인덱스 후보군의 생성에 대한 것이다. 후술할 설명에서는 이러한 "열화 후의 로버스트 인덱스 코드 화상에서의 모든 열화가 있는 데이터 영역에 대응하는 인덱스 후보군"을 "인덱스 후보군"이라고 지칭하기로 한다.
<열화 후의 로버스트 인덱스 코드 화상으로부터 인덱스를 로버스트하게 복호화하는 로버스트 복호화 처리에서의 인덱스 후보군의 검증>
본 발명에서는 열화 후의 로버스트 인덱스 코드가 붙은 화상의 복수의 화상 속성값을 이용하여 인덱스 후보군에 대해서 인덱스 후보군 검증처리를 행함으로써 인덱스 후보군에 포함되는 인덱스 후보를 검증하여 갯수를 줄일 수 있다..
도 17은 인덱스 후보군을 검증하기 위한 인덱스 후보군 검증처리의 흐름을 도시하는 순서도이다. 도 17을 참조하여 열화 후의 로버스트 인덱스 코드 화상으로부터 인덱스를 로버스트하게 복호화하는 로버스트 복호화 처리에서 인덱스 후보군 검증처리에 의한 인덱스 후보군의 검증에 대해서 설명하기로 한다.
도 17에 도시된 바와 같이, 인덱스 후보군 검증처리에서는, 우선 열화 후의 로버스트 인덱스 코드가 붙은 화상에 기초하여 해당 열화 후의 로버스트 인덱스 코드가 붙은 화상의 복수의 화상 속성값(이하 단순히 "복수의 제1 화상 속성값"이라고도 한다.)을 생성한다(단계 S11). 또한, 단계 S11에서, 열화 후의 로버스트 인덱스 코드가 붙은 화상으로부터 복수의 제1 화상 속성값을 생성할 때에 상술한 단계 S3에서 행해지는 <화상 속성값 생성처리>와 동일한 처리절차로 복수의 제1 화상 속성값을 생성하도록 하고 있다. 또한 단계 S11에서 생성된 복수의 제1 화상 속성값의 일례를 도 14에 도시하고 있다.
이후, 인덱스 후보군에 포함되어 있는 모든 인덱스 후보를 체크했는지 여부가 판정된다(단계 S12). 단계 S12에서는 모든 인덱스 후보를 체크했다고 판정된 경우에 후술하는 정답 인덱스 선정처리로 진행된다.
한편, 단계 S12에서는 모든 인덱스 후보를 체크하지 않았다고 판정된 경우에 아직 체크되지 않은 인덱스 후보 중 하나를 선택한다(단계 S13). 이후, 단계 S13에서 선택된 인덱스 후보를 이용하여 데이터베이스에 접속하고(단계 S14), 데이터베이스에 선택된 인덱스 후보가 존재하는지 여부를 판정한다(단계 S15). 단계 S15에서는 데이터베이스에 선택된 인덱스 후보가 존재하고 있지 않다고 판정된 경우에 선택된 인덱스 후보를 인덱스 후보군으로부터 삭제하고(단계 S16), 단계 S12로 되돌아간다.
한편, 단계 S15에서는 데이터베이스에 선택된 인덱스 후보가 존재하고 있다고 판정된 경우에 해당 인덱스 후보와 관련지어져 있는 복수의 화상 속성값(이하 단순히 "복수의 제2 화상 속성값"이라고도 한다.)을 데이터베이스로부터 읽어낸다(단계 S17). 단계 S11에서 생성된 복수의 제1 화상 속성값과, 단계 S17에서 읽어낸 복수의 제2 화상 속성값을 각각 비교하여, 얻어진 각각의 속성값 차이가 모두 각 소정의 범위 내에 있는지 여부를 판정한다(단계 S18). 단계 S18에서는 얻어진 각각의 속성값 차이가 모두 각 소정의 범위 내에 있다고 판정된 경우, 선택된 인덱스 후보를 가정답 인덱스로 하여(단계 S19), 스텝 S12로 되돌아가도록 하고, 그 이외로 판정된 경우(즉 "얻어진 각각의 속성값 차이가 모두 각 소정의 범위 내에 있는 것" 이외로 판정된 경우)에 선택된 인덱스 후보를 인덱스 후보군으로부터 삭제하고(단계 S16), 단계 S12로 되돌아간다.
이상과 같이, 본 발명에서는 열화 후의 로버스트 인덱스 코드가 붙은 화상에 기초하여 생성된 복수의 제1 화성 속성값을 이용하여 인덱스 후보군에 대해서 인덱스 후보군 검증처리를 행함으로써 인덱스 후보군을 검증하여, 가정답 인덱스를 얻을 수 있다.
도 13 내지 도 15를 이용하여 인덱스 후보군 검증처리의 구체적인 예를 설명한다. 도 13을 참조하면, 인덱스 후보군으로서 4개의 인덱스 후보 100571, 100603, 100443, 및 100475로 구성된 인덱스 후보군을 이용할 수 있다. 그리고, 도 14를 참조하여 복수의 제1 화상 속성값으로는 7개의 제1 화상 속성값(즉 속성값 A:0.8, 영역 A의 속성값 B(R값):10%, 영역 A의 속성값 B(G값):8.2%, 영역 A의 속성값 B(B값):11.4%, 영역 B의 속성값 B(R값):30.8%, 영역 B의 속성값 B(G값):13%, 영역 B의 속성값 B(B값):0.8%)을 이용한다. 그리고, 인덱스 후보군 검증처리에서 접속하는 데이터베이스로서 도 15에 도시된 데이터베이스를 이용할 수 있다.
또한, 일 실시예에서는 속성값 A의 속성값 차이에 따른 소정의 범위를 ±0.2로 할 수 있다. 속성값 A 이외의 6개의 제1 화상 속성값(즉 영역 A의 속성값 B(R값), 영역 A의 속성값 B(G값), 영역 A의 속성값 B(B값), 영역 B의 속성값 B(R값), 영역 B의 속성값 B(G값), 영역 B의 속성값 B(B값))에 따른 소정의 범위를 모두 ±0.8%로 할 수 있다. 이와 같은 전제에서 인덱스 후보군 검증처리를 행하면, 인덱스 후보 100443은 도 15에 도시된 데이터베이스에 존재하고 있지 않다고 판정되므로, 인덱스 후보군으로부터 인덱스 후보 100443이 삭제될 수 있다. 또한, 인덱스 후보 100571, 100603, 및 100475는 도 15에 도시된 데이터베이스에 존재하고 있다고 판정되므로, 인덱스 100571, 100603, 및 100475와 각각 관련지어져 있는 복수의 화상 속성값(복수의 제2 화상 속성값)을 데이터베이스로부터 읽어낼 수 있다.
도 15를 참조하면, 화상 속성값은 데이터베이스로부터 읽어내어 획득할 수 있다. 예를 들면, 인덱스 100571와 관련지어져 있는 7개의 제2 화상 속성값은 속성값 A:0.8, 영역 A의 속성값 B(R값):5.0%, 영역 A의 속성값 B(G값):10.0%, 영역 A의 속성값 B(B값):1.5%, 영역 B의 속성값 B(R값):3.5%, 영역 B의 속성값 B(G값):31.0%, 영역 B의 속성값 B(B값):10.0%을 포함할 수 있다. 인덱스 100603과 관련지어져 있는 7개의 제2 화상 속성값은 속성값 A:0.7, 영역 A의 속성값 B(R값):1.0%, 영역 A의 속성값 B(G값):10.0%, 영역 A의 속성값 B(B값):5.0%, 영역 B의 속성값 B(R값):30.5%, 영역 B의 속성값 B(G값):30.5%, 영역 B의 속성값 B(B값):3.0%로 될 수 있다. 인덱스 100475와 관련지어져 있는 7개의 제2 화상 속성값은 속성값 A:0.8, 영역 A의 속성값 B(R값):10.0%, 영역 A의 속성값 B(G값):8.0%, 영역 A의 속성값 B(B값):11.5%, 영역 B의 속성값 B(R값):31.0%, 영역 B의 속성값 B(G값):3.0%, 영역 B의 속성값 B(B값):1.0%일 수 있다.
이와 같이, 7개의 제1 화상 속성값과 7개의 제2 화상 속성값을 각각 비교하여, 얻어진 각각의 속성값 차이가 모두 각 소정의 범위 내(즉 ±0.2, ±0.8%, ±0.8%, ±0.8%, ±0.8%, ±0.8%, ±0.8%)에 있는지 여부가 판단된다. 도 15을 참조하면, 동그라미 표시된 속성값은 속성값 차이가 소정의 범위 내에 있다고 판정되는 속성값을 나타낸다. 이러한 판단 결과, 인덱스 후보 100571 및 100603은 삭제되고, 인덱스 후보 100475만이 삭제되지 않고 가정답 인덱스로서 남는다. 일 실시예에서는, 인덱스 후보군 검증처리에 의해 획득되는 가정답 인덱스로 된 인덱스 후보가 하나밖에 없는 경우에, 후술하는 정답 인덱스 선정처리에 의해 해당 인덱스 후보를 정답 인덱스로 설정할 수 있다.
<열화 후의 로버스트 인덱스 코드 화상으로부터 인덱스를 로버스트하게 복호화하는 로버스트 복호화 처리에서의 정답 인덱스의 선정>
이와 같이, 인덱스 후보군에 대해서 인덱스 후보군 검증처리를 행함으로써 인덱스 후보군을 검증하여, 가정답 인덱스로 된 인덱스 후보를 획득할 때, 열화 후의 로버스트 인덱스 코드 화상의 열화가 심한 경우가 발생한다. 다시 도 9b를 참조하면, 화살표 A, 화살표 B, 화살표 C로 나타낸 바와 같이 경계 소멸 또는 색의 간섭 및 침투와 같은 열화 현상이 심한 경우에는, 해당 열화 후의 로버스트 인덱스 코드 화상으로부터 인덱스 후보군을 생성하고, 생성한 인덱스 후보군에 대해서 상술한 인덱스 후보군 검증처리를 행함으로써 얻어진 가정답 인덱스로 된 인덱스 후보가 복수 개 획득되는 경우가 있다. 그러므로, 일 실시예에서는, 가정답 인덱스로 된 인덱스 후보가 복수 개 획득되는 경우, 정답 인덱스를 선정하기 위하여 정답 인덱스 선정처리 단계를 수행할 수 있다.
도 19는 정답 인덱스 선정처리의 흐름을 도시하는 순서도이다. 도 19를 참조하면서, 인덱스 후보군 검증처리에 의해 얻어진 가정답 인덱스로 된 복수의 인덱스 후보로부터 정답 인덱스를 선정하는 정답 인덱스 선정처리에 대해서 설명한다. 정답 인덱스를 선정하는 방법은 인덱스 후보군 검증처리에 의해 얻어진 가정답 인덱스로 된 인덱스 후보의 수(Z)에 따라 다양한 방법이 선택될 수 있다.
먼저, 가정답 인덱스로 된 인덱스 후보의 수(Z)가 Z=1인지, 1<Z<k인지, 또는 Z>k인지를 판단한다(단계 S21). 가정답 인덱스로 된 인덱스 후보의 수(Z)가 1인 경우(즉 Z=1)에는 상기 유일한 인덱스 후보를 정답 인덱스로 한다(단계 S22). 또한, 가정답 인덱스로 된 인덱스 후보의 수(Z)는 1보다 크고, 또한 소정값(k)(예를 들어 k=3)보다 작은 경우(즉, 1<Z<k)에 가정답 인덱스로 된 Z개의 인덱스 후보와 각각 관련지어져 있는 Z장의 화상(오리지널 화상)을 데이터베이스로부터 읽어내어 이용자에게 제시할 수 있다(단계 S23). 이용자는 제시된 Z장의 화상으로부터 1장의 화상을 선택하고(이하 "이용자가 선택한 1장의 화상"을 단순히 "이용자의 선택정보"라고도 한다), 이용자의 선택정보에 따라서 얻어진 인덱스 후보(즉 이용자가 선택한 1장의 화상과 관련지어져 있는 인덱스 후보)를 정답 인덱스로 한다(단계 S24).
만일 가정답 인덱스로 된 인덱스 후보의 수(Z)가 소정값(k)(예를 들어 k=3)보다 큰 경우(즉 Z>k)에 정답 인덱스 없음으로 한다(단계 S25). 이와 같이, 본 발명에서는 가정답 인덱스로 된 인덱스 후보에 대해서 인덱스 후보의 수에 따라 정답 인덱스 선정처리를 행함으로써 정답 인덱스를 얻을 수 있다.
<본 발명에 따른 로버스트 인덱스 코드의 이용방법>
도 16은 본 발명의 일 실시예에 따른 로버스트 인덱스 코드의 이용 방법을 나타낸 것이다. 도 16에 도시된 바와 같이, 오리지널 화상이 퍼스널 컴퓨터, 휴대단말장치, 휴대정보단말과 같은 정보처리장치에 입력되면, 오리지널 화상을 저장하는 데이터베이스에 접속하기 위한 인덱스는 서버로부터 정보처리장치에 부여될 수 있다.
정보처리장치는 부여된 인덱스에 대해서 부호화 처리를 행함으로써 로버스트 인덱스 코드 화상을 생성할 수 있다. 상기 생성된 로버스트 인덱스 코드 화상은 오리지널 화상에 매립됨으로써 로버스트 인덱스 코드가 붙은 화상을 생성하고, 나아가 오리지널 화상 또는 로버스트 인덱스 코드가 붙은 화상에 기초하여 오리지널 화상의 화상 속성값이 생성될 수 있다. 오리지널 화상 및 해당 오리지널 화상의 화상관련정보와 함께, 정보처리장치에서 생성된 로버스트 인덱스 코드가 붙은 화상 및 화상 속성값은 인덱스와 관련지어져서 데이터베이스에 저장될 수 있다.
데이터베이스에 저장되어 있는 로버스트 인덱스 코드가 붙은 화상은 다양한 네트워크 서비스를 통하여 퍼스널 컴퓨터, 휴대단말장치, 휴대정보단말과 같은 이용자 단말을 이용하여 이용자에게 제공될 수 있다. 로버스트 인덱스 코드가 붙은 화상은 이와 같은 다양한 네트워크 서비스를 경유하면서 행해지는 화상 압축이나 신장 등에 의해 열화되므로, 이용자가 이용자 단말을 통해서 얻은 것은 열화 후의 로버스트 인덱스 코드가 붙은 화상일 수 있다. 그러므로, 이용자 단말에서는 열화 후의 로버스트 인덱스 코드가 붙은 화상에서의 로버스트 인덱스 코드 영역(즉 열화 후의 로버스트 인덱스 코드 화상)에 대해서 본 발명의 로버스트 복호화 처리를 행함으로써 정답 인덱스를 구하여, 인덱스를 로버스트하게 복호화할 수 있다.
본 발명의 일 실시예에 따른 로버스트 복호화 처리에서는, 우선 열화 후의 로버스트 인덱스 코드 화상에서의 모든 열화가 있는 데이터 영역에 대응하는 R값, G값, 및 B값으로부터 독자적인 이원화 알고리즘에 기초하여 인덱스 후보군을 생성하고, 다음에 생성한 인덱스 후보군에 대해서 인덱스 후보군 검증처리를 행함으로써 가정답 인덱스로 된 인덱스 후보를 구하고, 마지막으로 구한 가정답 인덱스로 된 인덱스 후보에 대해서 정답 인덱스 선정처리를 행함으로써 정답 인덱스를 구하도록 하고 있다. 상기 단계들을 이용하여 획득되는 정답 인덱스(즉, 로버스트하게 복호화된 인덱스)와 관련지어져 있는 오리지널 화상 및 해당 오리지널 화상의 화상관련정보는 데이터베이스로부터 독출되어 이용자에게 제시될 수 있다.
<재부호화 처리>
도 18은 본 발명의 일실시예에 따른 재부호화 처리를 설명하기 위한 모식도이다. 도 18에 도시된 바와 같이, 본 발명에서는 데이터베이스에 저장되어 있는 로버스트 인덱스 코드가 붙은 화상은 다양한 네트워크 서비스를 통하여 이용자 단말을 통해서 이용자에게 제공될 수 있다. 로버스트 인덱스 코드가 붙은 화상은 이와 같은 다양한 네트워크 서비스를 거칠 때에 행해지는 화상 압축이나 신장 등에 의해 열화되므로, 이용자가 이용자 단말을 통해서 얻은 것은 열화 후의 로버스트 인덱스 코드가 붙은 화상일 수 있다.
그리고 이용자 단말에서는 열화 후의 로버스트 인덱스 코드가 붙은 화상에서의 로버스트 인덱스 코드 영역(즉 열화 후의 로버스트 인덱스 코드 화상)에 대해서 본 발명의 로버스트 복호화 처리를 행함으로써 정답 인덱스를 구하여, 인덱스를 로버스트하게 복호화할 수 있도록 했다.
본 발명에서는 로버스트 복호화 처리에 의해 얻어진 정답 인덱스에 대해서 재부호화 처리를 행함으로써 해당 정답 인덱스의 로버스트 인덱스 코드 화상을 생성하고, 나아가 생성한 로버스트 인덱스 코드 화상을 오리지널 화상에 매립함으로써 로버스트 인덱스 코드가 붙은 화상을 생성하도록 하고 있다.
이와 같이, 정답 인덱스에 대해서 재부호화 처리를 행함으로써, 열화가 없는 로버스트 인덱스 코드 영역을 갖는 로버스트 인덱스 코드가 붙은 화상을 생성할 수 있고, 다시 말하자면, 열화가 없는 로버스트 인덱스 코드 화상을 매립한 로버스트 인덱스 코드가 붙은 화상을 생성할 수 있다. 로버스트 인덱스 코드가 붙은 화상을 갱신하여 이용자에게 제시한다.
일 실시예에서, 본 발명의 재부호화 처리는 상술한 <부호화 처리>와 동일한 처리이나, 재부호화 처리의 대상은 로버스트 복호화 처리에 의해 얻어진 정답 인덱스임에 반해, 상술한 <부호화 처리>의 처리 대상은 오리지널 화상에 대해서 서버로부터 부여된 인덱스이다. 또한, 상술한 부호화 처리, 화상 속성값 생성처리, 로버스트 복호화 처리, 인덱스 후보군 생성처리, 인덱스 후보군 검증처리, 정답 인덱스 선정처리, 및 재부호화 처리는 정보처리장치 또는 퍼스널 컴퓨터, 휴대단말장치, 휴대정보단말과 같은 이용자 단말에 의해 실행될 수 있다.
또한, 본 발명에서 사용하는 색 정보는 R값, G값, 및 B값에 한정되는 것이 아니며, 다른 표색계(예를 들어 먼셀 표색계, Lab(CIELAB) 표색계, Luv(CIELUV) 표색계나 CMY 표색계 등의 표색계)에 의한 색 정보를 사용하도록 해도 된다. 일 실시예에서는, 상술한 부호화 처리에서 인덱스를 변환하여 얻어진 이진수의 비트열로부터 컬러화를 행하고 있는데, 본 발명의 부호화 처리에서는 인덱스를 변환하여 삼진수로 표현하고, R값, G값 및 B값에 각각 3값, 예를 들어 (0, 127, 255)를 할당하는 것도 가능하다. 이 경우, 로버스트 복호화 처리에서는 2개의 값을 구하고 있는 이원화 알고리즘 대신에 3개의 값을 구하는 삼원화 알고리즘을 이용하게 된다.
상술한 이원화 알고리즘에서는 R값, G값 및 B값으로부터 소정의 기준범위(제1 기준값~제2 기준값)에 기초하여 이진수의 비트열을 복호하도록 하고 있는데, R값, G값 및 B값 이외에도 R값, G값 및 B값 사이의 편차값, 주변 데이터 영역의 색 정보와의 편차값 등을 합쳐서 이용하는 것도 가능하다. 상술한 인덱스 후보군 생성처리에서는 열화 후의 로버스트 인덱스 코드 화상에서의 열화가 있는 데이터 영역의 중심부로부터 화상처리에 의해 색 정보(R값, G값 및 B값)를 산출하도록 해도 되고, 또한 열화가 있는 데이터 영역의 평균값, 중앙값, 주변의 평균값 등을 색 정보(R값, G값 및 B값)로 할 수도 있다. 일 실시예에서는, 재부호화 처리에서 로버스트 복호화 처리에 의해 얻어진 정답 인덱스에 기초하여 생성한 로버스트 인덱스 코드 화상을 오리지널 화상뿐만 아니라, 열화 후의 로버스트 인덱스 코드가 붙은 화상의 열화 후의 로버스트 인덱스 코드 화상의 원위치로 다시 매립함으로써 로버스트 인덱스 코드가 붙은 화상을 갱신하는 것도 가능하다.
또한 이상에서 본 발명의 실시형태에 대해서 설명했으나, 본 발명은 상술한 실시형태에만 한정되는 것이 아니며, 본 발명의 취지를 벗어나지 않는 범위에서 다양한 변형이 가능하다.
Claims (5)
- 오리지널 화상을 일의적으로 식별할 수 있고, 또한 십진수인 인덱스에 대해서 부호화 처리를 행함으로써 생성된 로버스트 인덱스 코드 화상을 상기 오리지널 화상에 매립함으로써 얻어진 로버스트 인덱스 코드가 붙은 화상이 네트워크를 통할 때에 행해지는 화상 처리에 의해 열화되어 얻어진 열화 후의 로버스트 인덱스 코드가 붙은 화상에 포함되어 있는 열화 후의 로버스트 인덱스 코드 화상으로부터, 상기 인덱스를 로버스트 복호화 처리에 의해 로버스트하게 복호화할 수 있는 로버스트 인덱스 코드이며,
상기 오리지널 화상, 상기 오리지널 화상의 화상관련정보, 상기 로버스트 인덱스 코드가 붙은 화상, 및 상기 오리지널 화상 또는 상기 로버스트 인덱스 코드가 붙은 화상에 기초하여 생성된 상기 오리지널 화상의 복수의 화상 속성값은 상기 인덱스와 관련지어져서 데이터베이스에 저장되어 있으며,
상기 부호화 처리에서는 상기 인덱스를 변환하여 얻어진 이진수의 비트열로부터 얻어진 각 N(N≥2) 비트의 비트열에 대해서 N개의 색 정보에 의한 컬러화를 행함으로써 상기 인덱스를 부호화하여, 상기 로버스트 인덱스 코드 화상을 생성하고,
상기 로버스트 복호화 처리는 인덱스 후보군 생성처리와, 인덱스 후보군 검증처리와, 정답 인덱스 선정처리로 구성되어 있으며,
상기 인덱스 후보군 생성처리에서는 상기 열화 후의 로버스트 인덱스 코드 화상에서의 모든 열화가 있는 데이터 영역에 대응하는 색 정보로부터 이원화 알고리즘에 기초하여 복수의 인덱스 후보로 구성되는 인덱스 후보군을 생성하고,
상기 인덱스 후보군 검증처리에서는 상기 열화 후의 로버스트 인덱스 코드가 붙은 화상에 기초하여 생성된 복수의 제1 화상 속성값과, 상기 인덱스 후보와 관련지어져 있는 복수의 제2 화상 속성값을 각각 비교함으로써 상기 인덱스 후보군을 검증하여, 가정답 인덱스로 된 인덱스 후보를 얻도록 하고,
상기 정답 인덱스 선정처리에서는 상기 인덱스 후보군 검증처리에 의해 얻어진 상기 가정답 인덱스로 된 인덱스 후보의 수에 따라서 정답 인덱스를 선정하도록 하는 것을 특징으로 하는 로버스트 인덱스 코드. - 제 1 항에 있어서,
상기 가정답 인덱스로 된 인덱스 후보의 수를 Z로 나타내면,
상기 정답 인덱스 선정처리에서는 Z가 1인 경우에 상기 가정답 인덱스로 된 인덱스 후보를 상기 정답 인덱스로 함과 동시에, Z는 1보다 크고, 또한 소정의 수치보다 작은 경우에 가정답 인덱스로 된 Z개의 인덱스 후보와 각각 관련지어져 있는 Z장의 오리지널 화상을 상기 데이터베이스로부터 읽어내어 이용자에게 제시하도록 하고, 상기 이용자에 의해 선택된 1장의 오리지널 화상과 관련지어져 있는 인덱스 후보를 상기 정답 인덱스로 하는 로버스트 인덱스 코드. - 제 1 항 또는 제 2 항에 있어서,
상기 로버스트 복호화 처리에 의해 얻어진 상기 정답 인덱스에 대해서 재부호화 처리를 행함으로써 상기 정답 인덱스의 로버스트 인덱스 코드 화상을 생성하고, 생성한 상기 정답 인덱스의 로버스트 인덱스 코드 화상을 상기 오리지널 화상에 매립함으로써 로버스트 인덱스 코드가 붙은 화상을 생성하는 로버스트 인덱스 코드. - 제 1 항 또는 제 2 항에 있어서,
상기 로버스트 복호화 처리에 의해 얻어진 상기 정답 인덱스에 대해서 재부호화 처리를 행함으로써 상기 정답 인덱스의 로버스트 인덱스 코드 화상을 생성하고, 생성한 상기 정답 인덱스의 로버스트 인덱스 코드 화상을 상기 열화 후의 로버스트 인덱스 코드가 붙은 화상에 다시 매립함으로써 로버스트 인덱스 코드가 붙은 화상을 생성하는 로버스트 인덱스 코드. - 제 1 항 내지 제 4 항 중 어느 한 항에 있어서,
상기 N개의 색 정보는 R값, G값, 및 B값인 로버스트 인덱스 코드.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/KR2016/010045 WO2018047991A1 (ko) | 2016-09-07 | 2016-09-07 | 로버스트 인덱스 코드 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20190042599A true KR20190042599A (ko) | 2019-04-24 |
Family
ID=61561903
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020197006566A KR20190042599A (ko) | 2016-09-07 | 2016-09-07 | 로버스트 인덱스 코드 |
Country Status (2)
Country | Link |
---|---|
KR (1) | KR20190042599A (ko) |
WO (1) | WO2018047991A1 (ko) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4438620B2 (ja) * | 2004-12-15 | 2010-03-24 | 株式会社デンソーウェーブ | 二次元コード読取装置 |
US8422802B2 (en) * | 2011-03-31 | 2013-04-16 | Microsoft Corporation | Robust large-scale visual codebook construction |
US8864033B2 (en) * | 2012-11-28 | 2014-10-21 | Konica Minolta Laboratory U.S.A., Inc. | Robust decoding of color barcode printed with extremely small data cells |
US9020198B2 (en) * | 2013-03-14 | 2015-04-28 | Nec Laboratories America, Inc. | Dimension-wise spatial layout importance selection: an alternative way to handle object deformation |
-
2016
- 2016-09-07 WO PCT/KR2016/010045 patent/WO2018047991A1/ko active Application Filing
- 2016-09-07 KR KR1020197006566A patent/KR20190042599A/ko not_active Application Discontinuation
Also Published As
Publication number | Publication date |
---|---|
WO2018047991A1 (ko) | 2018-03-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Sneyers et al. | FLIF: Free lossless image format based on MANIAC compression | |
WO2015120818A1 (zh) | 图像编码、解码方法及装置 | |
Galiyawala et al. | To increase data capacity of QR code using multiplexing with color coding: An example of embedding speech signal in QR code | |
CN104429067B (zh) | 通过预测当前块的划分进行视频编码的方法、解码方法、编码和解码装置及其相应的介质 | |
CN109344676B (zh) | 一种基于哈希算法的自动感应触发方法及其系统 | |
KR20020075918A (ko) | 비주얼 어텐션 시스템 | |
CN101681499A (zh) | 修改经编码的比特流 | |
CN105392010A (zh) | 利用调色板编码的视频数据区块编码方法及装置 | |
US20040234139A1 (en) | Image data processing apparatus, image data processing method, and computer readable medium | |
US9633294B2 (en) | Optical code | |
Hu et al. | Probability-based tamper detection scheme for BTC-compressed images based on quantization levels modification | |
US20140294071A1 (en) | Method for determining a modifiable element in a coded bit-stream and associated device | |
KR20190133363A (ko) | 워터마크 기반의 이미지 무결성 검증 방법 및 장치 | |
CN106604032B (zh) | 图像中文字块的压缩方法和装置及图像压缩方法和装置 | |
JPWO2013073624A1 (ja) | 特徴量符号化装置、特徴量符号化方法、及びプログラム | |
US20200279346A1 (en) | Computer method and system for generating images with encoded information, images obtained by this method and image reading method and system | |
JP6160968B2 (ja) | ロバスト・インデックス・コード | |
KR20190042599A (ko) | 로버스트 인덱스 코드 | |
US10728470B2 (en) | Image processing device, image processing method, and non-transitory computer readable medium storing image processing program | |
CN110024383B (zh) | 图像压缩技术 | |
Farah et al. | Full-reference and reduced-reference quality metrics based on SIFT | |
KR20190068588A (ko) | 이미지 파라미터를 코딩 및 디코딩하기 위한 방법, 이미지 파라미터를 코딩 및 디코딩하기 위한 장치 및 이에 상응하는 컴퓨터 프로그램 | |
KR102067321B1 (ko) | 저작권 보호 인덱스 코드, 이들의 부호화 방법 및 복호화 방법 | |
US8411745B2 (en) | Method and apparatus for coding and decoding using bit-precision | |
CN109729233B (zh) | 基于图像的信息隐藏方法、装置、存储介质和电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E601 | Decision to refuse application |