KR20210042752A - 이미지 백업을 수행하는 컴퓨팅 시스템 및 이미지 백업 방법 - Google Patents

이미지 백업을 수행하는 컴퓨팅 시스템 및 이미지 백업 방법 Download PDF

Info

Publication number
KR20210042752A
KR20210042752A KR1020190125681A KR20190125681A KR20210042752A KR 20210042752 A KR20210042752 A KR 20210042752A KR 1020190125681 A KR1020190125681 A KR 1020190125681A KR 20190125681 A KR20190125681 A KR 20190125681A KR 20210042752 A KR20210042752 A KR 20210042752A
Authority
KR
South Korea
Prior art keywords
image
hash
host
memory system
hash value
Prior art date
Application number
KR1020190125681A
Other languages
English (en)
Inventor
조인순
황주영
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020190125681A priority Critical patent/KR20210042752A/ko
Priority to US16/878,696 priority patent/US20210110201A1/en
Priority to EP20177140.9A priority patent/EP3805929B1/en
Priority to CN202010749158.4A priority patent/CN112650619A/zh
Publication of KR20210042752A publication Critical patent/KR20210042752A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1461Backup scheduling policy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • G06F11/1453Management of the data involved in backup or backup restore using de-duplication of the data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1456Hardware arrangements for backup
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/22Matching criteria, e.g. proximity measures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/81Threshold
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/83Indexing scheme relating to error detection, to error correction, and to monitoring the solution involving signatures

Abstract

본 개시의 기술적 사상에 따른 호스트 및 메모리 시스템이 구비된 컴퓨팅 시스템의 이미지의 백업 방법은, 호스트는, 백업 요청과 함께 제1 이미지를 수신하는 단계, 호스트는, 제1 해시 함수를 기반으로 제1 이미지와 메모리 시스템에 저장된 복수의 이미지들 간의 유사 판단을 수행하는 단계, 호스트는, 유사 판단 결과에 따라 제1 이미지를 메모리 시스템에 선택적으로 제공하는 단계, 메모리 시스템은, 제2 해시 함수를 기반으로 제1 이미지와 복수의 이미지들 간의 동일 판단을 수행하는 단계 및 메모리 시스템은, 동일 판단 결과에 따라 제1 이미지의 저장 방식을 결정하기 위한 정보를 호스트에 제공하는 단계를 포함할 수 있다.

Description

이미지 백업을 수행하는 컴퓨팅 시스템 및 이미지 백업 방법{COMPUTING SYSTEM PERFORMING IMAGE BACKUP AND IMAGE BACKUP METHOD}
본 개시의 기술적 사상은 컴퓨팅 시스템 및 이미지 백업 방법에 관한 것으로서, 구체적으로 두 종류의 해시 함수를 이용하여 이미지 백업을 수행하는 컴퓨팅 시스템 및 이미지 백업 방법에 관한 것이다.
종래의 파일 백업은 문서 백업을 주 대상으로 하며, 파일 또는 블록과 같은 지정된 단위에서의 원본 파일과 백업 요청된 파일 간의 변경 사항을 검사하여 백업 여부를 결정한다. 한편, 이와 같은 백업 방법은 이미지에 대하여 적용하기 어렵다는 문제점이 있다. 예컨대, 종래의 백업 방법은 이미지들 간의 동일성은 판단할 수 있으나 유사성은 판단할 수 없다. 따라서, 종래의 백업 방법은 회전, 색 보정, 연속 촬영과 같은 유사한 이미지를 완전히 다른 이미지로 인식하고, 유사한 이미지 전체를 새로 저장하여 많은 저장 공간을 필요로 한다. 또한, 종래의 백업 방법은 단일한 원본을 알고 있다는 가정하에서 동작하므로 연산량이 막대하지 않으나, 이미지의 경우에는 비교 대상으로서 수많은 원본이 존재할 수 있고, 원본들의 수에 비례하여 변경 사항을 검사하는데 필요한 연산량이 늘어나는 문제점이 있다.
본 개시의 기술적 사상은 두 종류의 해시 함수를 이용하여 이미지 백업을 수행함에 따라 저장 공간 효율성이 높아지고, 연산량이 줄어든 컴퓨팅 시스템 및 이미지 백업 방법을 제공한다.
상기와 같은 목적을 달성하기 위하여, 본 개시의 기술적 사상의 일측면에 따른 호스트 및 메모리 시스템이 구비된 컴퓨팅 시스템의 이미지의 백업 방법은, 호스트는, 백업 요청과 함께 제1 이미지를 수신하는 단계, 호스트는, 제1 해시 함수를 기반으로 제1 이미지와 메모리 시스템에 저장된 복수의 이미지들 간의 유사 판단을 수행하는 단계, 호스트는, 유사 판단 결과에 따라 제1 이미지를 메모리 시스템에 선택적으로 제공하는 단계, 메모리 시스템은, 제2 해시 함수를 기반으로 제1 이미지와 복수의 이미지들 간의 동일 판단을 수행하는 단계 및 메모리 시스템은, 동일 판단 결과에 따라 제1 이미지의 저장 방식을 결정하기 위한 정보를 호스트에 제공하는 단계를 포함할 수 있다.
본 개시의 기술적 사상의 일측면에 따른 컴퓨팅 시스템은, 호스트 및 복수의 이미지들을 저장하는 메모리 시스템을 포함하고, 호스트는, 외부로부터 제1 이미지를 수신하면, 제1 이미지에 제1 해시 함수를 적용하여 제1 이미지의 제1 해시값을 산출하고, 산출한 제1 해시값과 복수의 이미지들의 제1 해시값들을 비교하여 제1 이미지와 복수의 이미지들 간의 유사 판단을 수행하고, 유사 판단 결과를 기반으로 제1 이미지를 메모리 시스템에 제공하고, 메모리 시스템은, 제1 이미지에 제2 해시 함수를 적용하여 제1 이미지의 제2 해시값을 산출하고, 산출한 제2 해시값과 복수의 이미지들의 제2 해시값들을 비교하여 제1 이미지와 복수의 이미지들 간의 동일 판단을 수행하고, 동일 판단 결과를 기초로 제1 이미지의 저장 방식을 결정하기 위한 정보를 호스트에 제공할 수 있다.
본 개시의 예시적 실시예에 따른 컴퓨팅 시스템 및 이미지 백업 방법에 의하면, 해시를 이용하여 백업 요청된 대상 이미지의 기저장된 이미지들에 대한 동일성뿐만 아니라 유사성까지 판단하므로, 단지 이미지들 간의 동일성만을 판단하여 대상 이미지가 기저장된 이미지들과 동일하지 않으면 대상 이미지를 저장함으로써 백업 동작을 수행하는 경우보다 저장 공간의 효율성을 높일 수 있으며, 해시를 이용하여 이미지들 간의 동일성 및 유사성을 판단하므로, 이미지들의 각 픽셀값들의 비교를 통한 동일성을 판단하는 경우에 비해 연산량을 획기적으로 줄일 수 있다.
또한, 본 개시의 예시적 실시예에 따른 컴퓨팅 시스템 및 이미지 백업 방법에 의하면, 이미지들의 동일성 및 유사성 판단을 호스트 및 메모리 시스템의 분업을 통해 수행하므로, 호스트 또는 메모리 시스템 중 어느 하나가 지각 해시 및 암호화 해시를 이용한 동일성 및 유사성 판단을 모두 수행함으로써 발생할 수 있는 연산 처리의 병목 현상을 방지할 수 있다.
도 1은 본 개시의 일 실시예에 따른 컴퓨팅 시스템을 나타내는 블록도이다.
도 2는 본 개시의 일 실시예에 따른 해시 엔진을 나타내는 블록도이다.
도 3은 본 개시의 일 실시예에 따른 컴퓨팅 시스템의 구체적인 구현 예를 나타내는 블록도이다.
도 4는 본 개시의 일 실시예에 따른 컴퓨팅 시스템의 구체적인 구현 예를 나타내는 블록도이다.
도 5는 본 개시의 일 실시예에 따른 컴퓨팅 시스템의 구체적인 구현 예를 나타내는 블록도이다.
도 6은 본 개시의 일 실시예에 따른 컴퓨팅 시스템의 구체적인 구현 예를 나타내는 블록도이다.
도 7은 본 개시의 일 실시예에 따른 이미지 백업 방법을 나타내는 순서도이다.
도 8은 본 개시의 일 실시예에 따른 이미지 백업 방법의 구체적인 구현 예를 나타내는 순서도이다.
도 9는 본 개시의 일 실시예에 따른 이미지 백업 방법의 구체적인 구현 예를 나타내는 순서도이다.
도 10은 본 개시의 일 실시예에 따른 서버 시스템을 포함하는 네트워크 시스템을 나타내는 블록도이다.
도 1은 본 개시의 일 실시예에 따른 컴퓨팅 시스템을 나타내는 블록도이다.
도 1을 참조하면, 컴퓨팅 시스템(10)은 호스트(100) 및 메모리 시스템(200)을 포함할 수 있다. 또한, 메모리 시스템(200)은 메모리 컨트롤러(210) 및 메모리 장치(220)를 포함할 수 있다. 또한, 일 실시예에 따라, 호스트(100)는 제1 해시 엔진(110)을 포함할 수 있으며, 메모리 컨트롤러(210)는 제2 해시 엔진(211)을 포함할 수 있다. 도 1에는 제2 해시 엔진(211)이 메모리 컨트롤러(210) 내에 구비되는 것으로 도시되었으나, 본 개시의 실시예는 이에 한하지 않는다. 일 예로서, 제2 해시 엔진(211)은 메모리 시스템(200) 내에서 메모리 컨트롤러(210)의 외부에 배치되는 메모리(가령, DRAM)에 저장되어도 무방하다.
컴퓨팅 시스템(10)은 데이터를 저장하는 메모리 시스템(200)이 장착된 다양한 종류의 시스템일 수 있다. 일 예로서, 컴퓨팅 시스템(10)은 서버 장치, 컴퓨터, 넷북(net-book), 웹 타블렛(web tablet), 무선 전화기(wireless phone), 모바일 폰(mobile phone), 스마트 폰(smart phone), e-북(e-book), 네비게이션(navigation) 장치, 디지털 카메라(digital camera), 웨어러블(wearable) 장치, IoT(internet of things;) 장치, IoE(internet of everything:) 장치, e-북(e-book), VR(virtual reality) 장치 및 AR(augmented reality) 장치 등 다양한 종류의 시스템에 해당할 수 있다.
호스트(100)는 컴퓨팅 시스템(10) 내에서 데이터의 관리 동작을 수행할 수 있다. 일 예로서, 호스트(100)는 메모리 시스템(200)으로 데이터의 기입 또는 독출 요청을 제공하고, 메모리 시스템(200)은 호스트(100)로부터의 요청에 따라 데이터를 메모리 장치(220)에 기입하거나, 또는 메모리 장치(220)로부터 데이터를 독출하여 호스트(100)로 제공할 수 있다. 또한, 호스트(100)로부터의 데이터 소거 요청에 따라, 메모리 시스템(200)은 호스트(100)로부터 지시되는 영역의 데이터에 대한 소거 동작을 수행할 수 있다.
메모리 시스템(200)은 하나 이상의 저장 매체들을 포함할 수 있다. 일 예로서, 메모리 시스템(200)은 하나 이상의 솔리드 스테이트 드라이브(SSD) 등을 포함할 수 있다. 메모리 시스템(200)이 솔리드 스테이트 드라이브(SSD)를 포함하는 경우, 메모리 시스템(200)은 다수 개의 메모리 칩들을 포함할 수 있다. 일 예로서, 메모리 시스템(200)은 데이터를 불휘발성하게 저장하는 다수 개의 플래시 메모리 칩들(예컨대, NAND 메모리 칩들)을 포함할 수 있다.
또는, 메모리 시스템(200)은 하나의 플래시 메모리 칩에 해당할 수 있다. 또는, 메모리 시스템(200)은 하나 이상의 플래시 메모리 칩들을 포함하는 메모리 카드에 해당할 수 있다.
본 개시의 일 실시예에 따라, 컴퓨팅 시스템(10)은 이미지 백업 기능을 지원할 수 있다. 컴퓨팅 시스템(10)은 백업 요청된 대상 이미지가 메모리 시스템(200)에 저장된 복수의 이미지들 중 적어도 하나와 동일한지 또는 유사한지 판단할 수 있다. 컴퓨팅 시스템(10)은 대상 이미지와 동일한 이미지를 확인하면 대상 이미지를 저장하지 않을 수 있다. 또한, 컴퓨팅 시스템(10)은 대상 이미지와 유사한 이미지를 확인하면 대상 이미지와 유사 이미지의 차이에 대응하는 데이터를 메모리 시스템(200)에 저장할 수 있으며, 대상 이미지와 동일 또는 유사한 이미지를 확인하지 못하면 대상 이미지 전체를 메모리 시스템(200)에 저장할 수 있다. 이에 따라 메모리 시스템(200)의 저장 공간이 효율적으로 이용될 수 있다.
본 개시의 일 실시예에 따른 이미지 백업에 관련된 동작 예를 구체적으로 설명하면 다음과 같다.
호스트(100)는 외부로부터 이미지 백업(또는, 이미지 업로드) 요청과 함께 백업 요청의 대상 이미지(IMG)를 수신할 수 있다. 그리고 호스트(100)는 해시값들을 기초로 대상 이미지(IMG)와 메모리 장치(220)에 저장된 복수의 이미지들의 유사 여부를 1차적으로 판단할 수 있다. 일 예로서, 호스트(100)는 제1 해시 엔진(110)을 이용하여 대상 이미지(IMG)의 제1 해시값을 산출하고, 상기 산출한 제1 해시값과 복수의 이미지들의 제1 해시값들을 비교함으로써, 대상 이미지(IMG)와 복수의 이미지들의 유사 여부를 판단할 수 있다.
제1 해시 엔진(110)은 입력 이미지에 해시 함수를 적용하여 입력 이미지의 해시값을 생성할 수 있다. 이때, 제1 해시 엔진(110)은 지각 해시(perceptual hash) 함수(또는, 알고리즘)를 이용할 수 있다. 지각 해시 함수가 적용된 제1 해시 엔진(110)은 서로 유사하지 않은 입력값들에 대해서는 상이한 해시값들을 출력하나, 서로 유사한 입력값들에 대해서는 유사한 해시값들을 출력할 수 있다. 한편, 실시예에 따라 지각 해시 함수가 적용된 제1 해시 엔진(110)은 특정 수준 이상으로 유사한 입력값들에 대해서는 동일한 해시값들을 출력할 수도 있다. 위와 같이, 지각 해시 함수는 대상 이미지(IMG)와 메모리 시스템(200)에 저장된 복수의 이미지들 간의 유사성을 판단하는데 이용될 수 있다. 이하에서는 설명의 편의를 위해, 지각 해시 함수를 적용하여 산출된 해시값을 제1 해시값으로 지칭한다. 한편, 제1 해시 엔진(110)에 대한 보다 구체적인 설명은 도 2와 관련하여 후술한다.
정리하면, 대상 이미지(IMG)가 저장된 복수의 이미지들과 다른 경우, 제1 해시 엔진(110)은 복수의 이미지들의 제1 해시값들 각각과 상이한 해시값을 대상 이미지(IMG)의 제1 해시값으로서 출력할 수 있다. 따라서, 호스트(100)는 복수의 이미지들의 제1 해시값들 중 대상 이미지(IMG)의 제1 해시값과 동일 또는 유사한 해시값을 확인할 수 없다. 즉, 호스트(100)는 대상 이미지(IMG)와 동일 또는 유사한 이미지가 메모리 장치(220)에 저장되어 있지 않음을 확인할 수 있다. 이에 따라, 호스트(100)는 대상 이미지(IMG) 전체를 메모리 장치(220)에 저장할 수 있다.
반면, 대상 이미지(IMG)가 저장된 복수의 이미지들 중 특정 이미지와 동일 또는 유사한 경우, 제1 해시 엔진(110)은 상기 특정 이미지에 대응하는 제1 해시값과 동일 또는 유사한 해시값을 대상 이미지(IMG)의 제1 해시값으로서 출력할 수 있다. 따라서, 호스트(100)는 대상 이미지(IMG)의 제1 해시값과 상기 특정 이미지의 제1 해시값이 서로 동일 또는 유사함을 확인할 수 있다. 즉, 호스트(100)는 대상 이미지(IMG)와 동일 또는 유사한 이미지가 메모리 장치(220)에 저장되어 있음을 확인할 수 있다.
한편, 호스트(100)는 위와 같이 대상 이미지(IMG)와 동일 또는 유사한 특정 이미지가 저장되어 있음을 확인했더라도, 대상 이미지(IMG)와 특정 이미지가 동일한지를 추가적으로 확인할 필요가 있다. 대상 이미지(IMG)와 특정 이미지가 동일하면 대상 이미지(IMG)의 저장은 불필요하기 때문이다. 따라서, 호스트(100)는 대상 이미지(IMG)와 동일한 이미지가 존재하는지 여부를 확인하기 위해, 대상 이미지(IMG)를 메모리 컨트롤러(210)에 제공하고, 대상 이미지(IMG)에 대한 동일성 판단을 요청할 수 있다.
메모리 컨트롤러(210)는 호스트(100)로부터 대상 이미지(IMG)를 수신할 수 있다. 그리고 메모리 컨트롤러(210)는 호스트(100)의 요청에 따라 해시값들을 기초로 대상 이미지(IMG)와 메모리 장치(220)에 저장된 복수의 이미지들의 동일 여부를 2차적으로 판단할 수 있다. 일 예로서, 메모리 컨트롤러(210)는 제2 해시 엔진(211)을 이용하여 대상 이미지(IMG)의 제2 해시값을 산출하고, 상기 산출한 제2 해시값과 복수의 이미지들의 제2 해시값들을 비교함으로써, 대상 이미지(IMG)와 복수의 이미지들 간의 동일 여부를 판단할 수 있다. 그리고 메모리 컨트롤러(210)는 상기 판단 결과를 나타내는 정보(Info_IMG)를 호스트(100)에 제공할 수 있다.
여기서 제2 해시 엔진(211)은 입력 이미지에 해시 함수를 적용하여 입력 이미지의 해시값을 생성할 수 있다. 이때, 제2 해시 엔진(211)은 암호화 해시(cryptographic hash) 함수(또는, 알고리즘)를 이용할 수 있다. 암호화 해시 함수는 해시값들로부터 입력값들의 관계를 찾기 어려운 특징을 갖는다. 즉, 암호화 해시 함수가 적용된 제2 해시 엔진(211)은 유사한 입력값들이 입력되어도 전혀 다른 해시값들을 출력하고, 오직 동일한 입력값들이 입력되어야 동일한 해시값들을 출력할 수 있다. 위와 같이, 암호화 해시 함수는 이미지들의 동일성을 판단하는데 이용될 수 있다. 이하에서는 설명의 편의를 위해 상기 암호화 해시 함수를 적용하여 산출된 해시값을 제2 해시값으로 지칭한다. 한편, 제2 해시 엔진(211)에 대한 보다 구체적인 설명은 도 2와 관련하여 후술한다.
한편, 상기 제1 해시 엔진(110) 및 제2 해시 엔진(211)은 다양하게 구현될 수 있다. 예컨대, 제1 해시 엔진(110) 및 제2 해시 엔진(211)은 하드웨어적으로 구현되는 연산 회로를 포함할 수 있다. 또는, 제1 해시 엔진(110) 및 제2 해시 엔진(211)은 소정의 프로세서에 의해 실행되는 소프트웨어로 구현될 수도 있다.
만약 대상 이미지(IMG)가 복수의 이미지들과 동일하지 않은 경우, 제2 해시 엔진(211)은 복수의 이미지들의 제2 해시값들과 다른 해시값을 대상 이미지(IMG)의 제2 해시값으로서 출력할 수 있다. 따라서, 메모리 컨트롤러(210)는 복수의 이미지들의 제2 해시값들 중 대상 이미지(IMG)의 제2 해시값과 동일한 해시값을 확인할 수 없다. 즉, 메모리 컨트롤러(210)는 대상 이미지(IMG)와 동일한 이미지가 저장되어 있지 않음을 확인할 수 있다.
한편, 메모리 컨트롤러(210)는 복수의 이미지들 중 동일 또는 유사한 이미지가 존재함을 전제로 호스트(100)로부터 대상 이미지(IMG)를 수신하였으므로, 메모리 컨트롤러(210)는 대상 이미지(IMG)와 동일한 이미지는 없으나 유사한 이미지가 존재하는 것으로 판단할 수 있다. 따라서, 메모리 컨트롤러(210)는 대상 이미지(IMG)와 유사한 이미지가 존재함을 나타내는 정보(Info_IMG)를 호스트(100)에 제공할 수 있다.
반면, 대상 이미지(IMG)가 복수의 이미지들 중 특정 이미지와 동일한 경우, 제2 해시 엔진(211)은 상기 특정 이미지가 입력되었을 때 출력하는 제2 해시값과 동일한 해시값을 대상 이미지(IMG)의 제2 해시값으로서 출력할 수 있다. 따라서, 메모리 컨트롤러(210)는 대상 이미지(IMG)의 제2 해시값과 상기 특정 이미지의 제2 해시값이 동일함을 확인할 수 있다. 즉, 메모리 컨트롤러(210)는 대상 이미지(IMG)와 동일한 이미지가 저장되어 있음을 확인할 수 있다. 이에 따라, 메모리 컨트롤러(210)는 대상 이미지(IMG)와 동일한 이미지가 존재함을 나타내는 정보(Info_IMG)를 호스트(100)에 제공할 수 있다.
한편, 변형 가능한 실시예에 따르면, 호스트(100)는 메모리 컨트롤러(210)에 대상 이미지(IMG)를 제공하고, 동일성 판단을 요청하면서, 호스트(100)가 수행한 유사성 판단의 결과를 함께 제공할 수 있다. 예컨대, 호스트(100)는 대상 이미지(IMG)와 유사한 제1 해시값을 갖는 이미지에 대한 정보(가령, 논리 어드레스, 이름 등)를 메모리 컨트롤러(210)에 제공할 수 있다. 그리고 메모리 컨트롤러(210)는 호스트(100)로부터 수신한 유사한 제1 해시값을 갖는 이미지에 대한 정보를 기초로, 상기 유사한 제1 해시값을 갖는 이미지의 제2 해시값을 확인하고, 확인한 제2 해시값과 대상 이미지(IMG)의 제2 해시값을 비교함으로써 동일성 판단을 수행할 수 있다. 이와 같이 동일성 판단을 수행하는 경우, 메모리 컨트롤러(210)는 대상 이미지(IMG)의 제2 해시값을 복수의 이미지들의 제2 해시값들 모두와 비교하지 않아도 대상 이미지(IMG)와 동일한 이미지의 존재를 확인할 수 있는바, 연산량이 감소할 수 있다.
그리고 호스트(100)는 메모리 컨트롤러(210)로부터 수신한 정보(Info_IMG)를 기초로 대상 이미지(IMG)의 적어도 일부를 메모리 장치(220)에 저장할 수 있다. 일 예로서, 메모리 장치(220)에 저장된 복수의 이미지들 중 대상 이미지(IMG)와 유사한 이미지가 존재함을 나타내는 정보(Info_IMG)를 수신하는 경우, 호스트(100)는 유사 이미지와 대상 이미지(IMG)의 차이에 대응하는 데이터를 메모리 장치(220)에 저장할 수 있다. 또한, 메모리 장치(220)에 저장된 복수의 이미지들 중 대상 이미지(IMG)와 동일한 이미지가 존재함을 나타내는 정보(Info_IMG)를 수신하는 경우, 호스트(100)는 대상 이미지(IMG)를 저장하지 않는 것으로 결정할 수 있다.
상기와 같은 실시예에 따르면, 컴퓨팅 시스템(10)은 백업 요청된 대상 이미지(IMG)와 기저장된 복수의 이미지들 간의 동일성뿐만 아니라 유사성까지 판단하여 백업을 할 수 있다. 이에 따라, 컴퓨팅 시스템(10)은 동일성만을 판단하여 대상 이미지(IMG)와 동일한 이미지가 존재하지 않으면 대상 이미지(IMG)를 저장하는 백업 방식보다 저장 공간의 효율성을 높일 수 있다. 또한, 컴퓨팅 시스템(10)은 해시를 이용하여 이미지들 간의 동일성 및 유사성을 판단하므로, 이미지들의 각 픽셀값들의 비교를 통한 동일성을 판단하는 경우에 비해, 연산량을 획기적으로 줄일 수 있다.
또한, 상기와 같은 실시예에 따르면, 컴퓨팅 시스템(10)은 대상 이미지와 저장된 복수의 이미지들 간의 동일성 및 유사성 판단을 호스트(100) 및 메모리 시스템(200)의 분업을 통해 수행할 수 있다. 즉, 호스트(100)가 지각 해시 함수를 이용하여 유사성을 판단하고, 메모리 컨트롤러(210)가 보다 복잡한 연산이 요구되는 암호화 해시 함수를 이용하여 동일성을 판단할 수 있다. 이에 따라, 호스트(100) 또는 메모리 시스템(200) 중 어느 하나가 동일성 및 유사성 판단을 모두 수행함으로써 발생할 수 있는 연산 처리의 병목 현상을 방지할 수 있다.
도 2는 본 개시의 일 실시예에 따른 해시 엔진을 나타내는 블록도이다.
도 1 및 도 2를 참조하면, 지각 해시 함수를 이용하는 제1 해시 엔진(110)과 암호화 해시 함수를 이용하는 제2 해시 엔진(211) 각각에 제1 입력값(10100110001) 및 제2 입력값(10100110101)이 입력될 수 있다.
먼저, 지각 해시 함수가 적용된 제1 해시 엔진(110)은 유사한 입력값들이 입력되면 동일 또는 유사한 해시값들을 출력하는 특징을 갖는다. 따라서, 1개 비트만이 다른 제1 입력값 및 제2 입력값 각각이 제1 해시 엔진(110)에 입력되면, 제1 해시 엔진(110)은 유사한 해시값들을 갖는 제1 출력값(1100100101101001001111000001101) 및 제2 출력값(1100100111101001001111000001111)을 생성할 수 있다. 상기 제1 출력값 및 제2 출력값은 전체 32비트 중에서 2개 비트만이 상이한 해시값들을 갖는 것을 확인할 수 있다.
한편, 도 2를 도시하고 설명함에 있어서, 제1 출력값과 제2 출력값의 2개 비트가 다른 것으로 도시하고 설명하였지만, 제1 해시 엔진(110)은 실시예에 따라 동일한 해시값들을 갖는 제1 출력값과 제2 출력값을 생성할 수도 있다. 이와 같은 지각 해시 함수는 BMB(Block Mean value Based) 해시, DCT(Discrete Cosine Transform) 해시, DWT(Discrete Wavelet Transform) 해시, PCA(Principal Component Analysis) 해시, MH(Marr-Hildreth operator based) 해시, RADIAL(RADIAL variance based) 해시 중 하나에 해당할 수 있으며, 지각 해시 함수의 종류는 상술한 예에 한하지 않는다.
한편, 암호화 해시 함수가 적용된 제2 해시 엔진(211)은 유사한 입력값들이 입력되더라도 서로 다른 해시값들을 출력하는 특징을 갖는다. 따라서, 1개 비트만이 다른 제1 입력값 및 제2 입력값 각각이 제2 해시 엔진(211)에 입력되더라도, 제2 해시 엔진(211)은 연관성이 없는 해시값들을 갖는 제3 출력값(50144bd388adcd869bc921349a287690) 및 제4 출력값(3e3049b1ed21ede0237f9a276ec80703)을 생성할 수 있다. 상기 제3 출력값 및 제4 출력값은 전체 32비트 중 서로 연관성을 갖는 비트를 갖지 않음을 확인할 수 있다. 이와 같이, 제2 해시 엔진(211)은 전체 비트 중 1개 비트만 다른 입력값들이 입력되어도 서로 연관성이 없는 해시값들을 생성할 수 있다. 이와 같은 암호화 해시 함수는 OST, HAVAL, MD2, MD4, MD5, PANAMA, RadioGatun, RIPEMD, RIPEMD-128/256, RIPEMD-160, RIPEMD-320, SHA-0, SHA-1, SHA-256/224, SHA-512/384, SHA-3, WHIRLPOOL 중 하나에 해당할 수 있으며, 암호화 해시 함수의 종류는 상술한 예에 한하지 않는다.
한편, 도 2를 도시하고 설명함에 있어서, 상기 제1 해시 엔진(110) 및 상기 제2 해시 엔진(211)은 32비트의 해시값을 출력하는 것으로 도시하고 설명하였지만, 본 개시의 실시예는 이에 한하지 않는다. 일 예로서, 제1 해시 엔진(110) 및 제2 해시 엔진(211)은 64비트, 128비트 등과 같이 더 많은 비트 수를 갖는 해시값을 출력하거나, 16비트와 같이 더 적은 비트 수를 갖는 해시값을 출력할 수도 있다. 한편, 해시값의 비트 수가 증가할수록 해시 엔진에서 수행되는 연산은 더 복잡할 수 있다.
도 3은 본 개시의 일 실시예에 따른 컴퓨팅 시스템의 구체적인 구현 예를 나타내는 블록도이다.
도 3을 참조하면, 컴퓨팅 시스템(300)은 호스트(310) 및 메모리 시스템(320)을 포함할 수 있다. 또한, 호스트(310)는 제1 해시 테이블(312) 및 제1 해시 엔진(311)을 포함할 수 있다. 또한, 메모리 시스템(320)은 제2 해시 테이블(322) 및 제2 해시 엔진(321)을 포함할 수 있으며, 복수의 이미지들을 저장할 수 있다. 호스트(310)는 외부로부터 백업 요청된 대상 이미지(IMG)를 수신할 수 있다. 그리고 호스트(310)는 제1 해시 엔진(311)을 이용하여 대상 이미지(IMG)의 제1 해시값(Hash Value 1_4)을 산출하고, 제1 해시 테이블(312)을 이용하여 상기 산출한 제1 해시값(Hash Value 1_4)과 기저장된 복수의 이미지들의 제1 해시값들(Hash Value 1_1, Hash Value 1_2, Hash Value 1_3)을 비교할 수 있다.
여기서 제1 해시 테이블(312)은 복수의 이미지들 각각의 제1 해시값들을 포함할 수 있다. 상기 복수의 이미지들 각각의 제1 해시값들은, 복수의 이미지들 각각이 제1 해시 엔진(311)에 입력됨으로써, 제1 해시 엔진(311)으로부터 생성될 수 있다. 제1 해시 테이블(312)은 호스트(310) 내에 저장될 수 있다. 일 예로서, 호스트(310)는 메모리(미도시)를 포함하고, 제1 해시 테이블(312)은 상기 메모리에 저장될 수 있다.
일 실시예로서, 호스트(310)는 상기 산출한 제1 해시값(Hash Value 1_4)을 복수의 이미지들의 제1 해시값들(Hash Value 1_1, Hash Value 1_2, Hash Value 1_3) 각각과 비교하여 서로 상이한 비트의 개수들을 확인할 수 있다.
만약 상기 제1 해시값들 사이의 상이한 비트의 개수가 미리 결정된 개수와 같거나 적은 경우가 존재하지 않으면, 호스트(310)는 대상 이미지(IMG)와 동일 또는 유사한 이미지가 존재하지 않는 것으로 판단할 수 있다. 이에 따라, 호스트(310)는 대상 이미지(IMG)를 메모리 시스템(320)에 저장할 수 있다.
반면, 상기 제1 해시값들 사이의 상이한 비트의 개수가 미리 결정된 개수(가령, 5개)와 같거나 적은 경우가 존재하면, 호스트(310)는 대상 이미지(IMG)와 동일 또는 유사한 이미지가 존재하는 것으로 판단할 수 있다. 이에 따라, 호스트(310)는 동일성 판단 요청과 함께 대상 이미지(IMG)를 메모리 시스템(320)에 제공할 수 있다. 한편, 상기 미리 결정된 개수는 상기 컴퓨팅 시스템(300)의 제조사에 의해 설정될 수 있으며, 실시예에 따라 사용자에 의해 설정될 수도 있다.
그리고 메모리 시스템(320)(구체적으로, 메모리 컨트롤러)은 호스트(310)로부터 대상 이미지(IMG)를 수신할 수 있다. 그리고 메모리 시스템(320)은 제2 해시 엔진(321)을 이용하여 대상 이미지(IMG)의 제2 해시값(Hash Value 2_4)을 산출하고, 제2 해시 테이블(322)을 이용하여 상기 산출한 제2 해시값과 복수의 이미지들의 제2 해시값들(Hash Value 2_1, Hash Value 2_2, Hash Value 2_3)을 비교할 수 있다.
여기서 제2 해시 테이블(322)은 복수의 이미지들 각각의 제2 해시값들을 포함할 수 있다. 상기 복수의 이미지들 각각의 제2 해시값들은, 복수의 이미지들 각각이 제2 해시 엔진(321)에 입력됨으로써, 제2 해시 엔진(321)으로부터 생성될 수 있다. 제2 해시 테이블(322)은 메모리 컨트롤러 내부, 또는 메모리 시스템(320) 내에 존재하되 메모리 컨트롤러 외부의 DRAM과 같은 메모리(미도시)에 저장될 수 있다.
그리고 메모리 시스템(320)은 대상 이미지(IMG)의 제2 해시값(Hash Value 2_4)을 복수의 이미지들의 제2 해시값들(Hash Value 2_1, Hash Value 2_2, Hash Value 2_3)과 각각 비교하여 서로 동일한 경우가 존재하면 대상 이미지(IMG)와 동일한 이미지가 존재하는 것으로 판단할 수 있다. 그리고 메모리 시스템(320)은 대상 이미지(IMG)와 동일한 이미지가 존재함을 나타내는 정보(Info_IMG)를 호스트(310)에 제공할 수 있다. 반면, 제2 해시값들이 서로 동일한 경우가 존재하지 않으면, 메모리 시스템(320)은 대상 이미지(IMG)와 유사한 이미지가 존재함을 나타내는 정보(Info_IMG)를 호스트(310)에 제공할 수 있다.
호스트(310)는 대상 이미지(IMG)와 동일한 이미지가 존재함을 나타내는 정보(info_IMG)를 수신하면 대상 이미지(IMG)를 저장하지 않는 것으로 결정할 수 있다. 이 경우, 호스트(310)는 백업 동작을 종료할 수 있다.
반면, 대상 이미지(IMG)와 유사한 이미지가 존재함을 나타내는 정보(Info_IMG)를 수신하는 경우, 호스트(310)는 유사한 이미지와 대상 이미지(IMG)의 차이에 대응하는 데이터를 저장하도록 기입 명령(CMD)을 메모리 시스템(320)에 제공할 수 있다. 이때, 호스트(310)는 대상 이미지(IMG)와 유사한 이미지의 논리 어드레스를 함께 메모리 시스템(320)에 제공할 수 있다. 그리고 호스트(310)는 대상 이미지(IMG)의 제1 해시값을 제1 해시 테이블(312)에 저장할 수 있다.
그리고 메모리 시스템(320)은 호스트(310)로부터 기입 명령(CMD)과 논리 어드레스를 수신하면, 상기 수신한 논리 어드레스에 대응하는 물리 어드레스를 확인하고, 상기 확인한 물리 어드레스에 저장된 이미지를 메모리 장치(미도시)로부터 독출하고, 상기 대상 이미지(IMG)와 독출한 이미지의 차이를 계산할 수 있다. 그리고 메모리 시스템(320)은 상기 계산한 차이에 대응하는 데이터를 저장할 수 있다. 그리고 메모리 시스템(320)은 대상 이미지(IMG)의 제2 해시값을 제2 해시 테이블(322)에 저장할 수 있다.
한편, 변형 가능한 실시예에 따르면, 메모리 시스템(320)은 대상 이미지(IMG)의 제2 해시값과 동일한 제2 해시값을 확인하지 못한 경우, 대상 이미지(IMG)와 유사한 이미지가 존재하는 것으로 판단하기에 앞서, 추가적인 동작을 수행할 수 있다.
예컨대, 메모리 시스템(320)은 호스트(310)에 의해 유사한 이미지로 판단되었던 이미지에 대하여 실제로 대상 이미지(IMG)와의 차이를 계산할 수 있는지를 확인할 수 있다. 이는 상기 유사한 이미지로 판단되었던 이미지와 대상 이미지(IMG)의 크기가 다른 경우이거나, 상기 유사한 이미지로 판단되었던 이미지와 대상 이미지(IMG)의 크기가 동일하더라도 실제로 양 이미지의 차이가 특정 수준 이상인 경우, 실제로 양 이미지의 차이를 계산하여 저장하는 것이 대상 이미지(IMG) 자체를 저장하는 것보다 연산량 또는 정확성 측면에서 불리할 수 있기 때문이다. 따라서, 메모리 시스템(320)은 유사한 이미지로 판단되었던 이미지와 대상 이미지(IMG)의 크기가 다르거나 실제로 양 이미지의 차이가 특정 수준 이상이면, 차이를 계산할 수 없는 것으로 결정하고, 대상 이미지(IMG)와 유사한 이미지가 존재하지 않는 것으로 판단할 수 있다.
따라서, 메모리 시스템(320)은 호스트(310)에 대상 이미지(IMG)의 제1 해시값과 유사한 제1 해시값에 대응하는 이미지의 어드레스를 호스트(310)에 요청할 수 있다. 그리고 메모리 시스템(320)은 수신한 어드레스를 이용하여 상기 유사한 제1 해시값을 갖는 이미지를 독출하고, 상기 독출한 이미지와 대상 이미지(IMG)의 픽셀 사이즈를 비교할 수 있다. 한편, 변형 가능한 실시예에 따라, 호스트(310)가 동일성 요청과 함께 유사한 제1 해시값에 대응하는 이미지의 어드레스를 이미 제공한 경우, 메모리 시스템(320)은 호스트(310)에 어드레스의 요청 없이 바로 유사한 제1 해시값에 대응하는 이미지를 독출할 수 있다.
만약 픽셀 사이즈가 서로 다른 경우, 메모리 시스템(320)은 유사한 이미지가 존재하지 않는 것으로 판단하고, 대상 이미지(IMG)와 유사한 이미지가 존재하지 않음을 나타내는 정보(Info_IMG)를 호스트(310)에 제공할 수 있다.
반면, 픽셀 사이즈가 서로 같은 경우, 메모리 시스템(320)은 대상 이미지(IMG)와 독출한 이미지를 픽셀별로 비교하여 픽셀별 차이를 계산할 수 있다. 그리고 메모리 시스템(320)은 전체 픽셀들 대비 상기 차이가 발생한 픽셀의 비율을 계산하여, 상기 비율이 기설정된 비율을 초과하는지 확인할 수 있다. 만약 상기 비율이 기설정된 비율을 초과하면, 메모리 시스템(320)은 유사한 이미지가 존재하지 않음을 나타내는 정보(Info_IMG)를 호스트(310)에 제공할 수 있다. 한편, 상기 비율이 기설정된 비율을 초과하지 않으면, 메모리 시스템(320)은 유사한 이미지가 존재함을 나타내는 정보(Info_IMG)를 호스트(310)에 제공할 수 있다. 이때, 메모리 시스템(320)은 상기 비율을 상기 정보(Info_IMG)에 포함하여 호스트(310)에 제공할 수 있다.
그리고 호스트(310)는 메모리 시스템(320)으로부터 수신한 정보(Info_IMG)를 기초로 유사한 이미지가 존재하는 것으로 판단한 경우, 유사 이미지와 대상 이미지(IMG)의 차이에 대응하는 데이터를 저장하도록 기입 명령(CMD)을 메모리 시스템(320)에 제공할 수 있다. 그리고 메모리 시스템(320)은 기입 명령(CMD)에 응답하여 유사 이미지와 대상 이미지(IMG)의 차이에 대응하는 데이터를 저장할 수 있다. 구체적으로, 메모리 시스템(320)은 상기 차이를 계산할 수 있는지 확인하는 과정에서 이미 산출하였던, 대상 이미지(IMG)와 상기 독출한 이미지의 픽셀별 차이에 대한 데이터를 저장할 수 있다.
도 4는 본 개시의 일 실시예에 따른 컴퓨팅 시스템의 구체적인 구현 예를 나타내는 블록도이다.
도 4는 도 3의 변형 가능한 실시예에 대한 도면이다. 호스트(410)가 정확도 높은 유사성 판단을 수행하는 경우, 복수의 백업 요청이 들어오면 호스트(410)의 연산 처리의 병목 현상이 발생할 수 있다. 이를 방지하기 위해, 본 개시의 일 실시예에 따른 컴퓨팅 시스템(400)은 호스트(410)가 간단한 유사성 판단을 수행하고, 메모리 시스템(420)이 호스트(410)의 유사성 판단의 정확도를 보완하기 위해 복잡한 유사성 판단을 추가적으로 수행한 후, 동일성 판단을 수행하는 것으로 구현될 수 있다.
도 4와 관련하여, 호스트(410)가 제1 해시값을 이용하여 기저장된 복수의 이미지들 중 대상 이미지(IMG)와 동일 또는 유사한 이미지의 존재 여부를 판단하고, 판단 결과에 따라 대상 이미지(IMG)를 메모리 시스템(420)에 선택적으로 제공하는 일련의 동작들은 도 3의 실시예와 실질적으로 동일할 수 있으므로, 중복된 설명은 생략한다.
메모리 시스템(420)은 제2 해시 엔진(421)을 통해 대상 이미지(IMG)에 제2 지각 해시 함수를 적용하여 제3 해시값(Hash Value 3_4)을 산출할 수 있다. 본 개시의 일 실시예에 따르면, 제2 해시 엔진(421)은 암호화 해시 함수뿐만 아니라, 제2 지각 해시 함수를 추가적으로 이용할 수 있다. 여기서 제2 지각 해시 함수는, 제1 지각 해시 함수보다 복잡한 연산이 적용될 수 있다. 예컨대, 제1 지각 해시 함수가 32비트의 해시값을 출력하는 경우, 제2 지각 해시 함수는 64비트의 해시값을 출력할 수 있다. 이하에서는 설명의 편의를 위해 상기 제2 지각 해시를 적용하여 산출된 해시값을 제3 해시값으로 지칭한다.
한편, 도 4를 도시하고 설명함에 있어서, 메모리 시스템(420)이 암호화 해시 함수 및 제2 지각 해시 함수 모두를 이용할 수 있는 제2 해시 엔진(421)을 포함하는 것으로 도시하고 설명하였지만, 실시예에 따라, 메모리 시스템(420)은 암호화 해시 함수를 이용하는 해시 엔진과 제2 지각 해시 함수를 이용하는 해시 엔진을 각각을 포함할 수도 있다.
그리고 메모리 시스템(420)은 상기 제2 해시 테이블(422)을 이용하여 상기 산출한 제3 해시값(Hash Value 3_4)과 복수의 이미지들의 제3 해시값들(Hash Value 3_1, Hash Value 3_2, Hash Value 3_3)을 비교하여, 상기 산출한 제3 해시값(Hash Value 3_4)과 유사한 제3 해시값이 존재하는지 확인할 수 있다. 여기서 제2 해시 테이블(422)은 복수의 이미지들 각각에 암호화 해시 함수를 적용하여 생성된 제2 해시값뿐만 아니라, 제3 해시값들을 추가적으로 포함할 수 있다.
일 예로서, 메모리 시스템(420)은 대상 이미지(IMG)의 제3 해시값(Hash Value 3_4)을 복수의 이미지들의 제3 해시값들(Hash Value 3_1, Hash Value 3_2, Hash Value 3_3) 각각과 비교하여 서로 상이한 비트의 개수들이 미리 결정된 개수(가령, 5개)와 같거나 적은 경우가 존재하는지 확인할 수 있다.
만약 서로 상이한 비트의 개수들이 미리 결정된 개수와 같거나 적은 경우가 존재하지 않는 경우, 메모리 시스템(420)은 대상 이미지(IMG)와 유사한 이미지가 존재하지 않음을 나타내는 정보(Info_IMG)를 호스트(410)에 제공할 수 있다.
반면, 서로 상이한 비트의 개수가 미리 결정된 개수와 같거나 적은 경우가 존재하는 경우, 메모리 시스템(420)은 대상 이미지(IMG)와 동일 또는 유사한 이미지가 존재하는 것으로 판단할 수 있다. 그리고 메모리 시스템(420)은 대상 이미지(IMG)와 동일한 이미지가 존재하는지를 판단하기 위해, 제2 해시 엔진(421)을 통해 대상 이미지(IMG)에 암호화 해시 함수를 적용하여 제2 해시값(Hash Value 2_4)을 산출할 수 있다. 그리고 메모리 시스템(420)은 제2 해시 테이블(422)을 이용하여 상기 산출한 제2 해시값(Hash Value 2_4)과 복수의 이미지들의 제2 해시값들(Hash Value 2_1, Hash Value 2_2, Hash Value 2_3)을 비교하여, 상기 산출한 제2 해시값(Hash Value 2_4)과 동일한 제2 해시값이 존재하는지 확인할 수 있다.
만약 동일한 제2 해시값이 존재하지 않는 경우, 메모리 시스템(420)은 대상 이미지(IMG)와 유사한 이미지가 존재함을 나타내는 정보(Info_IMG)를 호스트(410)에 제공할 수 있다. 반면, 동일한 제2 해시값이 존재하는 경우, 메모리 시스템(420)은 대상 이미지(IMG)와 동일한 이미지가 존재함을 나타내는 정보(Info_IMG)를 호스트(410)에 제공할 수 있다.
그리고 호스트(410)는 메모리 시스템(420)으로부터 수신한 정보(Info_IMG)를 기초로 대상 이미지(IMG) 중 적어도 일부를 저장할 수 있다. 한편, 대상 이미지(IMG)와 동일한 이미지가 존재함을 나타내는 정보(Info_IMG)를 수신하는 경우, 호스트(410)는 대상 이미지(IMG)를 저장하지 않는 것으로 결정할 수 있다.
대상 이미지(IMG)와 유사한 이미지가 존재함을 나타내는 정보(Info_IMG)를 수신하는 경우, 호스트(410)는 유사한 이미지와 대상 이미지(IMG)의 차이에 대응하는 데이터를 저장하도록 기입 명령(CMD)을 메모리 시스템(420)에 제공할 수 있다. 그리고 호스트(410)는 대상 이미지(IMG)의 제1 해시값을 제1 해시 테이블(412)에 저장할 수 있다.
또한, 대상 이미지(IMG)와 동일 또는 유사한 이미지가 존재하지 않음을 나타내는 정보(Info_IMG)를 수신하는 경우, 호스트(410)는 대상 이미지(IMG)를 저장하도록 기입 명령(CMD)을 메모리 시스템(420)에 제공할 수 있다. 그리고 호스트(410)는 대상 이미지(IMG)의 제1 해시값을 제1 해시 테이블(412)에 저장할 수 있다.
메모리 시스템(420)은 호스트(410)로부터 유사 이미지와 대상 이미지(IMG)의 차이에 대응하는 데이터를 저장할 것을 요청하는 기입 명령(CMD)을 수신하면, 대상 이미지(IMG)의 제3 해시값과 유사한 제3 해시값에 대응하는 이미지를 메모리 장치(미도시)로부터 독출하고, 상기 대상 이미지(IMG)와 독출한 이미지의 차이를 계산할 수 있다. 그리고 메모리 시스템(420)은 상기 계산한 차이에 대응하는 데이터를 저장할 수 있다. 그리고 메모리 시스템(420)은 대상 이미지(IMG)의 제2 해시값 및 제3 해시값을 제2 해시 테이블(422)에 저장할 수 있다.
또한, 메모리 시스템(420)은 호스트(410)로부터 대상 이미지(IMG)를 저장할 것을 요청하는 기입 명령(CMD)을 수신하면, 대상 이미지(IMG)를 저장할 수 있다. 그리고 메모리 시스템(420)은 대상 이미지(IMG)의 제2 해시값 및 제3 해시값을 제2 해시 테이블(422)에 저장할 수 있다.
한편, 변형 가능한 실시예에 따르면, 메모리 시스템(420)은 대상 이미지(IMG)의 제2 해시값과 동일한 제2 해시값을 확인하지 못한 경우, 대상 이미지(IMG)와 유사한 이미지가 존재하는 것으로 판단하기에 앞서, 대상 이미지(IMG)의 제3 해시값과 유사한 제3 해시값에 대응하는 이미지에 대하여 실제로 대상 이미지와의 차이를 계산할 수 있는지 여부를 확인할 수 있다. 그리고 메모리 시스템(420)은 상기 확인 결과에 따라 대상 이미지(IMG)와 동일 또는 유사한 이미지의 존재 여부를 나타내는 정보를 호스트(410)에 제공할 수 있다. 이는 도 3에서 전술한 바와 같이, 유사한 이미지가 존재하여도 대상 이미지(IMG) 자체를 저장하는 것이 보다 유리한지를 판단하기 위함이다. 또한, 상기 차이를 계산할 수 있는지 여부를 확인하는 방법은 도 3과 관련하여 전술한 설명과 실질적으로 동일할 수 있는바, 중복된 설명은 생략한다.
그리고 호스트(410)는 메모리 시스템(420)으로부터 수신한 정보(Info_IMG)를 기초로 유사한 이미지가 존재하는 것으로 판단한 경우, 유사한 이미지와 대상 이미지(IMG)의 차이에 대응하는 데이터를 저장하도록 기입 명령(CMD)을 메모리 시스템(420)에 제공할 수 있다. 그리고 메모리 시스템(420)은 기입 명령(CMD)에 응답하여 유사 이미지와 대상 이미지(IMG)의 차이에 대응하는 데이터를 저장할 수 있다.
상기와 같은 실시 예에 따르면, 호스트(410)가 간단한 수준의 유사 판단을 수행하고, 메모리 시스템(420)이 더 복잡한 유사 판단을 수행함으로써, 호스트(410)에서 수행되는 연산량이 감소할 수 있다. 이에 따라, 호스트(410)에서 발생할 수 있는 연산 처리의 병목 현상을 더욱 방지할 수 있고, 더 복잡한 유사 판단을 추가적으로 수행하므로, 대상 이미지와 기저장된 복수의 이미지들 간의 유사 판단을 정확히 수행할 수 있다.
도 5는 본 개시의 일 실시예에 따른 컴퓨팅 시스템의 구체적인 구현 예를 나타내는 블록도이다.
도 5는 도 4의 변형 가능한 실시예로서, 컴퓨팅 시스템이 동일성 또는 유사성 판단을 수행할 수 있는 복수의 메모리 시스템들을 포함하는 실시예에 대한 도면이다. 도 5를 참조하면, 컴퓨팅 시스템(500)은 호스트(510) 및 복수의 메모리 시스템(520, 530)을 포함할 수 있다. 또한, 호스트(510)는 제1 해시 엔진(511), 제1 해시 테이블(512) 및 메모리 시스템 선택기(513)를 포함할 수 있다. 또한, 제1 메모리 시스템(520) 및 제2 메모리 시스템(530) 각각은 제2 해시 엔진(521, 531) 및 제2 해시 테이블(522, 532)을 포함할 수 있다. 제1 메모리 시스템(520)은 제1 복수의 이미지들을 저장할 수 있으며, 제2 해시 테이블(522)는 상기 제1 복수의 이미지들의 해시값들을 저장할 수 있다. 그리고 제2 메모리 시스템(530)은 제2 복수의 이미지들을 저장할 수 있으며, 제2 해시 테이블(523)은 상기 제2 복수의 이미지들의 해시값들을 저장할 수 있다.
호스트(510)는 제1 해시 엔진(511)을 이용하여 대상 이미지(IMG)의 제1 해시값을 산출하고, 제1 해시 테이블(512)을 이용하여 상기 산출한 제1 해시값과 유사한 제1 해시값을 확인할 수 있다. 그리고 호스트(510)는 유사한 제1 해시값에 대응하는 이미지를 저장하는 메모리 시스템을 확인할 수 있다. 그리고 호스트(510)는 확인한 메모리 시스템에 대상 이미지(IMG)를 제공할 수 있다.
예컨대, 상기 산출한 제1 해시값(Hash Value 1_4)과 유사한 해시값이 Hash Value 1_1인 경우, 호스트(510)는 복수의 이미지들의 논리 어드레스들을 참조하여 상기 Hash Value 1_1를 저장하고 있는 메모리 시스템이 제1 메모리 시스템(520)임을 확인할 수 있다. 그리고 호스트(510)는 제1 메모리 시스템(520)으로 대상 이미지(IMG)를 제공하고, 동일성 판단을 요청할 수 있다.
한편, 호스트(510)가 산출한 제1 해시값과 유사한 해시값이 복수이고, 상기 복수의 해시값들에 대응하는 이미지들 또한 복수의 메모리 시스템(520, 530)에 각각 저장된 경우, 호스트(510)는 상기 복수의 메모리 시스템(520, 530) 모두에 대상 이미지(IMG)를 제공하고, 동일성 판단을 요청할 수 있다.
그리고 복수의 메모리 시스템(520, 530) 각각은 제2 해시 엔진(521, 531)의 제2 지각 해시 함수를 이용하여 대상 이미지(IMG)의 제3 해시값을 산출하고 상기 제2 해시 테이블(522, 532)을 이용하여 상기 산출한 제3 해시값과 유사한 제3 해시값을 확인할 수 있다. 만약 유사한 제3 해시값을 확인할 수 없는 경우, 복수의 메모리 시스템(520, 530) 각각은 유사한 이미지가 존재하지 않음을 나타내는 정보(Info_IMG 1, Info_IMG 2)를 호스트(510)에 제공할 수 있다.
반면, 유사한 제3 해시값을 확인할 수 있는 경우, 복수의 메모리 시스템(520, 530) 각각은 제2 해시 엔진(521, 531)의 암호화 해시 함수를 이용하여 대상 이미지(IMG)의 제2 해시값을 산출하고 상기 제2 해시 테이블(522, 532)을 이용하여 상기 산출한 제2 해시값과 동일한 제2 해시값을 확인할 수 있다. 만약 동일한 제2 해시값을 확인할 수 있는 경우, 복수의 메모리 시스템(520, 530) 각각은 동일한 이미지가 존재함을 나타내는 정보(I Info_IMG 1, Info_IMG 2)를 호스트(510)에 제공할 수 있다.
반면, 동일한 제2 해시값이 존재하지 않으면, 복수의 메모리 시스템(520, 530) 각각은 대상 이미지(IMG)와 유사한 이미지가 존재하는 것으로 판단하기에 앞서, 추가적인 동작을 수행할 수 있다. 구체적으로, 복수의 메모리 시스템(520, 530) 각각은 동일성 판단을 수행하기 전에 유사한 이미지로 판단되었던 이미지에 대하여 실제로 대상 이미지와의 차이를 계산할 수 있는지 여부를 확인할 수 있다.
예컨대, 복수의 메모리 시스템(520, 530)은 대상 이미지(IMG)의 제3 해시값과 유사한 제3 해시값에 대응하는 이미지와 대상 이미지의 픽셀 사이즈를 비교하거나, 양 이미지를 픽셀별로 비교하여 픽셀별 차이를 계산하고, 전체 픽셀들 대비 차이가 발생한 픽셀의 비율을 계산함으로써, 양 이미지 간의 차이를 계산할 수 있는지 확인할 수 있다. 그리고 복수의 메모리 시스템(520, 530)은 확인 결과에 따라 대상 이미지(IMG)와 동일 또는 유사한 이미지의 존재 여부를 나타내는 정보(Info_IMG 1, Info_IMG 2)를 호스트(510)에 제공할 수 있다. 이때, 상기 정보(Info_IMG 1, Info_IMG 2)는 상기 비율, 또는 상기 대상 이미지(IMG)의 제3 해시값과 유사한 제3 해시값의 서로 상이한 비트의 개수를 포함할 수 있다.
호스트(510)는 복수의 메모리 시스템(520, 530) 중 하나에만 대상 이미지(IMG)를 제공한 경우, 대상 이미지(IMG)를 제공받은 메모리 시스템으로부터 수신한 대상 이미지(IMG)에 대한 정보만을 기초로 대상 이미지(IMG)의 적어도 일부를 저장할 수 있다.
한편, 호스트(510)가 복수의 메모리 시스템(520, 530) 모두에 대상 이미지(IMG)를 제공한 경우, 복수의 메모리 시스템(520, 530) 각각으로부터 대상 이미지(IMG)에 대한 정보들(Info_IMG 1, Info_IMG 2)을 수신할 수 있고, 수신한 정보들을 기초로 대상 이미지(IMG)의 적어도 일부를 저장할 수 있다.
예컨대, 수신한 정보들을 기초로 대상 이미지(IMG)와 동일한 이미지가 존재하는 것으로 판단되면, 호스트(510)는 대상 이미지(IMG)를 저장하지 않는 것으로 결정할 수 있다. 또한, 수신한 정보들을 기초로 대상 이미지(IMG)와 동일 또는 유사한 이미지가 존재하지 않는 것으로 판단되면, 호스트(510)는 대상 이미지(IMG)를 저장하는 것으로 결정할 수 있다.
한편, 수신한 정보들을 기초로 대상 이미지(IMG)와 동일한 이미지는 존재하지 않으나, 복수의 유사한 이미지가 복수의 메모리 시스템(520, 530) 각각에 존재하는 것으로 판단되면, 호스트(510)는 메모리 시스템 선택기(513)를 이용하여 각 메모리 시스템에 저장된 유사한 이미지와 대상 이미지(IMG)의 차이에 대응하는 데이터를 요청할 메모리 시스템을 선택할 수 있다.
일 예로서, 메모리 시스템 선택기(513)는 복수의 메모리 시스템(520, 530) 각각으로부터 수신한 정보들(Info_IMG 1, Info_IMG 2)에 포함된 제3 해시값들 간의 서로 상이한 비트의 개수, 상기 전체 픽셀들 대비 차이가 발생한 픽셀의 비율 및 복수의 메모리 시스템(520, 530) 각각의 사용량 중 적어도 하나를 기초로 상기 차이에 대응하는 데이터를 요청할 메모리 시스템을 선택할 수 있다. 이는 복수의 메모리 시스템(520, 530) 중 특정 메모리 시스템에서만 연산 처리가 수행되어 병목 현상이 발생하는 것을 방지하기 위함이다. 한편, 메모리 시스템 선택기(513)는 상술한 정보 외에도 추가적인 정보를 이용하여 메모리 시스템을 선택할 수 있다.
그리고 호스트(510)는 메모리 시스템 선택기(513)에 의해 선택된 메모리 시스템에 유사한 이미지와 대상 이미지(IMG)의 차이에 대응하는 데이터를 요청할 수 있다. 그리고 상기 요청을 수신한 메모리 시스템은 유사한 이미지와 대상 이미지(IMG)의 차이에 대응하는 데이터를 호스트(510)에 제공할 수 있다. 예컨대, 메모리 시스템은 상기 차이를 계산할 수 있는지 확인하는 과정에서 이미 산출하였던, 유사한 제3 해시값에 대응하는 이미지와 대상 이미지의 픽셀별 차이에 대한 데이터를 호스트(510)에 제공할 수 있다.
그리고 호스트(510)는 수신한 유사한 이미지와 대상 이미지(IMG)의 차이에 대응하는 데이터를 저장하도록 요청하는 기입 명령(CMD)을 상기 유사 이미지를 저장하고 있는 메모리 시스템에 전송할 수 있다. 그리고 상기 기입 명령(CMD)을 수신한 메모리 시스템은 상기 차이에 대응하는 데이터를 호스트(510)로부터 수신하여 저장할 수 있다.
한편, 도 5를 도시하고 설명함에 있어서, 복수의 메모리 시스템들의 제2 해시 엔진들이 제2 지각 해시 함수 및 암호화 해시를 이용하여 동일성 및 유사성 판단을 수행하는 것으로 도시하고 설명하였지만, 복수의 메모리 시스템들은 도 3의 메모리 시스템과 같이 암호화 해시 함수만을 이용하여 동일성 판단만을 수행할 수도 있다.
상기와 같은 실시 예에 따르면, 컴퓨팅 시스템(500)은 각각에 저장되어 있는 이미지들에 대하여 동일성 또는 유사성 판단을 수행할 수 있는 복수의 메모리 시스템(520, 530)을 포함하고 있으므로, 하나의 메모리 시스템이 기저장된 전체 이미지들에 대한 동일성 또는 유사성 판단을 모두 수행하는 경우에 비해, 연산 처리의 병목 현상을 보다 방지할 수 있다.
도 6은 본 개시의 일 실시예에 따른 컴퓨팅 시스템의 구체적인 구현 예를 나타내는 블록도이다.
도 6은 도 5의 변형 가능한 실시예로서, 컴퓨팅 시스템이 복수의 메모리 시스템을 포함하되, 그 중 일부는 이미지들에 대한 동일성 또는 유사성 판단을 수행할 수 없는 실시예에 대한 도면이다. 도 6을 참조하면, 컴퓨팅 시스템(600)은 호스트(610) 및 복수의 메모리 시스템(620, 630, 640, 650)을 포함할 수 있다. 또한, 호스트(610)는 제1 해시 엔진(611), 제1 해시 테이블(612) 및 메모리 시스템 선택기(613)를 포함할 수 있다. 또한, 복수의 메모리 시스템(620, 630, 640, 650)은 메모리 컨트롤러(621, 631, 641, 651) 및 메모리 장치(622, 632, 642, 652)를 포함할 수 있으며, 각각 복수의 이미지들을 저장할 수 있다. 제1 메모리 시스템(620) 및 제2 메모리 시스템(630) 각각은 제2 해시 엔진(623, 633) 및 제2 해시 테이블(624, 634)을 포함할 수 있다. 반면, 제3 메모리 시스템(640) 및 제4 메모리 시스템(650)은 상기 구성들을 포함하지 않을 수 있다.
본 개시의 일 실시예에 따르면, 제2 해시 테이블(624, 634)은 제1 메모리 시스템(620) 및 제2 메모리 시스템(630)에 저장된 이미지뿐만 아니라 제3 메모리 시스템(640) 및 제4 메모리 시스템(650)에 저장된 이미지들의 해시값들도 포함할 수 있다. 예컨대, 제1 메모리 시스템(620)의 제2 해시 테이블(624)은 제1 메모리 시스템(620)에 저장된 이미지들 및 제3 메모리 시스템(640)에 저장된 이미지들의 해시값들을 포함할 수 있고, 제2 메모리 시스템(630)의 제2 해시 테이블(634)은 제2 메모리 시스템(630)에 저장된 이미지들 및 제4 메모리 시스템(650)에 저장된 이미지들의 해시값들을 포함할 수 있다.
호스트(610)는 제1 해시 엔진(611)을 이용하여 대상 이미지(IMG)의 제1 해시값을 산출하고, 제1 해시 테이블(612)을 이용하여 상기 산출한 제1 해시값과 유사한 제1 해시값을 확인하면 상기 유사한 제1 해시값에 대응하는 이미지의 해시값을 관리하고 있는 메모리 시스템으로 대상 이미지(IMG)를 제공할 수 있다.
일 예로서, 제1 해시 테이블(612)은 복수의 메모리 시스템(620, 630, 640, 650)들에 저장된 이미지들 각각의 제1 해시값들과 함께, 상기 저장된 이미지들의 논리 어드레스와 상기 저장된 이미지들의 해시값을 관리하는 메모리 시스템에 대한 정보를 포함할 수 있다. 따라서, 호스트(610)는 제1 해시 테이블(612)을 참조하여 유사한 제1 해시값을 관리하는 메모리 시스템을 확인할 수 있다. 또한, 복수의 유사한 제1 해시값들이 확인되는 경우, 호스트(610)는 상기 복수의 유사한 제1 해시값들을 관리하는 메모리 시스템 각각을 확인할 수 있다. 예컨대, 호스트(610)는 복수의 유사한 제1 해시값들을 관리하는 메모리 시스템으로 제1 메모리 시스템(620)과 제2 메모리 시스템을 확인할 수 있다.
그리고 제1 메모리 시스템(620)은 제2 해시 엔진(623) 및 제2 해시 테이블(624)을 이용하여 대상 이미지(IMG)와 제1 메모리 시스템(620) 및 제3 메모리 시스템(640)에 저장된 복수의 이미지들 간의 동일성 또는 유사성을 판단할 수 있다. 그리고 제1 메모리 시스템(620)은 상기 판단 결과에 대응하는 정보(Info_IMG 1)를 호스트(610)에 제공할 수 있다.
그리고 제2 메모리 시스템(630)은 제2 해시 엔진(633) 및 제2 해시 테이블(634)을 이용하여 대상 이미지(IMG)와 제2 메모리 시스템(630) 및 제4 메모리 시스템(650)에 저장된 복수의 이미지들 간의 동일성 또는 유사성을 판단할 수 있다. 그리고 제2 메모리 시스템(630)은 상기 판단 결과에 대응하는 정보(Info_IMG 2)를 호스트(610)에 제공할 수 있다.
한편, 본 개시의 일 실시예에 따르면, 제1 메모리 시스템(620) 및 제2 메모리 시스템(630)은 대상 이미지(IMG)와 기저장된 이미지들 간의 동일성 또는 유사성을 판단하는 과정에서, 제3 메모리 시스템(640) 또는 제4 메모리 시스템(650)에 저장된 이미지를 독출하고, 독출한 이미지를 이용하여 유사성을 판단할 수 있다.
예컨대, 제1 메모리 시스템(620)이 대상 이미지(IMG)의 제2 해시값과 제1 메모리 시스템(620) 및 제3 메모리 시스템(640)에 저장된 이미지들의 제2 해시값들을 비교하여 동일성 판단을 수행했으나, 동일한 이미지가 존재하지 않는 것으로 판단할 수 있다. 일 실시예에 따르면, 상기 단계에서 제1 메모리 시스템(620)은 동일성 판단에 앞서 유사한 이미지로 판단되었던 이미지에 대하여 대상 이미지(IMG)와의 차이를 계산할 수 있는지 확인할 수 있다. 이때, 상기 유사한 이미지로 판단되었던 이미지는 제3 메모리 시스템(640)에 저장된 이미지일 수 있다. 따라서, 제1 메모리 시스템(620)은 직접 제3 메모리 시스템(640)으로부터 상기 이미지를 독출하거나, 호스트(610)에 독출을 요청하여 호스트(610)를 통해 상기 이미지를 수신할 수 있다. 그리고 제1 메모리 시스템(620)은 상기 제3 메모리 시스템(640)으로부터 독출한 이미지와 대상 이미지(IMG)를 이용하여 차이를 계산할 수 있는지 확인하고, 상기 확인 결과에 따라 대상 이미지(IMG)와 동일 또는 유사한 이미지의 존재 여부를 나타내는 정보를 호스트(610)에 제공할 수 있다.
호스트(610)는 제1 메모리 시스템(620) 또는 제2 메모리 시스템(630)으로부터 대상 이미지(IMG)와 동일 또는 유사한 이미지의 존재 여부를 나타내는 정보(Info_IMG 1, Info_IMG 2)를 수신할 수 있다. 한편, 복수의 메모리 시스템(620, 630)으로부터 상기 정보(Info_IMG 1, Info_IMG 2)들을 복수 개 수신하는 경우, 호스트(610)는 메모리 시스템 선택기(613)를 이용하여 유사 이미지와 대상 이미지(IMG)의 차이에 대응하는 데이터를 요청할 메모리 시스템을 선택할 수 있다.
일 예로서, 메모리 시스템 선택기(613)는 상기 제1 메모리 시스템(620) 및 제2 메모리 시스템(630)으로부터 수신한 정보(Info_IMG 1, Info_IMG 2)와 제1 메모리 시스템(620) 및 제2 메모리 시스템(630) 각각의 사용량을 기초로 유사 이미지와 대상 이미지(IMG)의 차이에 대응하는 데이터를 요청할 메모리 시스템을 선택할 수 있다. 그리고 호스트(610)는 선택한 메모리 시스템에 상기 유사 이미지와 대상 이미지(IMG)의 차이에 대응하는 데이터를 요청할 수 있다. 그리고 선택된 메모리 시스템은 호스트(610)의 요청에 따라 상기 데이터를 호스트(610)에 제공할 수 있다.
예컨대, 메모리 시스템 선택기(613)가 제2 메모리 시스템(630)을 선택한 경우, 호스트(610)는 차이에 대응하는 데이터를 요청하는 요청 신호(Req)를 제2 메모리 시스템(630)에 전송할 수 있다. 그리고 제2 메모리 시스템(630)은 수신한 요청 신호(Req)에 응답하여, 유사 이미지와 대상 이미지(IMG)의 차이에 대응하는 데이터(DATA)를 호스트(610)에 제공할 수 있다.
그리고 호스트(610)는 상기 데이터(DATA)를 수신하면, 이를 저장할 메모리 시스템을 선택할 수 있다. 예컨대, 호스트(610)는 상기 유사 이미지가 저장된 메모리 시스템을 확인하고, 상기 확인된 메모리 시스템에 상기 데이터(DATA)를 기입하도록 기입 명령(CMD)과 데이터(DATA)를 제공할 수 있다. 또는, 호스트(610)는 복수의 메모리 시스템(620, 630, 640, 650)들의 사용량을 고려하여 상기 데이터(DATA)를 저장할 메모리를 선택하고, 상기 선택한 메모리 시스템에 상기 데이터(DATA)를 기입하도록 기입 명령(CMD)과 데이터(DATA)를 제공할 수 있다. 한편, 호스트(610)가 상기 데이터(DATA)를 저장할 메모리 시스템을 선택하는 방법은 상술한 예에 한하지 않는다.
상기와 같은 실시 예에 따르면, 컴퓨팅 시스템은 해시를 이용한 연산 처리 기능을 지원하지 않는 메모리 시스템을 구비한 경우에도, 이미지들 간의 동일성 및 유사성 판단을 이용한 이미지 백업 기능을 수행할 수 있다.
도 7은 본 개시의 일 실시예에 따른 이미지 백업 방법을 나타내는 순서도이다. 본 실시예에 따른 이미지 백업 방법은 도 1, 도 3 내지 도 6의 컴퓨팅 시스템에서 수행될 수 있다.
먼저, 호스트는 외부로부터 백업 요청과 함께 제1 이미지를 수신할 수 있다(S11). 그리고 호스트는 제1 해시 함수를 기반으로 제1 이미지와 메모리 시스템에 저장된 복수의 이미지들 간의 유사 판단을 수행할 수 있다(S12). 여기서 제1 해시 함수는 지각 해시(perceptual hash) 함수일 수 있다. 지각 해시 함수는 BMB(Block Mean value Based) 해시, DCT(Discrete Cosine Transform) 해시, DWT(Discrete Wavelet Transform) 해시, PCA(Principal Component Analysis) 해시, MH(Marr-Hildreth operator based) 해시, RADIAL(RADIAL variance based) 해시 중 하나에 해당할 수 있으며, 지각 해시 함수의 종류는 상술한 예에 한하지 않는다.
구체적으로, 호스트는 제1 이미지에 제1 해시 함수를 적용하여 제1 해시값을 산출할 수 있다. 그리고 호스트는 산출한 제1 해시값을 복수의 이미지들의 제1 해시값들 각각과 비교하여, 서로 유사한지 확인할 수 있다. 만약 산출한 제1 해시값과 유사한 제1 해시값이 존재하면, 호스트는 제1 이미지와 동일 또는 유사한 이미지가 메모리 시스템에 존재하는 것으로 판단할 수 있다. 반면, 산출한 제1 해시값과 유사한 제1 해시값이 존재하지 않으면, 호스트는 제1 이미지와 동일 또는 유사한 이미지가 메모리 시스템에 존재하지 않은 것으로 판단할 수 있다.
그리고 호스트는 유사 판단 결과에 따라 제1 이미지를 메모리 시스템에 선택적으로 제공할 수 있다(S13). 구체적으로, 호스트는 제1 이미지와 동일 또는 유사한 이미지가 메모리 시스템에 존재하는 것으로 판단하면, 제1 이미지를 메모리 시스템에 제공할 수 있다. 한편, 호스트는 제1 이미지와 동일 또는 유사한 이미지가 메모리 시스템에 존재하지 않는 것으로 판단하면, 제1 이미지를 메모리 시스템에 저장할 수 있다.
그리고 메모리 시스템은 제2 해시 함수를 기반으로 제1 이미지와 메모리 시스템에 저장된 이미지들 간의 동일 판단을 수행할 수 있다(S14). 여기서 제2 해시 함수는 암호화 해시(cryptographic hash) 함수일 수 있다. 암호화 해시 함수는 OST, HAVAL, MD2, MD4, MD5, PANAMA, RadioGatun, RIPEMD, RIPEMD-128/256, RIPEMD-160, RIPEMD-320, SHA-0, SHA-1, SHA-256/224, SHA-512/384, SHA-3, WHIRLPOOL 중 하나에 해당할 수 있으며, 암호화 해시 함수의 종류는 상술한 예에 한하지 않는다.
구체적으로, 메모리 시스템은 제1 이미지에 제2 해시 함수를 적용하여 제2 해시값을 산출할 수 있다. 그리고 메모리 시스템은 산출한 제2 해시값을 복수의 이미지들의 제2 해시값들 각각과 비교하여, 서로 동일한지 확인할 수 있다. 만약 산출한 제2 해시값과 동일한 제2 해시값이 존재하면, 호스트는 제1 이미지와 동일한 이미지가 메모리 시스템에 존재하는 것으로 판단할 수 있다. 반면, 산출한 제2 해시값과 동일한 제2 해시값이 존재하지 않으면, 호스트는 제1 이미지와 유사한 이미지가 메모리 시스템에 존재하는 것으로 판단할 수 있다.
그리고 메모리 시스템은 동일 판단 결과에 따라 제1 이미지의 저장 방식을 결정하기 위한 정보를 호스트에 제공할 수 있다(S15). 구체적으로, 메모리 시스템은 제1 이미지와 동일 또는 유사한 이미지의 존재 유무에 대한 정보를 호스트에 제공할 수 있다.
그리고 호스트는 수신한 정보를 기초로 제1 이미지의 적어도 일부를 저장할 수 있다. 구체적으로, 제1 이미지와 유사한 이미지가 존재하지 않음을 나타내는 정보를 수신한 경우, 호스트는 상기 제1 이미지 전체를 저장할 수 있다. 또한, 제1 이미지와 유사한 이미지가 존재함을 나타내는 정보를 수신한 경우, 호스트는 상기 제1 이미지와 상기 유사한 이미지의 차이에 대응하는 데이터를 저장할 수 있다. 또한, 제1 이미지와 동일한 이미지가 존재함을 나타내는 정보를 수신한 경우, 호스트는 제1 이미지를 저장하지 않는 것으로 결정하고, 이미지 백업 동작을 종료할 수 있다.
그리고 호스트는 제1 이미지와 유사한 이미지가 존재하거나, 제1 이미지와 동일 또는 유사한 이미지가 존재하지 않음을 나타내는 정보를 수신함에 따라 제1 이미지의 적어도 일부를 저장하는 경우, 제1 이미지의 제1 해시값 및 제2 해시값을 저장할 수 있다.
도 8은 본 개시의 일 실시예에 따른 이미지 백업 방법의 구체적인 구현 예를 나타내는 순서도이다. 상세하게는, 도 8은 대상 이미지와 기저장된 이미지들 간의 동일성 및 유사성 판단 동작과 대상 이미지 저장 동작을 구체적으로 나타내는 순서도이다. 본 실시예에 따른 이미지 백업 방법은 도 1, 도 3 내지 도 6의 컴퓨팅 시스템에서 수행될 수 있다.
먼저, 호스트는 제1 이미지의 제1 해시값과 메모리 시스템에 저장된 복수의 이미지들의 제1 해시값을 비교하여, 서로 상이한 비트의 개수들이 제1 임계값과 같거나 적은지 확인할 수 있다(S21).
그리고 서로 상이한 비트의 개수들이 모두 제1 임계값을 초과하는 경우(S21-NO), 호스트는 제1 이미지와 동일 또는 유사한 이미지는 존재하지 않는 것으로 결정할 수 있다(S22). 그리고 호스트는 제1 이미지 전체를 저장할 수 있다(S23).
반면, 서로 상이한 비트의 개수가 제1 임계값과 같거나 적은 경우가 존재하면(S21-YES), 메모리 시스템은 제1 이미지의 제2 해시값을 복수의 이미지들의 제2 해시값들 각각과 비교하여, 서로 동일한지 확인할 수 있다(S24). 예컨대, 호스트는 서로 상이한 비트의 개수가 제1 임계값과 같거나 적은 경우가 존재하면, 동일 또는 유사한 이미지가 존재하는 것으로 판단하여, 메모리 시스템에 제1 이미지를 제공할 수 있다. 그리고 메모리 시스템은 제1 이미지의 제2 해시값을 복수의 이미지들의 제2 해시값들 각각과 비교할 수 있다.
만약 제1 이미지의 제2 해시값과 동일한 제2 해시값이 존재하는 경우(S24-YES), 메모리 시스템은 제1 이미지와 동일한 이미지가 존재하는 것으로 결정할 수 있다(S25). 그리고 메모리 시스템은 제1 이미지와 동일한 이미지가 존재함을 나타내는 정보를 호스트에 제공할 수 있다. 그리고 호스트는 제1 이미지를 저장하지 않는 것으로 결정할 수 있다.
반면, 제1 이미지의 제2 해시값과 동일한 제2 해시값이 존재하지 않은 경우(S24-NO), 메모리 시스템은 제1 이미지와 유사한 이미지가 존재하는 것으로 결정할 수 있다(S26). 그리고 메모리 시스템은 제1 이미지와 유사한 이미지가 존재함을 나타내는 정보를 호스트에 제공할 수 있다.
그리고 호스트는 제1 이미지 및 유사한 이미지의 차이에 대응하는 데이터를 저장할 수 있다(S27). 구체적으로, 메모리 시스템은 제1 이미지 및 유사한 이미지를 픽셀별로 비교하여 차이에 대응하는 데이터를 산출하고, 산출한 데이터를 호스트에 제공할 수 있다. 그리고 호스트는 상기 산출한 데이터 및 기입 명령을 메모리 시스템에 제공하여 산출한 데이터를 저장할 수 있다.
한편, 도 8을 설명함에 있어서, 호스트 또는 메모리 시스템이 상기 일련의 동작들 중 일부를 수행하는 것으로 설명하였지만, 호스트가 상기 일련의 동작들을 모두 수행하거나, 메모리 시스템이 상기 일련의 동작들을 모두 수행하는 것으로 구현될 수 있다. 이 경우, 호스트 및 메모리 시스템 간에 백업 요청의 대상 이미지를 전송하거나 대상 이미지의 저장 방식을 결정하는데 이용되는 정보를 전송하는 동작은 생략될 수 있다.
도 9는 본 개시의 일 실시예에 따른 이미지 백업 방법의 구체적인 구현 예를 나타내는 순서도이다. 상세하게는, 도 9는 도 8의 변형 가능한 실시예로서, 추가적인 유사성 판단을 수행하는 실시예를 나타내는 순서도이다. 본 실시예에 따른 이미지 백업 방법은 도 1, 도 3 내지 도 6의 컴퓨팅 시스템에서 수행될 수 있다.
먼저, 호스트는 제1 이미지의 제1 해시값과 메모리 시스템에 저장된 복수의 이미지들의 제1 해시값들을 비교하여, 서로 상이한 비트의 개수들이 제1 임계값과 같거나 적은지 확인할 수 있다(S31).
그리고 서로 상이한 비트의 개수들이 모두 제1 임계값을 초과하는 경우(S31-NO), 호스트는 제1 이미지와 동일 또는 유사한 이미지는 존재하지 않는 것으로 결정할 수 있다(S32). 그리고 호스트는 제1 이미지 전체를 저장할 수 있다(S33).
반면, 서로 상이한 비트의 개수가 제1 임계값과 같거나 적은 경우가 존재하면(S31-YES), 메모리 시스템은 제1 이미지의 제3 해시값을 산출할 수 있다(S34). 예컨대, 호스트는 서로 상이한 비트의 개수가 제1 임계값과 같거나 적은 경우가 존재하면, 동일 또는 유사한 이미지가 존재하는 것으로 판단하여, 메모리 시스템에 제1 이미지를 제공할 수 있다. 그리고 메모리 시스템은 보다 정확도 높은 유사 판단을 수행하기 위해, 제1 이미지의 제2 해시값을 복수의 이미지들의 제2 해시값들 각각과 비교할 수 있다. 구체적으로, 메모리 시스템은 제1 이미지에 제2 지각 해시 함수를 적용하여 제3 해시값을 산출할 수 있다. 여기서 제2 지각 해시 함수는 제1 지각 해시 함수보다 복잡한 연산이 적용될 수 있다.
그리고 메모리 시스템은 제1 이미지의 제3 해시값을 복수의 이미지들의 제3 해시값들 각각과 비교하여, 서로 상이한 비트의 개수들이 제2 임계값과 같거나 적은지 확인할 수 있다(S35). 여기서 제2 임계값은 제1 임계값과 동일하거나 상이할 수 있다. 그리고 서로 상이한 비트의 개수들이 모두 제2 임계값을 초과하는 경우(S35-NO), 메모리 시스템은 제1 이미지와 동일 또는 유사한 이미지가 존재하지 않는 것으로 결정할 수 있다(S32). 그리고 메모리 시스템은 제1 이미지와 동일한 이미지가 존재함을 나타내는 정보를 호스트에 제공할 수 있다. 그리고 호스트는 제1 이미지를 저장하지 않는 것으로 결정할 수 있다.
반면, 서로 상이한 비트의 개수가 제2 임계값과 같거나 적은 경우가 존재하면(S35-YES), 메모리 시스템은 제1 이미지의 제2 해시값을 복수의 이미지들의 제2 해시값들 각각과 비교하여, 서로 동일한지 확인할 수 있다(S36). 만약 제1 이미지의 제2 해시값과 동일한 제2 해시값이 존재하는 경우, 메모리 시스템은 제1 이미지와 동일한 이미지가 존재하는 것으로 결정할 수 있다(S37). 그리고 메모리 시스템은 제1 이미지와 동일한 이미지가 존재함을 나타내는 정보를 호스트에 제공할 수 있다. 그리고 호스트는 제1 이미지를 저장하지 않는 것으로 결정할 수 있다.
반면, 제1 이미지의 제2 해시값과 동일한 제2 해시값이 존재하지 않은 경우(S36-NO), 메모리 시스템은 제1 이미지와 유사한 이미지가 존재하는 것으로 결정할 수 있다(S38). 그리고 메모리 시스템은 제1 이미지와 유사한 이미지가 존재함을 나타내는 정보를 호스트에 제공할 수 있다.
그리고 호스트는 제1 이미지 및 유사한 이미지의 차이에 대응하는 데이터를 저장할 수 있다(S39). 구체적으로, 메모리 시스템은 제1 이미지 및 유사한 이미지를 픽셀별로 비교하여 차이에 대응하는 데이터를 산출하고, 산출한 데이터를 호스트에 제공할 수 있다. 그리고 호스트는 상기 산출한 데이터 및 기입 명령을 메모리 시스템에 제공하여 산출한 데이터를 저장할 수 있다.
한편, 도 9를 설명함에 있어서, 호스트 또는 메모리 시스템이 상기 일련의 동작들 중 일부를 수행하는 것으로 설명하였지만, 호스트가 상기 일련의 동작들을 모두 수행하거나, 메모리 시스템이 상기 일련의 동작들을 모두 수행하는 것으로 구현될 수 있다. 이 경우, 호스트 및 메모리 시스템 간에 백업 요청의 대상 이미지를 전송하거나 대상 이미지의 저장 방식을 결정하는데 이용되는 정보를 전송하는 동작은 생략될 수 있다.
도 10은 본 개시의 일 실시예에 따른 서버 시스템을 포함하는 네트워크 시스템을 나타내는 블록도이다. 도 10에서는 서버 시스템과 함께 다수의 터미널들(예컨대, 컴퓨팅 노드)이 함께 도시되며, 서버 시스템은 전술한 실시예들에 따른 컴퓨팅 시스템을 이용하여 구현될 수 있다.
도 10을 참조하면, 네트워크 시스템(1000)은 서버 시스템(1010)과 함께, 네트워크(1020)를 통해 통신하는 다수의 터미널들(1030_1 ~ 1030_n)을 포함할 수 있다. 서버 시스템(1010)은 서버(1011)와 메모리 시스템으로서 SSD(1012)를 포함할 수 있다. 서버(1011)는 전술한 실시예들에서의 호스트의 기능을 수행할 수 있다.
서버(1011)는 네트워크(1020)에 연결된 다수의 터미널들(1030_1 ~ 1030_n)로부터 전송된 요청들을 처리할 수 있다. 일 예로서, 서버(1011)는 다수의 터미널들(1030_1 ~ 1030_n)로부터 수신한 백업 요청에 따라, 백업 요청된 대상 이미지를 SSD(1012)에 저장할 수 있다.
구체적으로, 전술한 실시예에서와 같이, 서버(1011)는 제1 지각 해시 함수를 이용하여 대상 이미지의 제1 해시값을 산출하고, 산출한 제1 해시값을 기초로 SSD(1012)에 기저장된 복수의 이미지들 중 대상 이미지와 유사한 이미지가 존재하는지 판단하고, 유사한 이미지가 존재하면 SSD(1012)에 대상 이미지를 제공할 수 있다. 그리고 SSD(1012)는 대상 이미지에 제2 지각 해시 함수를 적용하여 제2 해시값을 산출하고, 대상 이미지에 암호화 해시 함수를 적용하여 제3 해시값을 산출하고, 산출한 제2 해시값과 제3 해시값을 기초로 SSD(1012)에 기저장된 복수의 이미지들 중 대상 이미지와 동일 또는 유사한 이미지가 존재하는지 추가적으로 판단하고, 상기 판단 결과를 서버(1011)에 제공할 수 있다. 그리고 서버(1011)는 판단 결과에 따라 SSD(1012)에 대상 이미지의 적어도 일부를 저장함으로써 SSD(1012)는 보다 높아진 저장 공간의 효율성을 획득할 수 있다.
이상에서와 같이 도면과 명세서에서 예시적인 실시예들이 개시되었다. 본 명세서에서 특정한 용어를 사용하여 실시예들을 설명되었으나, 이는 단지 본 개시의 기술적 사상을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 개시의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 개시의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.

Claims (10)

  1. 호스트 및 메모리 시스템이 구비된 컴퓨팅 시스템의 이미지의 백업 방법에 있어서,
    상기 호스트는, 백업 요청과 함께 제1 이미지를 수신하는 단계;
    상기 호스트는, 제1 해시 함수를 기반으로 상기 제1 이미지와 상기 메모리 시스템에 저장된 복수의 이미지들 간의 유사 판단을 수행하는 단계;
    상기 호스트는, 상기 유사 판단 결과에 따라 상기 제1 이미지를 상기 메모리 시스템에 선택적으로 제공하는 단계;
    상기 메모리 시스템은, 제2 해시 함수를 기반으로 상기 제1 이미지와 상기 복수의 이미지들 간의 동일 판단을 수행하는 단계; 및
    상기 메모리 시스템은, 상기 동일 판단 결과에 따라 상기 제1 이미지의 저장 방식을 결정하기 위한 정보를 상기 호스트에 제공하는 단계를 포함하는 이미지 백업 방법.
  2. 제1항에 있어서,
    상기 제1 해시 함수는, 지각 해시(perceptual hash) 함수이고,
    상기 제2 해시 함수는, 암호화 해시(cryptographic hash) 함수인 것을 특징으로 하는 이미지 백업 방법.
  3. 제1항에 있어서,
    상기 유사 판단을 수행하는 단계는,
    상기 제1 이미지에 상기 제1 해시 함수를 적용하여 상기 제1 이미지의 제1 해시값을 산출하는 단계; 및
    상기 산출한 제1 해시값을 상기 복수의 이미지들의 제1 해시값들 각각과 비교하여 서로 상이한 비트의 개수를 확인하는 단계;를 포함하는 것을 특징으로 하는 이미지 백업 방법.
  4. 제3항에 있어서,
    상기 유사 판단을 수행하는 단계는,
    상기 서로 상이한 비트의 개수가 미리 결정된 개수 이하인 경우가 존재하면, 상기 제1 이미지와 동일 또는 유사한 이미지가 존재하는 것으로 판단하는 단계; 및
    상기 서로 상이한 비트의 개수가 상기 미리 결정된 개수 이하인 경우가 존재하지 않으면, 상기 제1 이미지와 동일 또는 유사한 이미지가 존재하지 않는 것으로 판단하는 단계;를 포함하는 것을 특징으로 하는 이미지의 백업 방법.
  5. 제1항에 있어서,
    상기 제1 이미지를 상기 메모리 시스템에 선택적으로 제공하는 단계는,
    상기 제1 이미지와 동일 또는 유사한 이미지가 존재하는 것으로 판단하면, 상기 제1 이미지를 상기 메모리 시스템에 제공하는 것을 특징으로 하는 이미지 백업 방법.
  6. 제1항에 있어서,
    상기 호스트는, 상기 제1 이미지와 동일 또는 유사한 이미지가 존재하지 않는 것으로 판단하면, 상기 제1 이미지를 저장하는 단계;를 더 포함하는 것을 특징으로 하는 이미지 백업 방법.
  7. 제1항에 있어서,
    상기 동일 판단을 수행하는 단계는,
    상기 제1 이미지에 상기 제2 해시 함수를 적용하여 상기 제1 이미지의 제2 해시값을 산출하는 단계; 및
    상기 산출한 제2 해시값을 상기 복수의 이미지들의 제2 해시값들 각각과 비교하여 서로 동일한지 확인하는 단계;를 포함하는 것을 특징으로 하는 이미지 백업 방법.
  8. 제7항에 있어서,
    상기 동일 판단을 수행하는 단계는,
    서로 동일한 제2 해시값들이 존재하면, 상기 제1 이미지와 동일한 이미 지가존재하는 것으로 판단하는 단계; 및
    상기 서로 동일한 제2 해시값이 존재하지 않으면, 상기 제1 이미지와 유사한 이미지가 존재하는 것으로 판단하는 단계;를 포함하는 것을 특징으로 하는 이미지의 백업 방법.
  9. 제1항에 있어서,
    상기 호스트는, 상기 제1 이미지의 저장 방식을 결정하기 위한 정보를 기초로 상기 제1 이미지와 유사한 이미지가 존재함을 확인하면, 상기 제1 이미지와 상기 유사한 이미지의 차이에 대응하는 데이터를 저장하는 단계; 및
    상기 호스트는, 상기 제1 이미지의 저장 방식을 결정하기 위한 정보를 기초로, 제1 이미지와 동일 또는 유사한 이미지가 존재하지 않음을 확인하면, 상기 제1 이미지를 저장하는 단계;를 더 포함하는 것을 특징으로 하는 이미지 백업 방법.
  10. 컴퓨팅 시스템에 있어서,
    호스트; 및
    복수의 이미지들을 저장하는 메모리 시스템;을 포함하고,
    상기 호스트는,
    외부로부터 제1 이미지를 수신하면, 상기 제1 이미지에 제1 해시 함수를 적용하여 상기 제1 이미지의 제1 해시값을 산출하고, 상기 산출한 제1 해시값과 상기 복수의 이미지들의 제1 해시값들을 비교하여 상기 제1 이미지와 상기 복수의 이미지들 간의 유사 판단을 수행하고, 상기 유사 판단 결과를 기반으로 상기 제1 이미지를 상기 메모리 시스템에 제공하고,
    상기 메모리 시스템은,
    상기 제1 이미지에 제2 해시 함수를 적용하여 상기 제1 이미지의 제2 해시값을 산출하고, 상기 산출한 제2 해시값과 상기 복수의 이미지들의 제2 해시값들을 비교하여 상기 제1 이미지와 상기 복수의 이미지들 간의 동일 판단을 수행하고, 상기 동일 판단 결과를 기초로 상기 제1 이미지의 저장 방식을 결정하기 위한 정보를 상기 호스트에 제공하는 것을 특징으로 하는 컴퓨팅 시스템.
KR1020190125681A 2019-10-10 2019-10-10 이미지 백업을 수행하는 컴퓨팅 시스템 및 이미지 백업 방법 KR20210042752A (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020190125681A KR20210042752A (ko) 2019-10-10 2019-10-10 이미지 백업을 수행하는 컴퓨팅 시스템 및 이미지 백업 방법
US16/878,696 US20210110201A1 (en) 2019-10-10 2020-05-20 Computing system performing image backup and image backup method
EP20177140.9A EP3805929B1 (en) 2019-10-10 2020-05-28 Computing system performing image backup and image backup method
CN202010749158.4A CN112650619A (zh) 2019-10-10 2020-07-30 计算系统、计算系统的图像备份方法和存储器系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190125681A KR20210042752A (ko) 2019-10-10 2019-10-10 이미지 백업을 수행하는 컴퓨팅 시스템 및 이미지 백업 방법

Publications (1)

Publication Number Publication Date
KR20210042752A true KR20210042752A (ko) 2021-04-20

Family

ID=70918348

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190125681A KR20210042752A (ko) 2019-10-10 2019-10-10 이미지 백업을 수행하는 컴퓨팅 시스템 및 이미지 백업 방법

Country Status (4)

Country Link
US (1) US20210110201A1 (ko)
EP (1) EP3805929B1 (ko)
KR (1) KR20210042752A (ko)
CN (1) CN112650619A (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110309336B (zh) * 2018-03-12 2023-08-08 腾讯科技(深圳)有限公司 图像检索方法、装置、系统、服务器以及存储介质

Family Cites Families (67)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100547608C (zh) * 2005-03-23 2009-10-07 北京华旗数码影像技术研究院有限责任公司 数字图像水印的方法及相应装置和可添加水印的数码相机
US7647331B2 (en) * 2006-03-28 2010-01-12 Microsoft Corporation Detecting duplicate images using hash code grouping
US7636824B1 (en) * 2006-06-28 2009-12-22 Acronis Inc. System and method for efficient backup using hashes
US7797323B1 (en) * 2006-10-11 2010-09-14 Hewlett-Packard Development Company, L.P. Producing representative hashes for segments of a file
US8527469B2 (en) * 2006-10-13 2013-09-03 Sony Corporation System and method for automatic detection of duplicate digital photos
US8351707B2 (en) * 2007-07-31 2013-01-08 Sharp Kabushiki Kaisha Image processing apparatus, image forming apparatus, image processing system, and image processing method
US8050505B2 (en) * 2007-08-01 2011-11-01 Sharp Kabushiki Kaisha Image processing apparatus, image processing system, image processing method, and image forming apparatus
JP4399486B2 (ja) * 2007-09-27 2010-01-13 シャープ株式会社 画像処理装置、外部記憶装置、画像形成装置、画像送信装置、画像読取装置、画像処理システム、画像処理方法、プログラムおよびその記録媒体
JP4457140B2 (ja) * 2007-10-02 2010-04-28 シャープ株式会社 画像処理方法、画像処理装置、画像形成装置、画像読取装置、コンピュータプログラム及び記録媒体
US20130042097A1 (en) * 2010-02-26 2013-02-14 Samsung Electronics Co., Ltd. Method of updating boot image for fast booting and image forming apparatus for performing the method
US20130036300A1 (en) * 2010-02-26 2013-02-07 Samsung Electronics Co., Ltd Method of fixing error of boot image for fast booting and image forming apparatus for performing the method
US10394570B2 (en) * 2010-02-26 2019-08-27 Hp Printing Korea Co., Ltd. Method of generating boot image for fast booting and image forming apparatus for performing the method, and method of performing fast booting and image forming apparatus for performing the method
US8452106B2 (en) * 2010-03-23 2013-05-28 Microsoft Corporation Partition min-hash for partial-duplicate image determination
US8983939B1 (en) * 2011-06-10 2015-03-17 Google Inc. Query image search
AU2011226985B2 (en) * 2011-09-30 2014-05-01 Canon Kabushiki Kaisha Image retrieval method
KR20130064518A (ko) * 2011-12-08 2013-06-18 삼성전자주식회사 저장 장치 및 그것의 동작 방법
AU2012202352A1 (en) * 2012-04-20 2013-11-07 Canon Kabushiki Kaisha Method, system and apparatus for determining a hash code representing a portion of an image
US9146816B2 (en) * 2012-06-14 2015-09-29 International Business Machines Corporation Managing system image backup
US8849047B2 (en) * 2012-07-10 2014-09-30 Facebook, Inc. Methods and systems for determining image similarity
GB2498238B (en) * 2012-09-14 2013-12-25 Canon Europa Nv Image duplication prevention apparatus and image duplication prevention method
US9104687B2 (en) * 2012-12-20 2015-08-11 Dropbox, Inc. System and method for preventing duplicate uploads of modified photos in a synchronized content management system
KR20140102038A (ko) * 2013-02-13 2014-08-21 삼성전자주식회사 영상 정합 장치 및 영상 정합 방법
US20140279933A1 (en) * 2013-03-14 2014-09-18 Konica Minolta Laboratory U.S.A., Inc. Hashing Schemes for Managing Digital Print Media
KR20140141348A (ko) * 2013-05-31 2014-12-10 삼성전자주식회사 호스트 장치와 저장 장치가 연계하여 중복 제거 프로세스를 수행하는 방법 및 스토리지 시스템
WO2014194419A1 (en) * 2013-06-03 2014-12-11 Miworld Technologies Inc. System and method for image based interactions
US9239841B2 (en) * 2013-07-16 2016-01-19 Vmware, Inc. Hash-based snapshots
WO2015034269A1 (ko) * 2013-09-03 2015-03-12 삼성전자 주식회사 영상 처리 방법 및 장치
US9507814B2 (en) * 2013-12-10 2016-11-29 Vertafore, Inc. Bit level comparator systems and methods
US9385954B2 (en) * 2014-03-31 2016-07-05 Nicira, Inc. Hashing techniques for use in a network environment
US20150317325A1 (en) * 2014-04-30 2015-11-05 Key Cybersecurity, Inc. Methods and apparatus for detection of illicit files in computer networks
JP6300650B2 (ja) * 2014-06-06 2018-03-28 キヤノン株式会社 画像形成装置及びその制御方法
US11113237B1 (en) * 2014-12-30 2021-09-07 EMC IP Holding Company LLC Solid state cache index for a deduplicate storage system
US10180950B2 (en) * 2015-06-10 2019-01-15 Flir Systems Ab Image retrieval and processing systems and methods
US9569213B1 (en) * 2015-08-25 2017-02-14 Adobe Systems Incorporated Semantic visual hash injection into user activity streams
KR101628720B1 (ko) * 2015-09-22 2016-06-09 주식회사 포드림 진본성 및 무결성을 입증하기 위한 사본영상 증거관리시스템
US9813762B2 (en) * 2015-11-16 2017-11-07 Arris Enterprises Llc Creating hash values indicative of differences in images
EP3393123A4 (en) * 2015-12-14 2019-06-12 4Dream Co., Ltd. DIGITAL FORENSIC IMAGE REVIEWING SYSTEM
US10083299B2 (en) * 2015-12-16 2018-09-25 Carbonite, Inc. Systems and methods for automatic snapshotting of backups based on malicious modification detection
US9501234B1 (en) * 2016-01-04 2016-11-22 Acronis International Gmbh System and method for incrementally performing full data backup
US9824299B2 (en) * 2016-01-04 2017-11-21 Bank Of America Corporation Automatic image duplication identification
US9626596B1 (en) * 2016-01-04 2017-04-18 Bank Of America Corporation Image variation engine
US9852361B1 (en) * 2016-02-11 2017-12-26 EMC IP Holding Company LLC Selective image backup using trained image classifier
US9971594B2 (en) * 2016-08-16 2018-05-15 Sonatype, Inc. Method and system for authoritative name analysis of true origin of a file
US20180107689A1 (en) * 2016-10-14 2018-04-19 Andrew Grossman Image Annotation Over Different Occurrences of Images Using Image Recognition
JP2018125674A (ja) * 2017-01-31 2018-08-09 オリンパス株式会社 撮影機器及び撮影方法
US10803013B2 (en) * 2017-02-10 2020-10-13 Smugmug, Inc. Efficient similarity detection
US10904286B1 (en) * 2017-03-24 2021-01-26 Fireeye, Inc. Detection of phishing attacks using similarity analysis
CN109145926B (zh) * 2017-06-13 2023-04-18 腾讯科技(深圳)有限公司 相似图片识别方法及计算机设备
US10366279B2 (en) * 2017-08-29 2019-07-30 Bank Of America Corporation System for execution of multiple events based on image data extraction and evaluation
US10375050B2 (en) * 2017-10-10 2019-08-06 Truepic Inc. Methods for authenticating photographic image data
US11132335B2 (en) * 2017-12-12 2021-09-28 Interset Software, Inc. Systems and methods for file fingerprinting
US10673620B2 (en) * 2017-12-14 2020-06-02 Paypal, Inc. Blockchain validation system
US20190236371A1 (en) * 2018-01-30 2019-08-01 Deluxe Entertainment Services Group Inc. Cognitive indexing of images in digital video content
CN110309336B (zh) * 2018-03-12 2023-08-08 腾讯科技(深圳)有限公司 图像检索方法、装置、系统、服务器以及存储介质
US11106633B2 (en) * 2018-04-24 2021-08-31 EMC IP Holding Company, LLC DNA-based data center with deduplication capability
US10628708B2 (en) * 2018-05-18 2020-04-21 Adobe Inc. Utilizing a deep neural network-based model to identify visually similar digital images based on user-selected visual attributes
US10361866B1 (en) * 2018-08-13 2019-07-23 Truepic Inc. Proof of image authentication on a blockchain
US11010337B2 (en) * 2018-08-31 2021-05-18 Mcafee, Llc Fuzzy hash algorithms to calculate file similarity
CN109376256B (zh) * 2018-09-29 2021-03-26 京东方科技集团股份有限公司 图像搜索方法及装置
US11146381B2 (en) * 2018-11-16 2021-10-12 Adobe Inc. Traceability of edits to digital documents via distributed ledgers
US20200162266A1 (en) * 2018-11-16 2020-05-21 Adobe Inc. Facilitating analytic services for provenance of digital documents
US10452828B1 (en) * 2018-12-11 2019-10-22 block.one Systems and methods for creating a verified digital association
CN109783671B (zh) * 2019-01-30 2021-10-08 京东方科技集团股份有限公司 一种以图搜图的方法、计算机可读介质及服务器
US20200327017A1 (en) * 2019-04-10 2020-10-15 Commvault Systems, Inc. Restore using deduplicated secondary copy data
US10977528B1 (en) * 2019-06-25 2021-04-13 Amazon Technologies, Inc. Detecting similarity between images
US11386145B2 (en) * 2019-06-28 2022-07-12 Adobe Inc. Incremental agglomerative clustering of digital images
US20220066991A1 (en) * 2020-09-02 2022-03-03 Micro Focus Llc Command line utility to generate user-controlled fragmentated test data on a hard disk drive

Also Published As

Publication number Publication date
EP3805929A1 (en) 2021-04-14
US20210110201A1 (en) 2021-04-15
CN112650619A (zh) 2021-04-13
EP3805929B1 (en) 2023-06-14

Similar Documents

Publication Publication Date Title
US11132338B1 (en) Sharing services between deduplication systems
US10374792B1 (en) Layout-independent cryptographic stamp of a distributed dataset
CN109995881B (zh) 缓存服务器的负载均衡方法和装置
WO2017067404A1 (zh) 在逻辑卷中创建镜像文件的方法、虚拟机启动方法及服务器
US11237743B2 (en) Sub-block deduplication using sector hashing
US9215251B2 (en) Apparatus, systems, and methods for managing data security
CN110389859B (zh) 用于复制数据块的方法、设备和计算机程序产品
US20150134672A1 (en) Data Copy Management Apparatus and Data Copy Method Thereof
US20160042024A1 (en) Continuous data health check
KR102098415B1 (ko) 캐시 관리 기법
WO2021114025A1 (zh) 增量数据确定方法、确定装置、服务器及终端设备
WO2017147794A1 (zh) 差异数据备份的方法和设备
US20210110201A1 (en) Computing system performing image backup and image backup method
US8549274B2 (en) Distributive cache accessing device and method for accelerating to boot remote diskless computers
CN112286457B (zh) 对象重删方法、装置、电子设备及机器可读存储介质
CN114721867A (zh) 数据校验方法及系统
CN115543881B (zh) Pcie设备适配方法、系统、计算机设备和存储介质
US20190004992A1 (en) Chipset with near-data processing engine
US20210019231A1 (en) Method, device and computer program product for backing up data
CN112905542A (zh) 一种文件处理方法、装置、服务器、设备及存储介质
CN108664363B (zh) 一种基于双控的nas lun访问控制方法和装置
US20200042748A1 (en) Data encryption and decryption techniques
US11520805B2 (en) Method and system for replication
CN113542422A (zh) 数据存储方法、装置、存储介质及电子装置
US10466921B1 (en) Accelerating data reduction through reinforcement learning

Legal Events

Date Code Title Description
A201 Request for examination