KR20010007261A - 영상 처리 장치, 영상 처리 방법 및 저장 매체 - Google Patents

영상 처리 장치, 영상 처리 방법 및 저장 매체 Download PDF

Info

Publication number
KR20010007261A
KR20010007261A KR1020000030985A KR20000030985A KR20010007261A KR 20010007261 A KR20010007261 A KR 20010007261A KR 1020000030985 A KR1020000030985 A KR 1020000030985A KR 20000030985 A KR20000030985 A KR 20000030985A KR 20010007261 A KR20010007261 A KR 20010007261A
Authority
KR
South Korea
Prior art keywords
pixel
correlation
selection
decoding
information
Prior art date
Application number
KR1020000030985A
Other languages
English (en)
Other versions
KR100667612B1 (ko
Inventor
콘도테츠지로
고바야시나오키
Original Assignee
이데이 노부유끼
소니 가부시끼 가이샤
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from JP16053099A external-priority patent/JP4099687B2/ja
Priority claimed from JP16052999A external-priority patent/JP4092608B2/ja
Application filed by 이데이 노부유끼, 소니 가부시끼 가이샤 filed Critical 이데이 노부유끼
Publication of KR20010007261A publication Critical patent/KR20010007261A/ko
Application granted granted Critical
Publication of KR100667612B1 publication Critical patent/KR100667612B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/0021Image watermarking
    • G06T1/0028Adaptive watermarking, e.g. Human Visual System [HVS]-based watermarking
    • G06T1/0035Output size adaptive watermarking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/0021Image watermarking
    • G06T1/0028Adaptive watermarking, e.g. Human Visual System [HVS]-based watermarking
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2201/00General purpose image data processing
    • G06T2201/005Image watermarking
    • G06T2201/0051Embedding of the watermark in the spatial domain
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2201/00General purpose image data processing
    • G06T2201/005Image watermarking
    • G06T2201/0061Embedding of the watermark in each block of the image, e.g. segmented watermarking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2201/00General purpose image data processing
    • G06T2201/005Image watermarking
    • G06T2201/0065Extraction of an embedded watermark; Reliable detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2201/00General purpose image data processing
    • G06T2201/005Image watermarking
    • G06T2201/0203Image watermarking whereby the image with embedded watermark is reverted to the original condition before embedding, e.g. lossless, distortion-free or invertible watermarking

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Editing Of Facsimile Originals (AREA)
  • Image Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

영상 처리 장치는 오버헤드 (overhead) 없이 영상 데이터에 정보를 삽입한다. 영상 처리 장치는 영상 데이터를 형성하는 일부 픽셀 (pixel)을 선택하기 위한 선택 유닛을 포함한다. 변화 유닛은 정보에 따라 선택 픽셀값의 비트를 스와핑 (swapping)시킴으로서 선택 유닛에 의해 선택된 픽셀에 정보를 삽입한다.

Description

영상 처리 장치, 영상 처리 방법 및 저장 매체 {IMAGE PROCESSING APPARATUS, IMAGE PROCESSING METHOD, AND STORAGE MEDIUM}
본 발명은 일반적으로 영상 처리 장치, 영상 처리 방법, 및 저장 매체에 관한 것이다. 특히, 본 발명은 데이터량을 증가시키지 않고 재생 영상의 질을 최소로 손실시켜 정보를 영상에 삽입하는 영상 처리 장치 및 영상 처리 방법에 관한 것이다. 본 발명은 또한 상술된 방법을 저장하는 저장 매체에 관한 것이다.
데이터량을 증가시키지 않고 정보를 삽입하는 기술 중 하나는 예를 들어, 디지털 오디오 데이터의 최하위 비트 (LSB) 또는 하단 2 비트를 삽입되는 정보로 변환시키는 것이다. 이 기술에서는 사운드의 질에 현저히 영향을 주지 않는 디지털 오디오 데이터의 하단 비트가 단순히 삽입되는 정보로 대치된다. 따라서, 디지털 오디오 데이터가 재생될 때, 이는 하단 비트를 원래 상태로 회복하지 않고 출력된다. 특히, 정보가 삽입된 하단 비트를 원래 상태로 회복하는 것이 어렵고, 또한 하단 비트가 사운드의 질에 현저하게 영향을 주지 않으므로, 디지털 오디오 데이터는 그에 삽입된 정보를 포함하여 출력된다.
그러나, 상술된 기술에 따라, 원래 신호와 다른 신호가 불리하게 출력되므로, 어느 정도는 신호가 오디오 데이터인 경우 사운드의 질에 영향을 주고, 신호가 비디오 데이터인 경우 영상의 질에 영향을 준다.
도 1은 본 발명을 포함하는 영상 전송 시스템의 구성예를 설명하는 블록도.
도 2는 도 1에 도시된 삽입 코더 (coder)(3)에서 삽입되는 영상을 설명하는 도면.
도 3은 거리와 상관관계 (correlation) 사이의 관계로 정보의 에너지 분포를 설명하고, 또한 정보의 일부 라인을 스와핑 (swapping)시킴으로서 에너지 분포가 파괴되는 것을 설명하는 도면.
도 4는 도 1에 도시된 삽입 코더(3)의 하드웨어 구성예를 설명하는 블록도.
도 5는 본 발명의 제 1 실시예에 따라 도 4에 도시된 삽입 코더(3)의 기능적인 구성을 설명하는 블록도.
도 6은 도 5에 도시된 삽입 코더(3)에 의해 실행되는 삽입 코드화 처리를 설명하는 흐름도.
도 7은 도 6에 도시된 삽입 코드화 처리를 실행할 때 각 영상 블록에 대해 선택되는 픽셀을 설명하고, 또한 선택 픽셀을 회전시키는 것에 의한 데이터 삽입 동작을 설명하는 도면.
도 8은 도 1에 도시된 디코더(6)의 하드웨어 구성예를 설명하는 블록도.
도 9는 본 발명의 제 1 실시예에 따라 도 8에 도시된 디코더(6)의 기능적인 구성을 설명하는 블록도.
도 10은 도 9에 도시된 디코더(6)에 의해 실행되는 복호화 처리를 설명하는 흐름도.
도 11은 도 10에 도시된 복호화 처리를 실행할 때 각 영상 블록에 대해 선택되는 픽셀을 설명하고, 또한 선택 픽셀을 역회전시키는 것에 의한 데이터 복호화 동작을 설명하는 도면.
도 12는 도 10에 도시된 단계(S15)에서 실행되는 픽셀간의 차이를 계산하는 처리를 설명하는 도면.
도 13은 본 발명의 제 2 실시예에 따라 도 4에 도시된 삽입 코더(3)의 기능적인 구성을 설명하는 블록도.
도 14는 도 13에 도시된 삽입 코더(3)에 의해 실행되는 삽입 코드화 처리를 설명하는 흐름도.
도 15는 도 14에 도시된 삽입 코드화 처리를 실행할 때 각 영상 블록에 대해 선택되는 픽셀을 설명하고, 또한 선택 픽셀 중 하나와 추가 정보 사이에서 배타 논리합 (exclusive-OR)을 계산하고 선택 픽셀 중 하나와 반전 추가 정보 사이에서 배타 논리합을 계산하는 것에 의한 데이터 삽입 동작을 설명하는 도면.
도 16은 본 발명의 제 2 실시예에 따라 도 8에 도시된 디코더(6)의 기능적인 구성을 설명하는 블록도.
도 17은 도 16에 도시된 디코더(6)에 의해 실행되는 복호화 처리를 설명하는 흐름도.
도 18은 도 17에 도시된 복호화 처리를 실행할 때 각 영상 블록에 대해 선택되는 픽셀을 설명하고, 또한 선택 픽셀 중 하나와 추가 정보 사이에서 배타 논리합을 계산하고 선택 픽셀 중 하나와 반전 추가 정보 사이에서 배타 논리합을 계산하는 것에 의한 데이터 복호화 동작을 설명하는 도면.
도 19는 도 17에 도시된 단계(S45)에서 실행되는 픽셀간의 차이를 계산하는 처리를 설명하는 도면.
도 20은 도 17에 도시된 복호화 동작을 실행할 때 각 영상 블록에 대해 선택되는 픽셀을 설명하고, 또한 선택 픽셀 중 하나와 추가 정보 사이에서 배타 논리합을 계산하고 반전된 선택 픽셀 중 하나와 추가 정보 사이에서 배타 논리합을 계산하는 것에 의한 데이터 삽입 동작을 설명하는 도면.
도 21a는 본 발명의 처리를 실시하는 프로그램이 설치될 컴퓨터를 설명하는 도면.
도 21b는 본 발명의 처리를 실시하는 프로그램이 저장될 저장 매체를 설명하는 도면.
도 21c는 본 발명의 처리를 실시하는 프로그램이 위성이나 네트워크를 통해 컴퓨터에 배급되는 것을 설명하는 도면.
도 22는 본 발명의 처리를 실시하는 프로그램이 설치될 컴퓨터의 예를 설명하는 블록도.
* 도면의 주요 부분에 대한 부호의 설명*
10: 코드화 장치 20: 복호화 장치
33: 프로그램 메모리 42: 비트 회전 유닛
61: 블록 분할 유닛 62: 비트 역회전 유닛
63: 회전 비트 레지스터 69: 비교기
171: 복호화 영상 메모리 131: 네트워크
본 발명의 목적은 상술된 문제점을 해결하는 것이다.
상기 목적을 이루기 위해서는 본 발명의 한 특성에 따라, 영상 데이터에 정보를 삽입하는 영상 처리 장치가 제공된다. 영상 처리 장치는 영상 데이터를 형성하는 일부 픽셀 (pixel)을 선택하는 선택 유닛과, 정보에 따라 선택된 픽셀값의 비트를 스와핑 (swapping)함으로서 선택 유닛에 의해 선택된 픽셀에 정보를 삽입하는 변화 유닛을 포함한다.
본 발명의 또 다른 특성에 따라, 정보가 삽입된 코드화 영상 데이터를 원래 영상 데이터 및 정보로 복호화하는 영상 처리 장치가 제공된다. 영상 처리 장치는 코드화 영상 데이터를 형성하는 일부 픽셀을 선택하는 선택 유닛을 포함한다. 변화 유닛은 선택 유닛에 의해 선택된 픽셀의 비트를 스와핑한다. 상관관계 (correlation) 계산 유닛은 선택 유닛에 의해 선택된 픽셀 이외의 픽셀과 변화된 픽셀 사이의 상관관계를 계산한다. 결정 유닛은 상관관계 계산 유닛에 의해 계산된 상관관계를 근거로, 선택된 픽셀값이 변화될 양이고 선택된 픽셀을 복호화하는데 사용되는 양을 결정한다. 복호화 유닛은 결정 유닛에 의해 결정된 양을 근거로 선택된 픽셀을 복호화하고, 선택된 픽셀에 삽입된 정보를 복호화한다.
본 발명의 또 다른 특성에 따라, 정보가 삽입된 코드화 영상 데이터를 원래 영상 데이터 및 정보로 복호화하는 영상 처리 장치가 제공된다. 영상 처리 장치는 코드화 영상 데이터를 형성하는 일부 픽셀을 선택하는 선택 유닛을 포함한다. 계산 유닛은 선택 유닛에 의해 선택된 픽셀값과 소정의 데이터 사이의 배타 논리합 (exclusive-OR)을 계산한다. 상관관계 계산 유닛은 선택된 픽셀 이외의 픽셀과 계산 유닛에 의해 계산된 픽셀 사이의 상관관계를 계산한다. 결정 유닛은 상관관계 계산 유닛에 의해 계산된 상관관계를 근거로, 선택된 픽셀을 복호화하기 위해 선택된 픽셀과 배타 논리합을 계산하는데 사용되는 소정의 데이터를 결정한다. 복호화 유닛은 결정 유닛에 의해 결정된 데이터를 근거로 선택된 픽셀을 복호화하고, 선택된 픽셀에 삽입된 정보를 복호화한다.
본 발명의 또 다른 특성에 따라, 영상 데이터에 정보를 삽입하는 영상 처리 방법이 제공된다. 영상 처리 방법은 영상 데이터를 형성하는 일부 픽셀을 선택하는 선택 단계와, 정보에 따라 선택된 픽셀값의 비트를 스와핑함으로서 선택된 단계에서 선택된 픽셀에 정보를 삽입하는 삽입 단계를 포함한다.
본 발명의 또 다른 특성에 따라, 정보가 삽입된 코드화 영상 데이터를 원래 영상 데이터 및 정보로 복호화하는 영상 처리 방법이 제공된다. 영상 처리 방법은: 코드화 영상 데이터를 형성하는 일부 픽셀을 선택하는 선택 단계; 선택 단계에서 선택된 픽셀값의 비트를 스와핑하는 스와핑 단계; 선택된 픽셀 이외의 픽셀과 스와핑된 픽셀 사이의 상관관계를 계산하는 상관관계 계산 단계; 상관관계 계산 단계에서 계산된 상관관계를 근거로, 선택된 픽셀값이 변화되는 양이고 선택된 픽셀을 복호화하는데 사용되는 양을 결정하는 결정 단계; 및 결정 단계에서 결정된 양을 근거로 선택된 픽셀을 복호화하고, 선택된 픽셀에 삽입된 정보를 복호화하는 복호화 단계를 포함한다.
본 발명의 또 다른 특성에 따라, 정보가 삽입된 코드화 영상 데이터를 원래 영상 데이터 및 정보로 복호화하는 영상 처리 방법이 제공된다. 영상 처리 방법은 코드화 영상 데이터를 형성하는 일부 픽셀을 선택하는 선택 단계; 선택 단계에서 선택된 픽셀값과 소정의 데이터 사이의 배타 논리합을 계산하는 계산 단계; 선택된 픽셀 이외의 픽셀과 계산 단계에서 계산된 픽셀 사이의 상관관계를 계산하는 상관관계 계산 단계; 상관관계 계산 단계에서 계산된 상관관계를 근거로, 선택된 픽셀을 복호화하기 위해 선택된 픽셀과 배타 논리합을 계산하는데 사용되는 소정의 데이터를 결정하는 결정 단계; 및 결정 단계에서 결정된 데이터를 근거로 선택된 픽셀을 복호화하고, 선택된 픽셀에 삽입된 정보를 복호화하는 복호화 단계를 포함한다.
본 발명의 또 다른 특성에 따라, 영상 데이터에 정보를 삽입하기 위한 컴퓨터 제어 프로그램을 저장하는 저장 매체가 제공된다. 프로그램은 영상 데이터를 형성하는 일부 픽셀을 선택하는 선택 단계와, 정보에 따라 선택된 픽셀값의 비트를 스와핑함으로서 선택된 단계에서 선택된 픽셀에 정보를 삽입하는 삽입 단계를 포함한다.
본 발명의 또 다른 특성에 따라, 정보가 삽입된 코드화 영상 데이터를 원래 영상 데이터 및 정보로 복호화하기 위한 컴퓨터 제어 프로그램을 저장하는 저장 매체가 제공된다. 프로그램은: 코드화 영상 데이터를 형성하는 일부 픽셀을 선택하는 선택 단계; 선택 단계에서 선택된 픽셀값의 비트를 스와핑하는 스와핑 단계; 선택된 픽셀 이외의 픽셀과 스와핑된 픽셀 사이의 상관관계를 계산하는 상관관계 계산 단계; 상관관계 계산 단계에서 계산된 상관관계를 근거로, 선택된 픽셀값이 변화되는 양이고 선택된 픽셀을 복호화하는데 사용되는 양을 결정하는 결정 단계; 및 결정 단계에서 결정된 양을 근거로 선택된 픽셀을 복호화하고, 선택된 픽셀에 삽입된 정보를 복호화하는 복호화 단계를 포함한다.
본 발명의 또 다른 특성에 따라, 정보가 삽입된 코드화 영상 데이터를 원래 영상 데이터 및 정보로 복호화하기 위한 컴퓨터 제어 프로그램을 저장하는 저장 매체가 제공된다. 프로그램은 코드화 영상 데이터를 형성하는 일부 픽셀을 선택하는 선택 단계; 선택 단계에서 선택된 픽셀값과 소정의 데이터 사이의 배타 논리합을 계산하는 계산 단계; 선택된 픽셀 이외의 픽셀과 계산 단계에서 계산된 픽셀 사이의 상관관계를 계산하는 상관관계 계산 단계; 상관관계 계산 단계에서 계산된 상관관계를 근거로, 선택된 픽셀을 복호화하기 위해 선택된 픽셀과 배타 논리합을 계산하는데 사용되는 소정의 데이터를 결정하는 결정 단계; 및 결정 단계에서 결정된 데이터를 근거로 선택된 픽셀을 복호화하고, 선택된 픽셀에 삽입된 정보를 복호화하는 복호화 단계를 포함한다.
본 발명은 바람직한 실시예를 통해 첨부된 도면을 참고로 이후 상세히 설명된다.
도 1은 본 발명을 포함하는 영상 전송 시스템을 설명하는 도면이다. 본 명세서에서, "시스템"은 논리적으로 다수의 장치로 형성된 유닛이고, 장치가 같은 수납기 (housing)에 포함될 필요는 없다.
도 1을 참고로, 영상 전송 시스템은 코드화 장치(10) 및 복호화 장치(20)로 형성된다. 코드화 장치(10)는 예를 들면, 영상을 코드화하여 코드화된 데이터를 출력한다. 복호화 장치(20)는 코드화 데이터로부터 원래 영상을 재생한다.
특별히, 영상 데이터베이스(1)는 코드화된 영상 (예를 들면, 디지털 영상)을 저장하고, 영상은 영상 데이터베이스(1)로부터 판독되어 삽입 코더 (embedding coder)(3)에 공급된다. 추가 정보 데이터베이스(2)는 코드화된 영상에 삽입되는 정보인 추가 정보 (디지털 데이터)를 저장한다. 추가 정보는 추가 정보 데이터베이스(2)로부터 판독되어 삽입 코더(3)에 공급된다.
영상 데이터베이스(1)로부터 영상을 수신하고 추가 정보 데이터베이스(2)로부터 추가 정보를 수신하면, 삽입 코더(3)는 영상 데이터베이스(1)로부터 공급된 영상의 에너지 분포를 사용하여 코드화된 영상이 복호화될 수 있도록 추가 정보 데이터베이스(2)로부터 공급된 추가 정보에 따라 영상을 코드화한다. 즉, 삽입 코더(3)는 영상의 에너지 분포를 사용하여 코드화된 영상이 복호화될 수 있도록 영상에 추가 정보를 삽입하여 영상을 코드화하고, 코드화된 데이터를 출력한다. 이어서, 코드화된 데이터는 자기-광학 디스크, 자기 디스크, 광학 디스크, 자기 테이프, PD 디스크, 또는 반도체 메모리와 같은 저장 매체(4)에 기록된다. 다른 방법으로, 코드화된 데이터는 지상 방송 신호, 위성 방송 신호, 케이블 텔레비젼(CATV) 네트워크, 인터넷, 또는 공중 네트워크와 같은 전송 매체(5)를 통해 복호화 장치(20)에 전송될 수 있다.
복호화 장치(20)는 저장 매체(4)나 전송 매체(5)를 통해 제공된 코드화 데이터가 수신되는 디코더(6)로 형성된다. 디코더(6)는 또한 영상의 에너지 분포를 사용하여 코드화된 데이터를 원래 영상 및 추가 정보로 복호화한다. 복호화된 영상은 이어서 모니터 (도시되지 않은)에 공급되어 디스플레이된다. 복호화된 추가 정보는 소정의 처리를 실행하는데 사용된다.
이후에는 도 1에 도시된 삽입 코더(3)에 의해 실행되는 코드화 동작 및 디코더(6)에 의해 실행되는 복호화 동작의 원리가 설명된다.
일반적으로, "정보"라 칭하여지는 것은 에너지 (엔트로피) 분포를 갖고, 정보 (가치있는 정보)로 식별된다. 특별히, 예를 들어 경치를 촬영하여 구해진 영상은 경치의 영상으로 식별될 수 있다. 이는 영상 (영상을 형성하는 픽셀 (pixel)의 값)이 그 경치에 대응하는 에너지 분포를 소유하기 때문이다. 에너지 분포를 갖지 않는 영상은 단순히 잡음이고, 정보로 사용되지 못한다.
결과적으로, 가치있는 정보가 소유하는 에너지 분포가 특정한 동작을 실행함으로서 파괴되더라도, 원래 정보는 파괴된 에너지 분포를 원래 상태로 회복함으로서 재생될 수 있다. 즉, 정보를 코드화하여 구해진 코드화 데이터는 정보에 본래 주어지는 에너지 분포를 사용하여 원래 정보로 복호화될 수 있다.
정보의 에너지 분포는 예를 들면, 상관관계 (correlation)로 나타내질 수 있다. 정보의 상관관계는 정보의 성분 사이의 상관관계 (예를 들어, 정보가 영상인 경우, 영상을 형성하는 픽셀이나 라인 (line)), 즉 정보를 형성하는 성분 사이의 거리나 자기 상관관계 (self-correlation)이다.
도 2에 도시된 바와 같이, H 라인으로 형성된 영상이 한 예로 취해진다. 제1 라인과 또 다른 라인 사이의 상관관계에 대해, 도 3의 (A)에서 설명되는 바와 같이, 제 1 라인에 가깝게 위치하는 라인 (도 2에 도시된 영상 중 상단 라인)에 대한 제 1 라인의 상관관계는 크다. 반대로, 제 1 라인에서 멀리 위치하는 라인 (도 2에 도시된 영상 중 하단 라인)에 대한 제 1 라인의 상관관계는 작다. 다른 말로 하면, 도 2에 도시된 영상은 제 1 라인에 가까운 라인이 더 큰 레벨의 상관관계를 갖고 제 1 라인에서 멀리 있는 라인이 더 작은 레벨의 상관관계를 갖는 상관관계 변화를 갖는다.
도 2에 도시된 영상에서, 제 1 라인에 더 가까운 제 M 라인과 제 1 라인으로부터 더 멀리 있는 제 N 라인은 스와핑 (swapping)되고 (1 < M < N ≤H), 제 M 라인 및 제 N 라인 각각과 제 1 라인 사이의 상관관계를 계산한 이후에, 결과의 영상은 도 3의 (B)에 도시된 바와 같이 나타내진다. 즉, 제 M 라인과 제 N 라인이 스와핑된 영상에서, 제 1 라인에 더 가까운 제 M 라인에 대한 제 1 라인의 상관관계 (스와핑하기 이전에 제 N 라인에 대응하는)는 더 작아지고, 제 1 라인으로부터 더 멀리 있는 제 N 라인에 대한 제 1 라인의 상관관계 (스와핑하기 이전에 제 M 라인에 대응하는)는 더 커진다.
그래서, 원래의 상관관계 변화는 도 3의 (B)에 도시된 상관관계로 파괴된다. 그러나, 일반적으로, 영상에 대해서는 원래의 상관관계 변화를 사용함으로서 파괴된 상관관계 변화가 원래 상태로 회복될 수 있다. 즉, 도 3의 (B)에 도시된 상관관계 변화는 영상이 소유하는 원래 상관관계 변화에 대해 자연스럽지 못하여 (부정확하여), 제 M 라인과 제 N 라인이 스와핑되어야 한다. 그래서, 부자연스러운 변화는 도 3의 (A)에 도시된 정확한 변화로 회복될 수 있으므로, 원래 영상이 복호화될 수 있다.
도 2 및 도 3의 (A), (B)에 도시된 예에 따라, 영상은 라인을 교환하여 코드화된다. 이 경우, 삽입 코더(3)는 어느 라인이 추가 정보에 따라 이동되어 스와핑되어야 하는가를 결정한다. 한편, 디코더(6)는 상관관계를 사용하여 스와핑된 라인을 원래 위치로 복귀시키고, 즉, 코드화된 영상을 원래 영상으로 대치하고, 그에 의해 코드화 영상을 복호화한다. 복호화 동작 동안, 디코더(6)는 영상에 삽입된 추가 정보를 복호화하기 위해 어느 라인이 이동되어 스와핑되었나를 검출한다.
도 4는 코드화된 영상이 영상의 상관관계를 사용하여 원래 영상으로 복호화될 수 있도록 영상에 추가 정보를 삽입함으로서 삽입을 실행하는 도 1에 도시된 삽입 코더의 구성예를 설명한다.
영상 데이터베이스(1)로부터 출력된 영상은 영상이 예를 들어, 프레임 (frame) 단위로 임시 저장되는 프레임 메모리(31)로 공급된다.
중앙 처리 유닛 (CPU)(32)은 프로그램 메모리(33)에 저장된 프로그램을 실행함으로서, 이후 설명될, 삽입 처리를 실행한다. 즉, CPU(32)는 프레임 메모리931)에 저장된 영상에 추가 정보 데이터베이스(2)로부터 공급되는 추가 정보를 삽입한다.
프로그램 메모리(33)는 예를 들면, 판독 전용 메모리(ROM)나 랜덤 억세스 메모리(RAM)로 형성되고, CPU(32)가 삽입 코드화 처리를 실행할 수 있게 하는 컴퓨터 프로그램을 저장한다. 출력 인터페이스(I/F)(34)는 프레임 메모리(31)로부터 그에 삽입된 추가 정보를 갖는 영상을 판독하고, 이를 코드화 데이터로 출력한다.
프레임 메모리(31)는 다수의 프레임이 저장될 수 있도록 다수의 뱅크 (bank)로 형성된다. 뱅크를 스위칭함으로서, 프레임 메모리(31)는 CPU(32)에 의해 처리되는 영상의 픽셀 및 영상 데이터베이스(1)로부터 공급된 영상을 동시에 저장한다. 동시에, 프레임 메모리(31)는 또한 삽입 정보를 포함하는 영상을 출력한다 (코드화 데이터). 이러한 배열로, 코드화 데이터는 영상 데이터베이스(1)로부터 공급된 영상이 이동 화상이더라도 실시간으로 출력될 수 있다.
도 5는 본 발명의 제 1 실시예에 따라 도 4에 도시된 CPU(32)에 의해 프로그램 메모리(33)에 저장된 프로그램을 실행하여 실시될 수 있는 삽입 코더(3)의 기능적인 구성예를 설명한다.
코드화 영상은 예를 들어, 프레임의 단위로 블록 분할 유닛(41)에 공급된다. 블록 분할 유닛(41)은 1-프레임 영상을 각각이 소정의 크기를 갖는 블록으로 분할하고, 분할된 블록을 비트 회전 유닛(42)에 공급한다.
블록 분할 유닛(41)으로부터의 영상 블록 뿐만 아니라 영상에 삽입된 추가 정보도 비트 회전 유닛(42)에 공급된다. 비트 회전 유닛(42)은 각 영상 블록을 형성하는 일부 픽셀을 선택하여 픽셀값 (이후 때로는 "선택 픽셀"이라 칭하여지는)을 회전시키고, 그에 의해 선택 픽셀에 추가 정보를 삽입한다. 선택 픽셀에 추가 정보가 삽입된 블록은 코드화 영상 메모리(43)에 코드화 블록으로 공급된다.
코드화 영상 메모리(43)는 비트 회전 유닛(42)에서 공급되는 코드화 블록을 순차적으로 저장하고, 한 프레임에 대한 코드화 블록이 저장될 때, 코드화 영상 메모리(43)는 코드화 블록을 코드화된 데이터로 출력한다.
이제는 도 6의 흐름도를 참고로 도 5에 도시된 삽입 코더(3)에 의해 실행되는 삽입 코드화 처리의 설명이 주어진다.
상기에 논의된 바와 같이, 코드화 영상은 프레임 단위로 블록 분할 유닛(41)에 공급된다. 1 프레임의 영상을 수신하면, 단계(S1)에서, 블록 분할 유닛(41)은 1-프레임 영상을 각각이 소정의 크기를 갖는 블록으로 분할한다. 특별히, 블록 분할 유닛(41)은 도 7의 (A)에 도시된 바와 같이, 영상을 4 x 4 픽셀 영상 블록으로 분할한다. 블록 분할 유닛(41)에 의해 분할되는 영상 블록은 이어서 예를 들면, 래스터 주사 (raster scanning) 순서로 비트 회전 유닛(42)에 공급된다.
블록 분할 유닛(41)으로부터 영상 블록을 수신하면, 단계(S2)에서, 비트 회전 유닛(42)은 수신된 영상 블록을 현재 블록으로 설정하고, 현재 블록을 형성하는 픽셀 일부를 선택한다. 특별히, 현재 블록을 형성하는 픽셀 중에서, 비트 회전 유닛(42)은 체크형 패턴에 따라 도 7의 (A)에 도시된 빗금친 부분 및 흑색 부분 ●으로 나타내지는 것과 같은 픽셀을 선택한다. 즉, 단계(S2)에서는 영상 블록을 형성하는 픽셀의 절반이 선택된다.
단계(S3)에서는 공급된 추가 정보에 따라 선택 픽셀의 값들이 비트 회전 유닛(42)에 의해 회전되므로, 추가 정보가 선택 픽셀에 삽입될 수 있다. 특별히, 비트 회전 유닛(42)은 추가 정보의 값에 대응하는 비트수 만큼 최하위 비트 (LSB)에서 최상위 비트 (MSB)의 방향으로 (이후 때로는 "좌측 회전"이라 칭하여지는) 도 7의 (A)에 도시된 빗금친 부분으로 나타내지는 선택 픽셀의 값을 회전시킨다.
상기에 사용되는 "회전"이란 말은 비트 쉬프팅 (bit shifting)과 유사하다; 그러나, LSB에서 MSB의 방향으로 회전이 실행될 때, MSB는 버려지지 않고 LSB로 쉬프트된다. 반대로, MSB에서 LSB의 방향으로 회전이 실행될 때, LSB는 버려지지 않고 MSB로 쉬프트된다.
비트 회전 유닛(42)은 또한 추가 정보의 값에 대응하는 비트수 만큼 MSB에서 LSB의 방향으로 (이후 때로는 "우측 회전"이라 칭하여지는) 도 7의 (A)에 도시된 흑색 부분 ●으로 나타내지는 선택 픽셀의 값을 회전시킨다.
값이 좌측으로 회전되는 픽셀과 우측으로 회전되는 픽셀은 각각 "좌측 회전 픽셀" 및 "우측 회전 픽셀"이라 칭하여진다.
본 실시예에서, 좌측 회전 픽셀 및 우측 회전 픽셀은 다른 방법으로 각 영상 블록에서 대각선 방향으로 배열된다. 즉, 선택 픽셀의 절반은 좌측으로 회전되고, 다른 절반은 우측으로 회전된다.
픽셀은 8 비트를 갖고, 좌측 회전 픽셀의 값은 00111101B (B는 2진수임을 나타낸다)이고 우측 회전 픽셀의 값은 10010111B인 것으로 가정한다. 또한, 추가 정보는 "2"인 것으로 가정한다. 좌측 회전 픽셀 00111101B 및 우측 회전 픽셀 10010111B는 각각 2 비트 만큼 좌측 및 우측으로 회전되어, 도 7의 (B)에 도시된 바와 같이, 각각 11110100B 및 11100101B가 된다. 유사하게, 영상 블록에서 다른 좌측 회전 픽셀 및 다른 우측 회전 픽셀은 추가 정보에 따라 회전된다.
픽셀값이 8 비트로 나타내질 때, 이는 0 내지 7 비트 만큼 회전될 수 있고, 그 경우, 0 내지 7 비트 추가 정보 (3 비트로 나타내지는)가 한 영상 블록에 삽입된다.
단계(S3)에서 선택 픽셀이 회전된 영상 블록은 코드화 영상 메모리(43)에 코드화 블록으로 공급되어 그에 저장된다. 이어서, 단계(S4)에서는 비트 회전 유닛(42)에 영상 블록 (이후 "처리되지 않은 블록"이라 칭하여지는)이 있는가 여부를 결정하고, 그러한 경우, 처리되지 않은 영상 블록 중 하나가 현재 블록으로 설정된다. 이어서, 처리는 단계(S2)로 복귀되어 대응하는 처리가 반복된다.
단계(S4)에서 처리되지 않은 블록이 없는 것으로 밝혀지면, 즉 한 프레임에 대한 코드화 블록이 모두 코드화 영상 메모리(43)에 저장된 것으로 밝혀지면, 코드화 블록은 코드화 영상 메모리(43)로부터 판독된다. 이어서, 처리는 블록 분할 유닛(41)에서 처리될 프레임이 더 있는가 여부를 결정하는 단계(S5)로 진행된다. 단계(S5)의 결과가 yes이면, 처리는 단계(S1)로 복귀되어 대응하는 처리가 반복된다.
단계(S5)에서 블록 분할 유닛(41)에 의해 처리될 프레임이 더 이상 없는 것으로 결정되면, 삽입 코드화 처리는 완료된다.
상기에 논의된 바와 같이, 영상을 형성하는 픽셀 일부가 선택되고, 선택 픽셀의 값이 추가 정보에 따라 회전되고, 그에 의해 영상에는 추가 정보가 삽입된다. 그래서, 데이터량을 증가시키지 않고 영상질의 손실을 최소로 하여 추가 정보를 삽입하는 것이 가능하다.
추가 정보가 삽입된 선택 픽셀 (도 7의 (A)에서 빗금친 부분 및 흑색 부분 ●으로 나타내지는 픽셀)은 이후 논의될 바와 같이, 영상의 상관관계, 즉 오버헤드 (overhead) 없이 추가 정보를 포함하지 않는 픽셀 (도 7의 (A)에서 O로 나타내지는 픽셀)과 선택 픽셀 사이의 상관관계를 사용하여 원래 픽셀 및 추가 정보로 복호화 (회복)될 수 있다. 따라서, 결과의 코드화 영상 (재생 영상)에서는 종래에 추가 정보를 삽입하여 발생되는 영상질의 변화가 관찰되지 않는다.
도 8은 도 5에 도시된 삽입 코더(3)로부터 출력된 코드화 데이터를 영상의 상관관계를 사용하여 원래 영상 및 추가 정보로 복호화하기 위한 도 1에 도시된 디코더(6)의 구성예를 설명한다.
코드화 데이터, 즉 추가 정보가 삽입된 영상 (이후 때로는 "삽입 영상"이라 칭하여지는)은 프레임 메모리(51)에 공급된다. 프레임 메모리(51)은 예를 들어, 프레임 단위로 삽입 영상을 일시 저장한다. 프레임 메모리(51)는 도 4에 도시된 프레임 메모리(31)와 유사하게 구성되고, 프레임 메모리(51)에 제공된 뱅크를 스위칭함으로서, 삽입 영상은 이동 화상이더라도 실시간으로 처리될 수 있다.
출력 인터페이스(I/F)(52)는 추후 논의될 CPU(53)에 의한 복호화 처리를 실행하여 구해진 프레임 메모리(51)로부터 영상 (복호화 영상)을 판독하고, 그 영상을 출력한다.
CPU(53)는 프로그램 메모리(54)에 저장된 프로그램을 실행시켜 복호화 처리를 실행한다. 즉, CPU(53)는 프레임 메모리(51)에 저장된 삽입 영상을 영상의 상관관계를 사용하여 원래 영상 및 추가 정보로 복호화한다.
프로그램 메모리(54)는 도 4에 도시된 프로그램 메모리(33)와 유사하게 구성되고, CPU(53)가 복호화 처리를 실행할 수 있게 하는 컴퓨터 프로그램을 저장한다.
도 9는 본 발명의 제 1 실시예에 따라 도 8에 도시된 CPU(53)에 의해 프로그램 메모리(54)에 저장된 프로그램을 실행시킴으로서 실시될 수 있는 디코더(6)의 기능적인 구성예를 설명한다.
코드화 데이터인 삽입 영상은 예를 들어, 프레임 단위로 블록 분할 유닛(61)에 공급된다. 도 5에 도시된 블록 분할 유닛(41)에서와 같이, 블록 분할 유닛(61)은 삽입 영상을 각각이 소정의 크기를 갖는 블록, 즉 코드화 블록으로 분할하고, 이들을 비트 역회전 유닛(62)에 순차적으로 공급한다.
블록 분할 유닛(61)으로부터 공급된 각 코드화 블록을 형성하는 픽셀 중에서, 비트 역회전 유닛(62)은 도 5에 도시된 비트 회전 유닛(42)에 의해 선택된 것과 같은 위치에 놓인 픽셀을 선택한다. 이어서, 비트 역회전 유닛(62)은 회전 비트 레지스터(63)로부터 공급된 회전값에 대응하는 비트수 만큼 선택된 픽셀의 값을 회전시키고, 결과의 값을 차이값 계산 유닛(64)에 공급한다. 비트 역회전 유닛(62)은 또한 최적 회전 비트 저장 레지스터(69)에 저장된 최적 회전 비트의 수 만큼 선택된 픽셀의 값을 회전시킨다. 결과적으로, 코드화 블록은 원래 영상 블록으로 복호화되고, 이어서 복호화 영상 메모리(71)로 공급된다.
회전 비트 레지스터(63)는 픽셀값이 회전되는 비트수로 회전값을 설정하고, 설정된 회전값을 비트 역회전 유닛(62) 및 스위치(65)에 공급한다. 특별히, 픽셀값이 th_r 비트로 나타내질 때, 이는 0 내지 th_r - 1 비트 만큼 회전될 수 있다 (th_r 비트 보다 크거나 같은 수 만큼의 회전은 0 내지 th_r - 1 비트의 대응하는 수 만큼의 회전과 같은 결과를 얻는다). 이 경우, 회전 비트 레지스터(63)는 순차적으로 0 내지 th_r - 1 비트를 회전값으로 설정하고, 이들을 비트 역회전 유닛(62) 및 스위치(65)에 공급한다.
선택 픽셀의 값이 회전된 코드화 블록을 비트 역회전 유닛(62)으로부터 수신하면, 차이값 계산 유닛(64)은 각 선택 픽셀과 인접 픽셀 사이의 상관관계 값, 예를 들면 차이값의 절대치의 합 (이후 "절대 차이의 합"이라 칭하여지는)을 계산한다. 픽셀값의 절대 차이의 합은 스위치(66) 및 비교기(68)에 공급된다.
스위치(65)는 회전 비트 레지스터(63)로부터 회전값을 수신하고, 이를 비교기(68)의 제어하에서 최적 회전 비트 저장 레지스터(69)에 공급한다. 스위치(66)는 차이값 계산 유닛(64)으로부터 상관관계 값을 수신하고, 이를 비교기(68)의 제어하에서 최소 차이값 저장 레지스터(67)에 공급한다.
최소 차이값 저장 레지스터(67)는 스위치(66)를 통해 차이값 계산 유닛(64)으로부터 공급된 상관관계 값을 현재 처리되고 있는 코드화 블록 (이후 때로는 "현재 코드화 블록"이라 칭하여지는)에 대한 최대 상관관계 값으로 저장한다. 본 실시예에서는 상기에 언급된 바와 같이, 각 선택 픽셀과 인접 픽셀 사이의 절대 차이의 합이 코드화 블록에 대한 상관관계 값으로 사용된다. 따라서, 최대 상관관계 값은 픽셀값의 절대 차이의 최소합이 된다.
최소 차이값 저장 레지스터(67)에 최대 상관관계 값으로 저장된 절대 차이의 최소합은 비교기(68)에 공급된다. 이어서, 비교기(68)는 차이값 계산 유닛(64)으로부터 출력된 절대 차이의 합을 최소 차이값 저장 레지스터(67)에 저장된 절대 차이의 최소합과 비교하고, 비교 결과를 근거로, 비교기(68)는 스위치 (65, 66)를 제어한다.
최적 회전 비트 저장 레지스터(69)는 스위치(65)를 통해 회전 비트 레지스터(63)로부터 회전값을 수신하고, 이를 코드화 블록 중 선택된 픽셀의 값이 회전되어야 하는 최적의 비트수인 최적 회전 비트로 저장한다. 최적 회전 비트 저장 레지스터(69)는 최적 회전 비트를 비트 역회전 유닛(62) 및 복호화 추가 정보 메모리(70)에 적절하게 공급한다.
복호화 추가 정보 메모리(70)는 최적 회전 비트 저장 레지스터(69)로부터 공급되는 최적 회전 비트에 대응하는 값을 코드화 블록에 삽입된 복호화 추가 정보로 일시 저장하고, 이를 출력한다. 복호화 영상 메모리(71)는 코드화 블록을 일시 저장하고, 선택 픽셀의 값이 최적 회전 비트 만큼 회전된 코드화 블록을 비트 역회전 유닛(62)으로부터 복호화 영상 블록으로 출력한다. 한 프레임의 복호화 영상이 저장될 때, 복호화 영상 메모리(71)는 이를 출력한다.
이후에는 도 10의 흐름도를 참고로 도 9에 도시된 디코더(6)에 의해 실행되는 삽입 복호화 처리가 설명된다.
상술된 바와 같이, 삽입 영상은 프레임 단위로 블록 분할 유닛(61)으로 공급된다. 한 프레임의 삽입 영상을 수신하면, 단계(S11)에서, 블록 분할 유닛(61)은 도 5에 도시된 블록 분할 유닛(51)의 경우에서와 같이, 삽입 영상을 각각이 소정의 크기를 갖는 블록으로 분할한다. 즉, 블록 분할 유닛(61)은 도 11의 (A)에 도시된 바와 같이, 삽입 영상을 4 x 4 - 픽셀 코드화 블록으로 분할한다. 블록 분할 유닛(61)에 의해 분할된 코드화 블록은 예를 들면, 래스터 주사 순서로 비트 역회전 유닛(62)에 순차적으로 공급된다.
블록 분할 유닛(61)으로부터 코드화 블록을 수신하면, 비트 역회전 유닛(62)은 그 코드화 블록을 현재 코드화 블록으로 설정하고, 현재 코드화 블록을 형성하는 픽셀 일부를 선택한다. 특별히, 비트 역회전 유닛(62)은 도 5에 도시된 비트 회전 유닛(42)에 의해 선택된 것과 같이, 도 11에 도시된 빗금친 부분 및 흑색 부분 ●으로 나타내지는 똑같은 픽셀을 선택한다. 비트 역회전 유닛(62)은 또한 도 5에 도시된 비트 회전 유닛(42)에 의해 좌측 회전 픽셀 및 우측 회전 픽셀로 결정된 픽셀을 각각 우측 회전 픽셀 및 좌측 회전 픽셀로 설정한다.
즉, 코드화된 선택 픽셀 중에서, 비트 회전 유닛(42)에 의해 좌측 회전 픽셀로 결정된 픽셀은 영상에 삽입된 추가 정보에 대응하는 비트수 만큼 우측으로 회전된다. 유사하게, 비트 회전 유닛(42)에 의해 우측 회전 픽셀로 결정된 픽셀은 코드화 픽셀에 삽입된 추가 정보에 대응하는 비트수 만큼 좌측으로 회전된다. 그 결과로, 코드화 픽셀은 원래 픽셀로 복호화될 수 있다.
그러므로, 비트 역회전 유닛(62)은 좌측 회전 픽셀 및 우측 회전 픽셀로 결정되었던 픽셀을 각각 우측 회전 픽셀 및 좌측 회전 픽셀로 설정한다. 따라서, 도 7의 (A)를 참고로 논의된 회전 동작에 대조적으로, 비트 역회전 유닛(62)에서는 도 11의 (A)에 도시된 빗금친 부분으로 나타내지는 픽셀이 우측 회전 픽셀로 결정되고, 도 11의 (A)에 도시된 흑색 부분 ●으로 나타내지는 픽셀이 좌측 회전 픽셀로 결정된다.
이어서, 처리는 단계(S13)로 진행된다. 단계(S13)에서, 회전 비트 레지스터(63)는 회전값 n을 0으로 설정하고, 최소 차이값 저장 레지스터(67)는 소정의 큰 값 (예를 들면, 저장될 수 있는 최대값)이 되도록 값 (절대 차이의 최소합)을 초기화한다. 이어서, 회전 비트 레지스터(63)는 회전값 n을 비트 역회전 유닛(62)에 공급하여, 일반적으로 off 상태인 스위치(65)에 이를 출력하고, 처리는 단계(S14)로 진행된다.
단계(S14)에서, 비트 역회전 유닛(62)은 회전 비트 레지스터(63)로부터 공급된 회전값 n 만큼 현재 코드화 블록의 좌측 회전 픽셀값 및 우측 회전 픽셀값을 각각 좌측 및 우측으로 회전하고, 결과의 현재 코드화 블록을 차이값 계산 유닛(64)에 공급한다.
이제는 픽셀값이 8 비트로 나타내지고, 우측 회전 픽셀값이 11110100B이고 좌측 회전 픽셀값이 11100101B라고 가정한다. 또한, 회전값 n은 "2"라고 가정한다. 우측 회전 픽셀 11110100B는 우측으로 2 비트 만큼 회전되고, 좌측 회전 픽셀 11100101B는 좌측으로 2 비트 만큼 회전되어, 도 11의 (B)에 도시된 바와 같이, 각각 00111101B 및 10010111B를 제공하게 된다. 유사하게, 현재 코드화 블록에서 다른 좌측 회전 픽셀 및 다른 우측 회전 픽셀은 회전값 n에 따라 각각 좌측 및 우측으로 회전된다.
비트 역회전 유닛(62)으로부터 n 비트 만큼 회전된 픽셀값을 갖는 현재 코드화 블록을 수신하면, 단계(S15)에서, 차이값 계산 유닛(64)은 각 선택 픽셀과 인접 픽셀의 합, 즉 이 경우에서는 선택 픽셀과 인접 픽셀 사이의 절대 차이의 합을 현재 코드화 블록의 상관관계 값 (현재 코드화 블록을 형성하는 픽셀의 상관관계 값)으로 계산한다.
특별히, 코드화 블록에서는 도 12에서 설명되는 바와 같이, 흑색 부분 ● 및 빗금친 부분으로 나타내지는 선택 픽셀이 삽입 부호화 처리 동안 회전되지 않았던 적어도 한 픽셀 (이후 때로는 "비선택 픽셀"이라 칭하여진다)에 인접하여 위치한다. 차이값 계산 유닛(64)에서는 각 선택 픽셀과 인접한 비선택 픽셀 사이의 절대 차이가 계산되고, 이러한 절대 차이의 합은 현재 코드화 블록의 상관관계 값으로 결정된다.
도 12에 도시된 경우와 같이, 선택 픽셀이 다수의 비선택 픽셀에 인접하여 위치하면, 도 12에 도시된 실선 화살표로 나타내지는 바와 같이, 선택 픽셀과 각 비선택 픽셀 사이의 절대 차이가 계산된다.
상기에 논의된 예에서는 상관관계 값이 현재 코드화 블록내의 픽셀만을 사용하여 구해진다. 그러나, 상관관계 값은 현재 코드화 블록 이외의 블록의 픽셀을 사용해 결정될 수 있다.
예를 들어, 삽입 영상을 형성하는 코드화 블록이 래스터 주사 순서의 현재 코드화 블록으로 처리되면, 좌측으로, 상단으로, 또한 상단 좌측으로 현재 코드화 블록에 인접한 코드화 블록은 이미 원래 픽셀값으로 복호화되어 있다. 좌측, 상단, 우측, 또는 하단으로 현재 코드화 블록에 인접한 일부 픽셀은 삽입 코드화 처리 동안 회전되지 않았다 (비선택 픽셀).
현재 코드화 블록 이외의 픽셀 중에서, 삽입 코드화 처리 전후에 똑같이 유지되는 픽셀 (도 12에 도시된 점선 원으로 나타내지는)은 도 12에 점선 원으로 나타내지는 바와 같이, 현재 코드화 블록의 선택 픽셀과의 절대 차이를 계산하는데 사용될 수 있다.
부가하여, 상술된 예에서는 선택 픽셀과 인접한 비선택 픽셀 각각 사이의 절대 차이가 코드화 블록의 상관관계 값을 결정하는데 사용된다. 그러나, 인접하지 않지만 선택 픽셀 주위에 있는 비선택 픽셀과 선택 픽셀 사이의 절대 차이가 사용될 수 있다.
다른 방법으로, 선택 픽셀에 공간상으로 인접한 픽셀 뿐만 아니라, 선택 픽셀에 시간상으로 인접한 픽셀도 사용될 수 있다.
이 방식으로, 차이값 계산 유닛(64)에서 현재 코드화 블록의 상관관계 값으로 계산된 절대 차이의 합은 일반적으로 off 상태인 스위치(66) 및 비교기(68)에 공급된다.
현재 코드화 블록의 절대 차이의 합을 수신하면, 비교기(68)는 단계(S16)에서 절대 차이의 합이 최소 차이값 저장 레지스터(67)에 저장된 값 (절대 차이의 최소합) 보다 더 작은가 여부를 결정한다.
단계(S16)의 결과가 yes이면, 선택 픽셀이 n 비트 만큼 회전된 현재 코드화 블록의 상관관계 값은 이전에 구해진 상관관계 값 보다 더 큰 것으로 밝혀진다. 그래서, 선택 픽셀이 n 비트 만큼 회전된 현재 코드화 블록은 원래 영상 블록으로 복호화될 가능성이 가장 큰 것으로 결정된다. 이어서, 처리는 비교기(68)가 스위치 (65, 66)를 off에서 on으로 일시 변화시키는 단계(S17)로 진행하여 단계(S18)로 진행한다.
스위치 (65, 66)를 일시적으로 on 상태로 함으로서, 단계(S17)에서는 회전 비트 레지스터(63)로부터 출력된 회전값 n이 스위치(65)를 통해 최적 회전 비트 저장 레지스터(69)에 공급된다. 최적 회전 비트 저장 레지스터(69)에서, 최적 회전 비트 n_min으로 저장된 값은 회전 비트 레지스터(63)로부터의 회전값 n에 의해 새로운 최적 회전 비트 n_min (현재 코드화 블록을 복호화하기 위해 선택 픽셀이 회전될 최적 비트수)로 오버라이트 (overwrite)된다.
단계(S17)에서, 절대 차이의 합은 차이값 계산 유닛(64)으로부터 스위치(66)를 통해 최소 차이값 저장 레지스터(67)에 공급된다. 최소 차이값 저장 레지스터(67)에서, 그에 저장된 값은 차이값 계산 유닛(64)으로부터 출력된 절대 차이의 합에 의해 새로운 절대 차이의 최소합으로 (현재 코드화 블록에 대한 최대 상관관계 값으로) 오버라이트된다.
단계(S16)에서 차이값 계산 유닛(64)으로부터 출력된 절대 차이의 합이 최소 차이값 저장 레지스터(67)에 저장된 값 보다 더 작지 않은 것으로 결정되면, 다른 말로, 선택 픽셀이 n 비트 만큼 회전된 현재 코드화 블록에 대한 상관관계 값이 앞서 구해진 최대 상관관계 값 보다 더 크지 않은 것으로 결정되면, 현재 코드화 블록은 원래 블록으로 복호화되지 않은 것으로 결정될 수 있다. 이때, 처리는 단계(S17)를 스킵하여 단계(S18)로 진행한다. 단계(S18)에서는 회전 비트 레지스터(63)에서 회전값 n이 1 만큼 증가된다.
단계(S19)에서는 회전 비트 레지스터(63)내의 회전값 n이 픽셀값 th_r의 비트수 보다 더 작은가 여부를 결정한다. 단계(S19)의 결과가 yes이면, 즉 픽셀값이 회전될 수 있는 비트수내에 회전값 n이 있으면, 처리는 단계(S14)로 복귀하여 대응하는 처리가 반복된다.
반대로, 단계(S19)에서 회전값 n이 픽셀값 th_r의 비트수 보다 더 작지 않은 것으로 밝혀지면, 즉 픽셀값이 회전될 수 있는 가능한 모든 회전값 n을 사용해 현재 코드화 블록에 대한 상관관계 값 (절대 차이의 합)이 계산되었으면, 처리는 단계(S20)로 진행한다. 단계(S20)에서는 현재 코드화 블록의 선택 픽셀값이 최적 회전 비트 n_min 만큼 회전되고, 그에 의해 현재 코드화 블록을 원래 블록으로 복호화하고 코드화 블록에 삽입된 추가 정보를 복호화한다.
특별히, 최적 저장 비트 저장 레지스터(69)는 그에 저장된 최적 회전 비트 n_min를 비트 역회전 유닛(62)에 공급한다. 비트 역회전 유닛(62)은 단계(S14)에서 논의된 바와 같이, 현재 코드화 블록의 좌측 회전 픽셀 및 우측 회전 픽셀을 각각 좌측 및 우측으로 회전하고, 그에 의해 현재 코드화 블록을 원래 블록으로 복호화한다. 복호화 블록은 이어서 복호화 영상 메모리(71)에 공급되어 대응하는 어드레스에 저장된다.
최적 회전 비트 저장 레지스터(69)는 또한 그에 저장된 최적 회전 비트 n_min를 현재 코드화 블록에 삽입된 복호화 추가 정보로서 복호화 추가 정보 메모리(70)에 공급한다.
이어서, 단계(S21)에서는 현재 코드화 블록으로 비트 역회전 유닛(62)에 처리될 블록 (이후 때로는 "비처리 블록"이라 칭하여지는)이 더 있는가 여부를 결정한다. 단계(S21)의 결과가 yes이면, 비처리 블록 중 하나 (예를 들어, 래스터 주사 순서에서 이어지는 코드화 블록)가 현재 코드화 블록인 것으로 결정된다. 이때, 처리는 단계(S12)로 복귀되어 대응하는 처리가 반복된다.
단계(S21)에서 비처리 블록이 더 이상 없는 것으로 밝혀지면, 다른 말로, 한 프레임에 대한 모든 복호화 블록이 복호화 영상 메모리(71)에 저장되고 1-프레임 블록에 삽입된 모든 항목의 복호화 추가 정보가 복호화 추가 정보 메모리(70)에 저장되면, 한 프레임에 대한 복호화 영상은 복호화 영상 메모리(71)로부터 판독되고, 또한 복호화 추가 정보는 복호화 추가 정보 메모리(70)로부터 판독된다.
이어서, 단계(S22)에서는 블록 분할 유닛(61)에 이어서 처리될 삽입 영상 프레임이 더 있는가 여부를 결정한다. 단계(S22)의 결과가 yes이면, 처리는 단계(S11)로 복귀하여, 대응하는 처리가 반복된다.
한편, 단계(S22)에서 블록 분할 유닛(61)에 이어서 처리될 삽입 영상 프레임이 더 이상 없는 것으로 밝혀지면, 복호화 처리는 완료된다.
상기 설명에 따라, 추가 정보가 삽입된 코드화 영상 데이터는 영상의 상관관계를 사용하여 원래 영상 및 추가 정보로 복호화된다. 그래서, 복호화 동작은 복호화 동작을 실행하는데 요구되는 오버헤드를 발생시키지 않고 실행될 수 있다. 결과적으로, 복호화 영상 (재생 영상)은 기본적으로 종래에 추가 정보를 삽입함으로서 겪게 되는 영상질의 저하와 무관해진다.
시뮬레이션 (simulation) 테스트는 다음과 같이 실행되었다. 각 픽셀이 8 비트를 갖는 자연스러운 영상은 4 x 4 - 픽셀 블록으로 분할되어, 삽입 코드화 동작이 실행되었다 (이 경우, 3개 비트의 추가 정보가 한 블록에 삽입될 수 있으므로, 추가 정보의 삽입 비율은 3 비트/16 픽셀이다). 이어서, 삽입 영상에는 복호화 동작이 실행되었고, 모든 픽셀값은 정확하게 복호화되었다 (이는 추가 정보도 정확하게 복호화되었음을 의미한다).
또 다른 시뮬레이션 테스트는 다음과 같이 실행되었다. 상술된 시뮬레이션 테스트에서 사용된 것과 유사한 자연스러운 영상이 2 x 2 - 픽셀 블록으로 분할되어, 삽입 코드화 동작이 실행되었다 (이 경우, 추가 정보의 삽입 비율은 3 비트/4 픽셀이고, 이는 상술된 시뮬레이션 테스트의 4배이다). 이어서, 삽입 영상에는 복호화 동작이 실행되었고, 픽셀 값의 97.92%가 정확하게 복호화되었다.
따라서, 한 블록이 더 많은 수의 픽셀로 형성되면, 픽셀은 더 높은 정확도로 복호화될 수 있다. 한편, 한 프레임에 삽입될 수 있는 추가 정보의 양, 즉 삽입 비율은 증가된다. 대조적으로, 한 블록이 더 작은 수의 픽셀로 형성되면, 삽입 비율은 증가되지만, 복호화 정확도는 낮아진다. 그래서, 한 블록을 형성하는 픽셀의 수는 삽입 비율 및 복호화 정확도를 고려하여 바람직하게 결정된다.
상기 실시예에서, 픽셀값이 YUV 또는 RGB와 같이 다수의 구성성분으로 나타내지면, 모든 구성성분은 똑같은 추가 정보에 따라 회전될 수 있다. 다른 방법으로, 구성성분은 추가 정보의 다른 항목에 따라 개별적으로 회전될 수 있다.
상술된 실시예에서, 블록을 형성하는 일부 픽셀은 체크 패턴에 따라 선택되고, 추가 정보는 선택된 픽셀에 삽입된다. 그러나, 추가 정보를 삽입하는데 사용되는 일부 픽셀은 다른 패턴에 따라 선택될 수 있다. 부가하여, 본 실시예에서는 블록을 형성하는 픽셀의 절반이 선택되고, 선택 픽셀의 값이 추가 정보에 따라 회전되지만, 회전을 실행하는데 사용되는 픽셀의 수는 블록을 형성하는 픽셀의 절반인 것으로 제한되지 않는다. 그러나, 상술된 바와 같이, 추가 정보가 삽입된 픽셀을 복호화할 때, 상관관계 값은 추가 정보가 없는 픽셀을 사용하여 바람직하게 결정될 수 있다. 픽셀 사이의 상관관계는 픽셀이 공간상으로 또는 시간상으로 서로 더 멀리 있을 때 더 작아진다. 그러므로, 정확한 복호화 동작을 실행하기 위해, 추가 정보가 삽입될 픽셀은 공간상으로 또는 시간상으로 간격을 두고 위치하는 방식으로 선택될 수 있다.
상기 실시예에서, 좌측 회전 픽셀 및 우측 회전 픽셀은 선택 픽셀의 대각선 방향으로 번갈아 위치하도록 선택된다. 그러나, 좌측 회전 픽셀 및 우측 회전 픽셀은 다른 패턴에 따라 배열될 수 있다.
상술된 실시예에서, 일부 선택 픽셀은 좌측 회전 픽셀인 것으로 결정되어 추가 정보에 따라 좌측으로 회전되고, 나머지 선택 픽셀은 우측 회전 픽셀인 것으로 결정되어 추가 정보에 따라 우측으로 회전된다. 그러나, 모든 선택 픽셀은 좌측 또는 우측으로 회전될 수 있다.
도 13은 본 발명의 제 2 실시예에 따라 도 4에 도시된 CPU(32)에 의해 프로그램 메모리(33)에 저장된 프로그램을 실행함으로서 실시될 수 있는 삽입 코더(3)의 구성예를 설명한다.
코드화될 영상은 예를 들어, 프레임의 단위로 블록 분할 유닛(81)에 공급된다. 블록 분할 유닛(81)은 영상을 각각이 소정의 크기를 갖는 영상 블록으로 분할하고, 분할된 블록을 배타 논리합 (exclusive-OR) 산술 유닛(82)에 공급한다.
블록 분할 유닛(81)으로부터의 영상 블록 뿐만 아니라 영상에 삽입된 추가 정보도 배타 논리합 산술 유닛(82)에 공급된다. 배타 논리합 산술 유닛(82)은 블록 분할 유닛(81)으로부터 공급된 영상 블록을 형성하는 픽셀 일부 (이후 때로는 "선택 픽셀"이라 칭하여지는)를 선택하고, 각 선택 픽셀과 추가 정보 사이의 배타 논리합을 계산하여, 그에 의해 추가 정보를 삽입 픽셀로 삽입한다. 선택 픽셀에 삽입된 추가 정보를 갖는 영상 블록은 코드화 블록으로 코드화 영상 메모리(83)에 공급된다.
코드화 영상 메모리(83)는 배타 논리합 산술 유닛(82)으로부터 공급된 코드화 블록을 순차적으로 저장한다. 한 프레임의 코드화 블록이 저장되면, 코드화 블록은 코드화 데이터로 출력된다.
이제는 도 14의 흐름도를 참고로 도 13에 도시된 삽입 코더(3)에 의해 실행되는 삽입 코드화 처리가 설명된다.
상술된 바와 같이, 코드화되는 영상은 프레임의 단위로 블록 분할 유닛(81)에 공급된다. 한 프레임의 영상을 수신하면, 단계(S31)에서, 블록 분할 유닛(81)은 각각이 소정의 크기를 갖는 블록으로 영상을 분할한다. 즉, 블록 분할 유닛(81)은 도 15의 (A)에 도시된 바와 같이, 영상을 4 x 4 - 픽셀 영상 블록으로 분할한다. 블록 분할 유닛(81)에 의해 구해진 영상 블록은 예를 들어, 래스터 주사 순서로 배타 논리합 산술 유닛(82)에 순차적으로 공급된다.
블록 분할 유닛(81)으로부터 영상 블록을 수신하면, 단계(S32)에서, 배타 논리합 산술 유닛(82)은 수신된 영상 블록을 현재 블록으로 설정하고, 현재 블록을 형성하는 일부 픽셀을 선택한다. 특별히, 배타 논리합 산술 유닛(82)은 체크형 패턴에 따라 도 15의 (A)에 도시된 빗금친 부분 및 흑색 부분 ●으로 나타내지는 픽셀을 선택한다. 즉, 현재 블록을 형성하는 픽셀의 절반이 선택된다.
단계(S33)에서, 배타 논리합 산술 유닛(82)은 각 선택 픽셀과 추가 정보 사이의 배타 논리합을 계산하고, 그에 의해 추가 정보를 선택 픽셀에 삽입한다. 특별히, 배타 논리합 산술 유닛(82)은 도 15의 (A)에서 빗금친 부분으로 나타내지는 각 선택 픽셀과 추가 정보의 비트 스트림 (bit stream) 사이의 배타 논리합을 계산하고, 계산된 결과를 선택 픽셀의 값으로 설정한다.
배타 논리합 산술 유닛(82)은 또한 흑색 부분 ●으로 나타내지는 각 선택 픽셀과 추가 정보의 비트 스트림 순서를 반전시킴으로서 구해진 비트 스트림 (이후 "반전 비트 스트림"이라 칭하여지는) 사이의 배타 논리합을 계산하고, 계산된 결과를 선택 픽셀의 값으로 설정한다.
추가 정보의 비트 스트림 및 추가 정보의 반전 비트 스트림과의 배타 논리합을 계산하는데 사용되는 픽셀은 이후 각각 "정상 비트 스트림 픽셀" 및 "반전 비트 스트림 픽셀"이라 칭하여진다. 제 2 실시에에서, 정상 비트 스트림 픽셀 및 반전 비트 스트림 픽셀은 도 15의 (A)에서 설명되는 바와 같이, 선택 픽셀의 대각선 방향으로 번갈아 배열된다. 따라서, 선택 픽셀의 절반은 정상 비트 스트림 픽셀이라 설정되고, 다른 절반은 반전 비트 스트림 픽셀이라 설정된다.
이제 픽셀값은 8 비트로 나타내지고, 정상 비트 스트림 픽셀의 값은 00111101B (B는 2진수임을 나타낸다)이고 반전 비트 스트림 픽셀의 값은 10010111B인 것으로 가정한다. 또한, 추가 정보는 00101001B (= 41)인 것으로 가정한다. 배타 논리합은 도 15의 (B)에 도시된 바와 같이, 정상 비트 스트림 픽셀 00111101B의 값과 추가 정보를 나타내는 비트 스트림 00101001B 사이에서 계산되어, 00010100B가 주어진다. 배타 논리합은 또한 도 15의 (C)에 도시된 바와 같이, 반전 비트 스트림 픽셀 10010111B의 값과 추가 정보의 반전 비트 스트림 10010100B 사이에서 계산되어, 00000011B가 주어진다. 유사하게, 배타 논리합은 다른 정상 비트 스트림 픽셀과 반전 비트 스트림 픽셀에 대해 계산된다.
픽셀값이 8 비트로 나타내질 때, 배타 논리합 계산은 픽셀값과 같은 비트수를 갖는 추가 정보 사이에서 실행될 수 있다. 따라서, 이 경우에는 8 비트 추가 정보 (0 내지 255의 범위에 있는)가 한 블록에 삽입될 수 있다.
단계(S33)에서는 상술된 바와 같이 선택 픽셀과 추가 정보 사이에서 배타 논리합을 계산한 이후, 결과의 블록이 코드화 영상 메모리(83)에 코드화 블록으로 공급되어 그에 저장된다. 이어서, 처리는 단계(S34)로 진행된다.
단계(S34)에서는 현재 블록으로 배타 논리합 산술 유닛(82)에 처리될 블록 (이후 때로는 "비처리 블록"이라 칭하여지는)이 더 있는가 여부를 결정한다. 단계(S34)의 결과가 yes이면, 비처리 블록 중 하나가 현재 블록으로 설정되고, 처리는 단계(S32)로 복귀되어 대응하는 처리가 반복된다.
단계(S34)에서 배타 논리합 산술 유닛(82)에 의해 비처리 블록이 더 이상 없는 것으로 결정되면, 다른 말로, 한 프레임에 대한 모든 코드화 블록이 코드화 영상 메모리(83)에 저장되면, 코드화 블록은 코드화 영상 메모리(83)로부터 판독된다.
단계(S35)에서는 블록 분할 유닛(81)에 처리될 프레임이 더 있는가 여부를 결정한다. 단계(S35)의 결과가 yes이면, 처리는 단계(S31)로 복귀되어 대응하는 프레임이 상기와 유사한 방식으로 처리된다.
단계(S35)에서 블록 분할 유닛(81)에 처리될 프레임이 더 이상 없는 것으로 밝혀지면, 삽입 코드화 처리는 완료된다.
이 방식으로, 추가 정보는 영상 블록을 형성하는 일부 픽셀을 선택하고 각 선택 픽셀과 추가 정보 사이에서 배타 논리합을 계산함으로서 영상 블록에 삽입된다. 그래서, 데이터량을 증가시키지 않고 영상질의 손실을 최소로 하여 영상에 추가 정보를 삽입하는 것이 가능하다.
즉, 도 15의 (A)에 도시된 추가 정보가 삽입된 선택 픽셀 중에서, 빗금친 부분 및 흑색 부분 ●으로 나타내지는 픽셀값은 오버헤드를 일으키지 않고 영상의 상관관계, 즉 도 15의 (A)에서 O로 나타내지는 추가 정보가 없는 픽셀과 선택 픽셀 사이의 상관관계를 사용함으로서 원래 픽셀 및 추가 정보로 복호화 (회복)될 수 있다. 이는 추후 상세히 논의된다. 따라서, 복호화 영상 (재생 영상)에서는 추가 정보를 삽입함으로서 발생되는 영상질의 저하가 관찰되지 않는다.
도 16은 본 발명의 제 2 실시예에 따라 도 8에 도시된 CPU(53)에 의해 프로그램 메모리(54)에 저장된 프로그램을 실행함으로서 실시될 수 있는 디코더(6)의 구성예를 설명한다.
삽입 영상은 예를 들어, 프레임의 단위로 블록 분할 유닛(161)에 공급된다. 블록 분할 유닛(161)은 도 13에 도시된 블록 분할 유닛(81)의 경우에서와 같이, 삽입 영상을 각각이 소정의 크기를 갖는 블록으로, 즉 코드화 블록으로 분할하고, 분할된 블록을 배타 논리합 산술 유닛(162)에 순차적으로 공급한다.
블록 분할 유닛(161)으로부터 공급된 코드화 영상을 형성하는 픽셀 중에서, 배타 논리합 산술 유닛(162)은 도 13에 도시된 배타 논리합 산술 유닛(82)에 의해 선택된 것과 같은 위치에 있는 픽셀을 선택한다. 이어서, 배타 논리합 산술 유닛(162)은 각 선택 픽셀값과 EX-OR 데이터 레지스터(163)로부터 공급된 EX-OR 데이터 사이에서 배타 논리합을 계산하고, 이를 차이값 계산 유닛(164)에 공급한다. 배타 논리합 산술 유닛(162)은 또한 각 선택 픽셀값과 최적 EX-OR 데이터 저장 레지스터(169)에 저장된 최적 EX-OR 데이터 사이에서 배타 논리합을 계산한다. 그 결과로, 코드화 블록은 원래 영상 블록으로 복호화되어 복호화 영상 메모리(171)에 공급될 수 있다.
EX-OR 데이터 레지스터(163)는 픽셀값과 배타 논리합을 계산하는데 사용되는 데이터인 EX-OR 데이터를 설정하고, 이를 배타 논리합 산술 유닛(162) 및 스위치(165)에 공급한다. 픽셀값이 th_r 비트로 나타내지면, 배타 논리합은 픽셀값과 th_r 비트를 갖는 데이터 사이에서 계산될 수 있다. 이 경우, EX-OR 데이터 레지스터(163)는 th_r 비트로 나타내질 수 있는 데이터, 즉 0 내지 2th_r-1의 범위에 있는 값을 EX-OR 데이터로 설정하고, 이를 배타 논리합 산술 유닛(162) 및 스위치(165)에 공급한다.
차이값 계산 유닛(164)은 배타 논리합 산술 유닛(162)으로부터 각 선택 픽셀과 EX-OR 데이터 사이에서 배타 논리합이 계산된 코드화 블록을 수신하고, 선택 픽셀과 인접한 픽셀 사이의 상관관계 값, 즉 이 경우에서는 각 픽셀값의 절대 차이의 합을 계산한다. 상관관계 값인 절대 차이의 합은 비교기(168)에 공급된다.
스위치(165)는 비교기(168)의 제어하에서 EX-OR 데이터를 EX-OR 데이터 레지스터(163)로부터 최적의 EX-OR 데이터 저장 레지스터(169)에 공급한다. 스위치(166)는 비교기(168)의 제어하에서 상관관계 값을 차이값 계산 유닛(164)으로부터 최소 차이값 저장 레지스터(167)에 공급한다.
최소 차이값 저장 레지스터(167)는 스위치(166)를 통해 차이값 계산 유닛(164)으로부터 공급된 상관관계 값을 현재 처리되는 코드화 블록 (이후 때로는 "현재 코드화 블록"이라 칭하여지는)에 대한 최대 상관관계 값으로 저장한다. 상기에 논의된 바와 같이, 제 2 실시예에서, 선택 픽셀과 인접 픽셀 사이의 절대 차이의 합은 그들 사이의 상관관계 값으로 사용된다. 따라서, 최대 상관관계 값은 픽셀값의 절대 차이의 최소합을 의미한다.
최소 차이값 저장 레지스터(167)에 최대 상관관계로 저장된 절대 차이의 최소합은 비교기(168)에 공급된다. 비교기(168)는 차이값 계산 유닛(164)으로부터 출력된 절대 차이의 합을 최소 차이값 저장 레지스터(167)에 저장된 절대 차이의 최소합과 비교하고, 비교 결과를 근거로, 비교기(168)는 스위치 (165, 166)를 제어한다.
최적의 EX-OR 데이터 저장 레지스터(169)는 스위치(165)를 통해 EX-OR 데이터 레지스터(163)로부터 EX-OR 데이터를 수신하여 최적 EX-OR 데이터로 저장하고, 이는 코드화 블록의 선택 픽셀값과 배타 논리합을 계산하는데 사용되는 최적 비트 스트림이다. 최적 EX-OR 데이터 저장 레지스터(169)는 최적 EX-OR 데이터를 배타 논리합 산술 유닛(162) 및 복호화 추가 정보 메모리(170)에 적절하게 공급한다.
복호화 추가 정보 메모리(170)는 최적 EX-OR 데이터 저장 레지스터(169)로부터 공급된 최적 EX-OR 데이터를 코드화 블록에 삽입된 복호화 추가 정보로 일시 저장하고, 이를 출력한다. 복호화 영상 메모리(171)는 선택 픽셀값과 최적 EX-OR 데이터 사이에서 배타 논리합이 계산된 코드화 블록을 복호화된 원래 영상 블록으로 일시 저장하고, 복호화 영상은 한 프레임의 복호화 영상 블록이 저장될 때 출력된다.
도 16에 도시된 디코더(6)에 의해 실행되는 복호화 처리는 도 17의 흐름도를 참고로 이후 논의된다.
상술된 바와 같이, 삽입 영상은 프레임의 단위로 블록 분할 유닛(161)에 공급된다. 한 프레임의 삽입 영상을 수신하면, 단계(S41)에서, 블록 분할 유닛(161)은 도 13에 도시된 블록 분할 유닛(81)의 경우에서와 같이, 삽입 영상을 각각이 소정의 크기를 갖는 블록으로 분할한다. 특별히, 블록 분할 유닛(161)은 도 18의 (A)에 도시된 바와 같이, 4 x 4 - 픽셀 코드화 블록으로 나눈다. 블록 분할 유닛(161)에 의해 분할된 코드화 블록은 예를 들어, 래스터 주사 순서로 배타 논리합 산술 유닛(162)에 순차적으로 공급된다.
블록 분할 유닛(161)으로부터 코드화 블록을 수신하면, 단계(S42)에서, 배타 논리합 산술 유닛(162)은 수신된 코드화 블록을 현재 코드화 블록으로 설정하고, 현재 코드화 블록을 형성하는 일부 픽셀을 선택한다. 특별히, 배타 논리합 산술 유닛(162)은 도 13에 도시된 배타 논리합 산술 유닛(82)에 의해 선택된 것과 같이, 도 18의 (A)에 도시된 빗금친 부분 및 흑색 부분 ●으로 나타내지는 똑같은 픽셀을 선택한다. 배타 논리합 산술 유닛(162)은 또한 배타 논리합 산술 유닛(82)의 경우에서와 같이, 상술된 선택 픽셀로부터 정상 비트 스트림 픽셀 및 반전 비트 스트림 픽셀을 선택한다.
즉, 코드화 블록의 선택 픽셀 중에서, 도 13에 도시된 배타 논리합 산술 유닛(82)에 의해 정상 비트 스트림 픽셀인 것으로 결정된 픽셀은 코드화 픽셀에 삽입된 추가 정보에 대응하는 비트 스트림과 각 픽셀값 사이에서 배타 논리합을 계산함으로서 원래 픽셀로 복호화될 수 있다. 유사하게, 배타 논리합 산술 유닛(82)에 의해 반전 비트 스트림 픽셀인 것으로 결정된 픽셀은 코드화 픽셀에 삽입된 추가 정보의 반전 비트 스트림과 각 픽셀값 사이에서 배타 논리합을 계산함으로서 원래 픽셀로 복호화될 수 있다.
따라서, 배타 논리합 산술 유닛(162)은 배타 논리합 산술 유닛(82)의 경우에서와 같이, 선택 픽셀로부터 정상 비트 스트림 픽셀 및 반전 비트 스트림 픽셀을 선택한다. 그래서, 배타 논리합 산술 유닛(162)에서는 도 15의 (A)를 참고로 논의된 예에서와 유사한 방식으로, 도 18의 (A)에 빗금친 부분으로 나타내지는 픽셀이 정상 비트 스트림 픽셀로 설정되고, 흑색 부분 ●으로 나타내지는 픽셀이 반전 비트 스트림 픽셀로 설정된다.
이어서, 처리는 단계(S43)로 진행된다. 단계(S43)에서, EX-OR 데이터 레지스터(163)는 EX-OR 데이터 n을 0으로 초기화하고, 최소 차이값 저장 레지스터(167)는 그 값 (절대 차이의 최소합)을 소정의 큰 값 (예를 들면, 저장될 수 있는 최대값)으로 초기화한다. EX-OR 데이터 레지스터(163)는 이어서 일반적으로 off 상태인 스위치(165) 및 배타 논리합 산술 유닛(162)에 EX-OR 데이터 n을 공급하고, 처리는 단계(S44)로 진행된다.
단계(S44)에서, 배타 논리합 산술 유닛(162)은 현재 코드화 블록의 정상 비트 스트림 픽셀 및 반전 비트 스트림 픽셀 각각과 EX-OR 데이터 레지스터(163)로부터 출력된 EX-OR 데이터 n 사이에서 배타 논리합을 계산하고, 계산된 결과를 차이값 계산 유닛(164)에 공급한다.
이제 픽셀 값은 8 비트로 나타내지고, 정상 비트 스트림 픽셀의 값은 00010100B이고 반전 비트 스트림 픽셀의 값은 00000011B인 것으로 가정된다. 또한, EX-OR 데이터 n은 00101001B (= 41)인 것으로 가정된다. 이어서, 도 18의 (B)에 도시된 바와 같이, 정상 비트 스트림 픽셀값 00010100B와 EX-OR 데이터 n을 나타내는 비트 스트림 00101001B 사이에서 배타 논리합이 계산되어, 00111101B가 주어진다. 또한, 도 18의 (C)에 도시된 바와 같이, 반전 비트 스트림 픽셀값 00000011B와 EX-OR 데이터 n의 반전 비트 스트림인 비트 스트림 10010100B 사이에서 배타 논리합이 계산되어, 10010111B가 주어진다.
선택 픽셀과 EX-OR 데이터 n 사이에서 배타 논리합이 계산된 현재 코드화 블록을 배타 논리합 산술 유닛(162)으로부터 수신하면, 단계(S45)에서, 차이값 계산 유닛(164)은 선택 픽셀과 인접 픽셀 사이의 상관관계 값의 합, 즉 이 경우에서는 선택 픽셀과 인접 픽셀 사이의 절대 차이의 합을 현재 코드화 블록에 대한 상관관계 값 (현재 코드화 블록을 형성하는 픽셀 사이의 상관관계 값)으로 계산한다.
특별히, 코드화 블록에서, 도 19에 설명된 바와 같이, 빗금 부분 및 흑색 부분 ●으로 나타내지는 선택 픽셀은 추가 정보와 배타 논리합이 계산되지 않은 적어도 한 픽셀 (이후 때로는 "비선택 픽셀"이라 칭하여지는)에 인접하게 위치한다. 차이값 계산 유닛(164)은 선택 픽셀과 인접한 비선택 픽셀 사이에서 절대 차이를 계산하고, 절대 차이의 합을 코드화 블록의 상관관계 값으로 결정한다.
선택 픽셀이 다수의 비선택 픽셀에 인접하면, 선택 픽셀과 각 비선택 픽셀 사이의 절대 차이는 도 19의 실선 화살표로 나타내지는 바와 같이 계산된다.
상기에 논의된 예에서, 상관관계 값은 현재 코드화 블록내의 픽셀만을 사용해 구해진다. 그러나, 상관관계 값은 현재 코드화 블록 이외의 블록의 픽셀을 사용해 결정될 수 있다.
예를 들어, 삽입 영상을 형성하는 코드화 블록이 래스터 주사 순서의 현재 코드화 블록으로 처리되면, 좌측, 상단, 및 상단 좌측으로 현재 코드화 블록에 인접한 코드화 블록은 이미 원래 픽셀값으로 복호화되어 있다. 삽입 코드화 처리 동안 좌측, 상단, 우측, 또는 하단으로 현재 코드화 블록에 인접한 일부 픽셀과 추가 정보 사이에서는 배타 논리합이 계산되지 않는다.
현재 코드화 블록 이외의 픽셀 중에서, 삽입 코드화 처리 전후에 똑같이 유지되는 픽셀 (도 19에 도시된 점선 원형으로 나타내지는)은 도 19에서 점선 화살표로 나타내지는 바와 같이, 현재 코드화 블록의 선택 픽셀과의 절대 차이를 계산하는데 사용될 수 있다.
부가적으로, 상술된 예에서, 선택 픽셀과 인접한 각 비선택 픽셀 사이의 절대 차이는 코드화 블록의 상관관계 값을 결정하는데 사용된다. 그러나, 인접하지 않지만 선택 픽셀 주위에 있는 비선택 픽셀과 선택 픽셀 사이의 절대 차이가 사용될 수 있다.
다른 방법으로, 선택 픽셀에 공간상으로 인접한 픽셀 뿐만 아니라, 선택 픽셀에 시간상으로 인접한 픽셀도 사용될 수 있다.
상기에 논의된 바와 같이, 차이값 계산 유닛(164)에 의해 계산된 현재 코드화 블록에 대한 코드화 값인 픽셀값의 절대 차이의 합은 일반적으로 off 상태인 스위치(166) 및 비교기(168)에 공급된다.
차이값 계산 유닛(164)으로부터 현재 코드화 블록의 절대 차이의 합을 수신하면, 비교기(168)는 단계(S46)에서 절대 차이의 합이 최소 차이값 저장 레지스터(167)에 저장된 값 보다 더 작은가 여부를 결정한다.
단게(S46)의 결과가 yes이면, 즉 선택 픽셀과 EX-OR 데이터 n 사이에서 배타 논리합을 실행함으로서 구해진 현재 코드화 블록의 상관관계 값이 현재 코드화 블록에 대해 앞서 구해진 상관관계 값 보다 더 크면, 현재 코드화 블록은 원래 블록으로 복호화될 가능성이 가장 큰 것으로 결정될 수 있다. 이어서, 처리는 비교기(168)가 스위치 (165, 166)를 off에서 on 상태로 일시 변화시키는 단계(S47)로 진행되어, 단계(S48)로 진행된다.
단계(S47)에서, EX-OR 데이터 레지스터(163)로부터 출력된 EX-OR 데이터 n는 스위치(165)를 통해 최적의 EX-OR 데이터 저장 레지스터(169)에 공급된다. 최적 EX-OR 데이터 n_min로 최적 EX-OR 데이터 저장 레지스터(169)에 저장된 값은 EX-OR 데이터 레지스터(163)로부터의 EX-OR 데이터 n에 의해 새로운 최적 EX-OR 데이터 n_min (현재 코드화 블록을 복호화할 때 선택 픽셀과의 배타 논리합을 계산하는데 사용되는 최적 비트 스트림)로 오버라이트된다.
단계(S47)에서, 절대 차이의 합은 스위치(166)를 통해 차이값 계산 유닛(164)으로부터 최소 차이값 저장 레지스터(167)에 공급된다. 최소 차이값 저장 레지스터(167)에 저장된 값은 차이값 계산 유닛(164)으로부터 출력된 절대 차이의 합에 의해 새로운 절대 차이의 최소합 (현재 코드화 블록에 대한 최대 상관관계)으로 오버라이트된다.
대조적으로, 단계(S46)에서 비교기(168)에 의해 차이값 계산 유닛(164)으로부터의 절대 차이의 합이 최소 차이값 저장 레지스터(167)에 저장된 값 보다 더 작지 않은 것으로 결정되면, 즉 선택 픽셀과 EX-OR 데이터 n 사이에서 배타 논리합을 실행함으로서 구해진 현재 코드화 블록에 대한 상관관계 값이 현재 코드화 블록에 대해 앞서 구해진 상관간계 값 보다 더 크지 않으면, 현재 코드화 블록은 원래 블록으로 복호화되었을 확률이 크기 않다. 그래서, 처리는 단계(S47)를 스킵하여 단계(S48)로 진행된다. 단계(S48)에서, EX-OR 데이터 n는 EX-OR 데이터 레지스터(163)에서 1 만큼 증가된다.
이어서, 단계(S49)에서는 EX-OR 데이터 n이 픽셀값에 지정된 비트수로 나타내질 수 있는 최대값 2th_r-1보다 더 작거나 같은가 여부를 결정한다. 그런 경우, 처리는 단계(S44)로 복귀되어 대응하는 처리가 반복된다.
단계(S44)의 결과가 no이면, 즉, EX-OR 데이터 n이 1 내지 2th_r-1의 범위에 있는 모든 범위로 현재 코드화 블록에 대해 상관관계 값 (절대 차이의 합)을 계산하는데 사용되었으면, 처리는 단계(S50)로 진행된다. 단계(S50)에서는 선택 픽셀과 최적 EX-OR 데이터 n_min 사이의 배타 논리합이 계산되고, 그에 의해 현재 코드화 블록을 원래 블록으로 복호화하고, 또한 코드화 블록에 삽입된 추가 정보를 복호화한다.
특별히, 최적 EX-OR 데이터 저장 레지스터(169)는 최적 EX-OR 데이터 n_min를 배타 논리합 산술 유닛(162)에 공급한다. 배타 논리합 산술 유닛(162)에서는 단계(S44)와 유사한 방식으로 최적 EX-OR 데이터 n_min와 현재 코드화 블록의 각 정상 비트 스트림 픽셀 및 반전 비트 스트림 픽셀 사이의 배타 논리합이 계산되고, 그에 의해 원래 영상 블록을 복호화한다. 복호화 영상 블록은 복호화 영상 메모리(171)에 공급되어 대응하는 어드레스에 저장된다.
최적 EX-OR 데이터 저장 레지스터(169)는 그에 저장된 최적 EX-OR 데이터 n_min를 현재 코드화 블록에 삽입된 복호화 추가 정보로 복호화 추가 정보 메모리(170)에 공급한다.
이후에, 처리는 배타 논리합 산술 유닛(62)에 처리되어야 할 블록 (이후 때로는 "비처리 블록"이라 칭하여지는)이 더 있는가 여부를 결정하는 단계(S51)로 진행된다. 단계(S51)의 결과가 yes이면, 비처리 블록 중 하나가 현재 코드화 블록으로 설정된다 (예를 들면, 래스터 주사 순서로 이어지는 현재 코드화 블록). 이어서, 처리는 단계(S42)로 복귀되어 대응하는 처리가 반복된다.
반대로, 단계(S51)에서 배타 논리합 산술 유닛(162)에 의해 비처리 블록이 더 이상 없는 것으로 결정되고, 즉 한 프레임의 모든 복호화 블록이 복호화 영상 메모리(171)에 저장되고, 프레임에 삽입된 복호화 추가 정보가 복호화 추가 정보 메모리(170)에 저장되면, 복호화 영상은 복호화 영상 메모리(171)로부터 판독되고, 복호화 추가 정보는 복호화 추가 정보 메모리(170)로부터 판독된다.
이후에, 단계(S52)에서는 블록 분할 유닛(161)에 처리될 삽입 영상 프레임이 더 있는가 여부를 결정한다. 그런 경우, 처리는 단계(S41)로 복귀되어 대응하는 처리가 반복된다.
단계(S52)에서 블록 분할 유닛(161)에 의해 처리될 삽입 영상 프레임이 더 이상 없는 것으로 밝혀지면, 복호화 처리는 완료된다.
상기의 설명에 따라, 제 1 실시예 및 제 2 실시예에서는 추가 정보가 삽입된 코드화 영상 데이터가 영상의 상관관계를 사용해 원래 영상 및 추가 정보로 복호화된다. 그래서, 복호화 동작을 실행하는데 요구되는 오버헤드가 발생되지 않는다. 그러므로, 복호화 영상 (재생 영상)은 종래에 추가 정보를 삽입하는 것으로 인해 겪게 되는 영상질의 저하에 무관해진다.
시뮬레이션 테스트는 다음과 같이 실행되었다. 각 픽셀이 8 비트를 갖는 자연스러운 영상은 4 x 4 - 픽셀 블록으로 분할되어, 삽입 코드화 동작이 실행되었다 (이 경우, 8개 비트의 추가 정보가 한 블록에 삽입될 수 있으므로, 추가 정보의 삽입 비율은 8 비트/16 픽셀이다). 이어서, 삽입 영상에는 복호화 동작이 실행되었고, 픽셀값의 98.74%가 정확하게 복호화되었다.
또 다른 시뮬레이션 테스트는 다음과 같이 실행되었다. 상술된 시뮬레이션 테스트에서 사용된 것과 유사한 자연스러운 영상이 2 x 2 - 픽셀 블록으로 분할되어, 삽입 코드화 동작이 실행되었다 (이 경우, 추가 정보의 삽입 비율은 8 비트/4 픽셀이고, 이는 상술된 시뮬레이션 테스트의 4배이다). 이어서, 삽입 영상에는 복호화 동작이 실행되었고, 픽셀 값의 79.12%가 정확하게 복호화되었다.
따라서, 한 블록이 더 많은 수의 픽셀로 형성되면, 픽셀은 더 높은 정확도로 복호화될 수 있다. 한편, 한 프레임에 삽입될 수 있는 추가 정보의 양, 즉 삽입 비율은 감소된다. 대조적으로, 한 블록이 더 작은 수의 픽셀로 형성되면, 삽입 비율은 증가되지만, 복호화 정확도는 낮아진다. 그래서, 한 블록을 형성하는 픽셀의 수는 삽입 비율 및 복호화 정확도를 고려하여 바람직하게 결정된다.
상기 실시예에서, 삽입 코드화 처리에는 도 15에 설명된 바와 같이, 반전 비트 스트림 추가 정보가 반전 비트 스트림 픽셀값과의 배타 논리합을 계산하는데 사용된다. 그러나, 배타 논리합은 반전 비트 스트림 픽셀의 순서를 반전시켜 구해진 값과 추가 정보 사이에서 계산될 수 있다.
예를 들어, 이제는 도 20에 설명된 바와 같이 픽셀값이 8 비트로 나타내지고, 정상 비트 스트림 픽셀값은 00111101B이고 반전 비트 스트림 픽셀값은 10010111B인 것으로 가정된다. 또한, 추가 정보는 00101001B (= 41)인 것으로 가정된다. 배타 논리합은 정상 비트 스트림 픽셀 00111101B와 추가 정보를 나타내는 비트 스트림 00101001B 사이에서 계산되고, 도 15의 (B)와 똑같이, 도 20의 (B)에 도시된 바와 같은 00010100B가 주어진다. 한편, 배타 논리합은 상술된 반전 비트 스트림 픽셀 11101001B를 반전시켜 구해진 비트 스트림 10010111B와 추가 정보를 나타내는 비트 스트림 00101001B 사이에서 계산되고, 도 20의 (C)에 도시된 바와 같이, 10111110B가 주어진다.
그러나, 이 경우, 복호화 동작에서, 배타 논리합은 반전 비트 스트림 픽셀과 EX-OR 데이터 n 사이에서 먼저 계산되고, 이어서 구해진 비트 스트림이 반전된다. 결과의 값을 픽셀값으로 사용하여 상관관계 값이 계산된다.
도 6, 도 10, 도 14, 및 도 17에 도시된 상기 처리는 하드웨어나 소프트웨어에 의해 실시될 수 있다. 소프트웨어를 사용해 실시되는 경우, 대응하는 소프트웨어 프로그램은 픽셀 처리 장치나 학습 장치에 설치된 전용 하드웨어 컴퓨터에 설치되거나, 대응하는 프로그램을 설치하여 다양한 처리를 실행하는 범용 컴퓨터에 설치될 수 있다.
이제는 도 21a, 도 21b, 및 도 21c를 참고로 상술된 처리를 실시하는 프로그램을 컴퓨터에 설치하여 컴퓨터에 의해 실행가능한 프로그램을 만드는데 사용되는 매체가 설명된다.
프로그램은 도 21a에 설명된 바와 같이, 컴퓨터(101)에 설치된 저장 매체로 동작하는 하드 디스크(102)나 반도체 메모리(103)에 설치함으로서 사용자에게 주어진다.
다른 방법으로, 소프트웨어는 도 21b에 도시된 바와 같이, 플로피 디스크(111), 컴팩트 디스크-판독 전용 메모리 (CD-ROM)(112), 자기 광학 (MO) 디스크(113), 디지털 다용도 디스크 (DVD)(114), 자기 디스크(115), 또는 반도체 메모리(116)와 같은 저장 매체에 일시적으로 또는 영구히 설치됨으로서 패키지 소프트웨어로 제공될 수 있다.
다른 방법으로, 도 21c에 도시된 바와 같이, 프로그램은 디지털 위성 방송 인공 위성(122)을 통해 다운로드 (download) 위치(121)에서 컴퓨터(101)로 전달되거나, 구내 통신망 (LAN) 또는 인터넷과 같은 네트워크(131)를 통해 컴퓨터(101)에 케이블로 전달되고, 컴퓨터(101)에 설치된 하드 디스크(101)에 저장될 수 있다.
본 명세서에서 논의되는 매체는 상술된 매체를 포함하여 가장 폭넓은 개념을 내포한다.
매체에 의해 제공되는 프로그램을 형성하는 단계는 본 명세서에서 설명된 시간-일련 순서에 따라 실행될 수 있다. 다른 방법으로, 상술된 단계는 시간-일련 순서로 실시되지 않고 개별적으로 또는 나란히 실시될 수 있다 (예를 들면, 객체 처리).
도 22는 도 21a 및 도 21c에 도시된 컴퓨터(101)의 구성예를 설명한다.
컴퓨터(101)는 도 22에 도시된 바와 같이 내장된 중앙 처리 유닛 (CPU)(142)을 갖는다. 입력/출력 인터페이스(145)는 버스(141)를 통해 CPU(142)에 연결된다. 입력/출력 인터페이스(145)를 통해 키보드, 마우스 등으로 구성되는 입력 유닛(147)을 동작시켜 사용자로부터 지시를 입력하면, CPU(142)는 도 21a에 도시된 반도체 메모리(103)에 대응하는 판독 전용 메모리(ROM)(143)에 저장된 프로그램을 실행시킨다. 다른 방법으로, CPU(142)는 하드 디스크(102)에 저장된 프로그램, 위성(122)이나 네트워크(131)로부터 통신 유닛(148)에 전달되어 하드 디스크(102)에 설치된 프로그램, 또는 드라이브(149)에 로드 (load)된 플로피 디스크(111), CD-ROM(112), MO 디스크(113), DVD(114), 또는 자기 디스크(115)로부터 판독되어 하드 디스크(102)에 설치된 프로그램을 랜덤 억세스 메모리(RAM)(144)에 로드시킨다. 이어서, CPU(142)는 로드된 프로그램을 실시한다. CPU(142)는 입력/출력 인터페이스(145)를 통해 예를 들어 액정 디스플레이(LCD)로 형성된 디스플레이 유닛에 처리 결과를 적절하게 출력한다.
제 1 및 제 2 실시예에 따라, 삽입 코드화 처리 및 복호화 처리를 실행할 때, 영상은 4 x 4 - 픽셀 블록으로 분할된다. 그러나, 한 블록을 형성하는 픽셀의 수는 제한되지 않는다. 부가하여, 블록의 구성은 직사각형이나 정사각형으로 제한되지 않는다.
비록 상기 실시예에서는 추가 정보가 프레임을 형성하는 모든 블록에 삽입되지만, 프레임을 형성하는 블록의 일부에만 삽입될 수 있다. 이 경우, 추가 정보가 없는 블록을 형성하는 픽셀은 추가 정보가 삽입된 블록을 복호화할 때 상관관계 값을 계산하는데 사용된다.
상술된 실시예에서, 한 프레임은 블록으로 분할되고, 추가 정보는 분할된 블록으로 삽입된다. 그러나, 추가 정보를 삽입할 때, 각 프레임은 블록으로 분할되기 보다는 한 블록으로 사용되거나, 다수의 프레임이 하나의 블록으로 사용될 수 있다.
제 2 실시예에서, 픽셀값이 YUV 또는 RGB와 같이 다수의 구성성분으로 나타내지면, 배타 논리합은 똑같은 추가 성분과 모든 구성성분 사이에서 계산된다. 다른 방법으로, 배타 논리합은 각각의 구성성분과 다른 항목의 추가 정보 사이에서 계산될 수 있다.
제 2 실시예에서, 블록을 형성하는 일부 픽셀은 체크형 패턴에 따라 선택되고, 추가 정보는 선택된 픽셀에 삽입된다. 그러나, 추가 정보를 삽입하는데 사용되는 일부 픽셀은 다른 패턴에 따라 선택될 수 있다. 부가하여, 제 2 실시예에서는 블록을 형성하는 픽셀의 절반이 선택되고, 배타 논리합이 선택 픽셀값과 추가 정보 사이에서 계산되지만, 배타 논리합을 계산하는데 사용되는 픽셀의 수는 블록을 형성하는 픽셀의 절반에 제한되지 않는다. 그러나, 상술된 바와 같이, 추가 정보가 삽입된 픽셀을 복호화할 때, 상관관계 값은 추가 정보가 없는 픽셀을 사용해 바람직하게 결정될 수 있다. 픽셀 사이의 상관관계는 픽셀이 공간상으로 또는 시간상으로 서로 멀리 있을 때 더 작아진다. 그러므로, 정확한 복호화 동작을 실행하기 위해, 추가 정보가 삽입되는 픽셀은 공간상으로 또는 시간상으로 드문 드문 위치하는 방식으로 선택된다.
제 2 실시예에서, 정상 비트 스트림 픽셀 및 반전 비트 스트림 픽셀은 선택 픽셀의 대각선 방향으로 번갈아 위치하도록 선택된다. 그러나, 정상 비트 스트림 픽셀 및 반전 비트 스트림 픽셀은 다른 패턴에 따라 배열될 수 있다.
제 2 실시예에서, 일부 선택 픽셀은 정상 비트 스트림 픽셀인 것으로 결정되고, 나머지 선택 픽셀은 반전 비트 스트림 픽셀인 것으로 결정되어, 각 픽셀과 추가 정보 사이에서 배타 논리합이 계산된다. 그러나, 모든 선택 픽셀이 정상 비트 스트림 픽셀 또는 반전 비트 스트림 픽셀로 결정될 수 있다.
비록 제 2 실시예에서는 추가 정보가 픽셀값과 추가 정보 사이의 배타 논리합을 계산하여 삽입되지만, 또 다른 논리적 연산이 픽셀에 실행될 수 있다. 그러나, 계산된 결과는 배타 논리합과 같이, 삽입 코드화 동작을 실행하는데 사용되는 것과 같은 종류의 논리적 연산을 실행함으로서 원래 값으로 바람직하게 회복된다.
추가 정보의 종류는 특별하게 제한되지 않는다. 예를 들면, 영상, 사운드, 텍스트 (text), 컴퓨터 프로그램, 및 다른 종류의 데이터가 추가 정보로 삽입될 수 있다. 영상 데이터베이스(1)에 저장된 영상의 일부는 추가 정보로 사용될 수 있고, 나머지 영상은 프레임 메모리(31)로 공급된다. 이 경우, 추가 정보는 코드화되는 영상에 삽입될 수 있고, 그에 의해 영상 압축을 실시하게 된다.

Claims (29)

  1. 영상 데이터에 정보를 삽입하는 영상 처리 장치에 있어서,
    영상 데이터를 형성하는 일부 픽셀 (pixel)을 선택하는 선택 수단; 및
    정보에 따라 선택 픽셀값의 비트를 스와핑 (swapping)시킴으로서 상기 선택 수단에 의해 선택된 픽셀에 정보를 삽입하는 변화 수단을 구비하는 것을 특징으로 하는 영상 처리 장치.
  2. 제 1 항에 있어서,
    상기 변화 수단은 정보에 따라 선택 픽셀값의 비트를 회전시킴으로서 선택 픽셀에 정보를 삽입하는 것을 특징으로 하는 영상 처리 장치.
  3. 제 2 항에 있어서,
    상기 변화 수단은 일부 선택 픽셀을 최하위 비트에서 최상위 비트의 방향으로 회전시키고, 다른 선택 픽셀을 최상위 비트에서 최하위 비트의 방향으로 회전시키는 것을 특징으로 하는 영상 처리 장치.
  4. 제 1 항에 있어서,
    영상 데이터를 소정의 영상 블록으로 분할하는 분할 수단을 더 구비하고, 상기 선택 수단은 영상 블록을 형성하는 픽셀 일부를 선택하는 것을 특징으로 하는 영상 처리 장치.
  5. 제 4 항에 있어서,
    상기 변화 수단은 영상 블록 당 하나의 정보에 따라 선택 픽셀값의 비트를 스와핑시킴으로서 영상 블록의 단위로 선택 픽셀에 정보를 삽입하는 것을 특징으로 하는 영상 처리 장치.
  6. 제 5 항에 있어서,
    상기 변화 수단은 영상 블록 당 정보에 따라 각 영상 블록을 형성하는 일부 선택 픽셀값을 최하위 비트에서 최상위 비트의 방향으로 회전시키고, 영상 블록을 형성하는 다른 픽셀값을 최상위 비트에서 최하위 비트의 방향으로 회전시키는 것을 특징으로 하는 영상 처리 장치.
  7. 정보가 삽입된 코드화 영상 데이터를 원래 영상 데이터 및 정보로 복호화하는 영상 처리 장치에 있어서,
    코드화 영상 데이터를 형성하는 일부 픽셀을 선택하는 선택 수단;
    상기 선택 수단에 의해 선택된 픽셀값의 비트를 스와핑시키는 변화 수단;
    변화된 픽셀과 상기 선택 수단에 의해 선택된 픽셀 이외의 픽셀 사이에서 상관관계 (correlation)를 계산하는 상관관계 계산 수단;
    상기 상관관계 계산 수단에 의해 계산된 상관관계를 근거로, 선택 픽셀값이 변화되어야 하는 양으로 선택 픽셀을 복호화하는데 사용되는 양을 결정하는 결정 수단; 및
    상기 결정 수단에 의해 결정된 양을 근거로 선택 픽셀을 복호화하고 선택 픽셀에 삽입된 정보를 복호화하는 복호화 수단을 구비하는 것을 특징으로 하는 영상 처리 장치.
  8. 제 7 항에 있어서,
    상기 변화 수단은 선택 픽셀값의 비트를 회전시키는 것을 특징으로 하는 영상 처리 장치.
  9. 제 8 항에 있어서,
    상기 변화 수단은 일부 선택 픽셀을 최하위 비트에서 최상위 비트의 방향으로 회전시키고, 다른 선택 픽셀을 최상위 비트에서 최하위 비트의 방향으로 회전시키는 것을 특징으로 하는 영상 처리 장치.
  10. 제 7 항에 있어서,
    영상 데이터를 소정의 영상 블록으로 분할하는 분할 수단을 더 구비하고, 상기 선택 수단은 영상 블록을 형성하는 픽셀 일부를 선택하는 것을 특징으로 하는 영상 처리 장치.
  11. 제 7 항에 있어서,
    상기 상관관계 계산 수단은 변화된 픽셀과 그 변화 픽셀 주위에 위치하는 선택 픽셀 이외의 픽셀 사이에서 상관관계를 계산하는 것을 특징으로 하는 영상 처리 장치.
  12. 제 7 항에 있어서,
    상기 상관관계 계산 수단은 변화된 픽셀과 그 변화 픽셀 주위에 위치하는 선택 픽셀 이외의 픽셀 사이에서의 상관관계, 및 변화된 픽셀과 복호화된 픽셀 사이에서의 상관관계를 계산하는 것을 특징으로 하는 영상 처리 장치.
  13. 제 8 항에 있어서,
    상기 결정 수단은 상관관계를 최대화시키도록 선택 픽셀값이 회전되어야 하는 양을 결정하고, 상기 복호화 수단은 상기 결정 수단에 의해 결정된 양을 근거로 선택 픽셀을 복호화하고 선택 픽셀에 삽입된 정보를 복호화하는 것을 특징으로 하는 영상 처리 장치.
  14. 제 10 항에 있어서,
    상기 변화 수단은 동일한 양 만큼 영상 블록을 형성하는 선택 픽셀값의 비트를 스와핑시키고; 상기 상관관계 계산 수단은 변화된 픽셀과 그 변화된 픽셀 주위에 위치하는 선택 픽셀 이외의 픽셀 사이에서 상관관계를 계산하고; 상기 결정 수단은 상관관계를 근거로, 픽셀값이 변화되어야 하는 양으로 선택 픽셀을 복호화하는데 사용되는 동일한 양을 결정하고; 또한 상기 복호화 수단은 상기 결정 수단에 의해 결정된 동일한 양을 근거로 선택 픽셀을 복호화하고 선택 픽셀에 삽입된 하나의 정보를 복호화하는 것을 특징으로 하는 영상 처리 장치.
  15. 제 14 항에 있어서,
    상기 변화 수단은 영상 블록을 형성하는 일부 선택 픽셀을 최하위 비트에서 최상위 비트의 방향으로 회전시키고, 다른 선택 픽셀을 최상위 비트에서 최하위 비트의 방향으로 회전시키는 것을 특징으로 하는 영상 처리 장치.
  16. 정보가 삽입된 코드화 영상 데이터를 원래 영상 데이터 및 정보로 복호화하는 영상 처리 장치에 있어서,
    코드화 영상 데이터를 형성하는 일부 픽셀을 선택하는 선택 수단;
    상기 선택 수단에 의해 선택된 픽셀값과 소정의 데이터 사이에서 배타 논리합 (exclusive-OR)을 계산하는 계산 수단;
    상기 계산 수단에 의해 계산된 픽셀과 선택 픽셀 이외의 픽셀 사이에서 상관관계를 계산하는 상관관계 계산 수단;
    상기 상관관계 계산 수단에 의해 계산된 상관관계를 근거로, 선택 픽셀을 복호화하기 위해 선택 픽셀과 배타 논리합을 계산하는데 사용되는 소정의 데이터를 결정하는 결정 수단; 및
    상기 결정 수단에 의해 결정된 데이터를 근거로 선택 픽셀을 복호화하고 선택 픽셀에 삽입된 정보를 복호화하는 복호화 수단을 구비하는 것을 특징으로 하는 영상 처리 장치.
  17. 제 16 항에 있어서,
    상기 계산 수단은 일부 선택 픽셀값과 소정의 데이터를 나타내는 비트 스트림 (bit stream) 사이에서 배타 논리합을 계산하고 다른 선택 픽셀값과 소정의 데이터를 나타내는 비트 스트림의 순서를 반전시켜 구해진 비트 스트림 사이에서 배타 논리합을 계산하는 것을 특징으로 하는 영상 처리 장치.
  18. 제 16 항에 있어서,
    영상 데이터를 소정의 데이터 블록으로 분할하는 분할 수단을 더 구비하고, 상기 선택 수단은 영상 블록을 형성하는 픽셀 일부를 선택하는 것을 특징으로 하는 영상 처리 장치.
  19. 제 16 항에 있어서,
    상기 상관관계 계산 수단은 상기 계산 수단에 의해 계산된 픽셀과 선택 픽셀 주위에 위치하는 선택 픽셀 이외의 픽셀 사이에서 상관관계를 계산하는 것을 특징으로 하는 영상 처리 장치.
  20. 제 16 항에 있어서,
    상기 상관관계 계산 수단은 상기 계산 수단에 의해 계산된 픽셀과 선택 픽셀 주위에 위치하는 선택 픽셀 이외의 픽셀 사이에서 상관관계를 계산하고 상기 계산 수단에 의해 계산된 픽셀과 복호화된 픽셀 사이에서 상관관계를 계산하는 것을 특징으로 하는 영상 처리 장치.
  21. 제 16 항에 있어서,
    상기 결정 수단은 상관관계를 최대화시키도록 선택 픽셀과 배타 논리합을 계산하는데 사용되는 소정의 데이터를 결정하고, 상기 복호화 수단은 상기 결정 수단에 의해 결정된 데이터를 근거로 선택 픽셀을 복호화하고 선택 픽셀에 삽입된 소정의 정보를 복호화하는 것을 특징으로 하는 영상 처리 장치.
  22. 제 18 항에 있어서,
    상기 계산 수단은 영상 블록을 형성하는 각 선택 픽셀과 소정의 데이터 사이에서 배타 논리합을 계산하고; 상기 상관관계 계산 수단은 상기 계산 수단에 의해 계산된 픽셀과 선택 픽셀 주위에 위치하는 선택 픽셀 이외의 픽셀 사이에서 상관관계를 계산하고; 상기 결정 수단은 상기 상관관계 계산 수단에 의해 계산된 상관관계를 근거로 선택 픽셀을 복호화하는데 사용되는 소정의 데이터를 결정하고; 또한 상기 복호화 수단은 상기 결정 수단에 의해 결정된 소정의 데이터를 근거로 선택 픽셀을 복호화하고 선택 픽셀에 삽입된 하나의 정보를 복호화하는 것을 특징으로 하는 영상 처리 장치.
  23. 제 22 항에 있어서,
    상기 계산 수단은 영상 블록을 형성하는 일부 선택 픽셀값과 소정의 데이터를 나타내는 비트 스트림 사이에서 배타 논리합을 계산하고, 다른 픽셀값과 소정의 데이터를 나타내는 비트 스트림의 순서를 반전시켜 구해진 비트 스트림 사이에서 배타 논리합을 계산하는 것을 특징으로 하는 영상 처리 장치.
  24. 영상 데이터에 정보를 삽입하는 영상 처리 방법에 있어서,
    영상 데이터를 형성하는 일부 픽셀을 선택하는 선택 단계; 및
    정보에 따라 선택 픽셀값의 비트를 스와핑시킴으로서 상기 선택 단계에서 선택된 픽셀에 정보를 삽입하는 삽입 단계를 구비하는 것을 특징으로 하는 영상 처리 방법.
  25. 정보가 삽입된 코드화 영상 데이터를 원래 영상 데이터 및 정보로 복호화하는 영상 처리 방법에 있어서,
    코드화 영상 데이터를 형성하는 일부 픽셀을 선택하는 선택 단계;
    상기 선택 단계에서 선택된 픽셀값의 비트를 스와핑시키는 스와핑 단계;
    스와핑된 픽셀과 선택 픽셀 이외의 픽셀 사이에서 상관관계를 계산하는 상관관계 계산 단계;
    상기 상관관계 계산 단계에서 계산된 상관관계를 근거로, 선택 픽셀값이 변화되어야 하는 양으로 선택 픽셀을 복호화하는데 사용되는 양을 결정하는 결정 단계; 및
    상기 결정 단계에서 결정된 양을 근거로 선택 픽셀을 복호화하고 선택 픽셀에 삽입된 정보를 복호화하는 복호화 단계를 구비하는 것을 특징으로 하는 영상 처리 방법.
  26. 정보가 삽입된 코드화 영상 데이터를 원래 영상 데이터 및 정보로 복호화하는 영상 처리 방법에 있어서,
    코드화 영상 데이터를 형성하는 일부 픽셀을 선택하는 선택 단계;
    상기 선택 단계에서 선택된 픽셀값과 소정의 데이터 사이에서 배타 논리합을 계산하는 계산 단계;
    상기 계산 단계에서 계산된 픽셀과 선택 픽셀 이외의 픽셀 사이에서 상관관계를 계산하는 상관관계 계산 단계;
    상기 상관관계 계산 단계에서 계산된 상관관계를 근거로, 선택 픽셀을 복호화하기 위해 선택 픽셀과 배타 논리합을 계산하는데 사용되는 소정의 데이터를 결정하는 결정 단계; 및
    상기 결정 단계에서 결정된 소정의 데이터를 근거로 선택 픽셀을 복호화하고 선택 픽셀에 삽입된 정보를 복호화하는 복호화 단계를 구비하는 것을 특징으로 하는 영상 처리 방법.
  27. 영상 데이터에 정보를 삽입하기 위한 컴퓨터 제어 프로그램을 저장하는 저장 매체에 있어서,
    상기 프로그램은
    영상 데이터를 형성하는 일부 픽셀을 선택하는 선택 단계; 및
    정보에 따라 선택 픽셀값의 비트를 스와핑시킴으로서 상기 선택 단계에서 선택된 픽셀에 정보를 삽입하는 삽입 단계를 구비하는 것을 특징으로 하는 저장 매체.
  28. 정보가 삽입된 코드화 영상 데이터를 원래 영상 데이터 및 정보로 복호화하기 위한 컴퓨터 제어 프로그램을 저장하는 저장 매체에 있어서,
    상기 프로그램은
    코드화 영상 데이터를 형성하는 일부 픽셀을 선택하는 선택 단계;
    상기 선택 단계에서 선택된 픽셀값의 비트를 스와핑시키는 스와핑 단계;
    스와핑된 픽셀과 선택 픽셀 이외의 픽셀 사이에서 상관관계를 계산하는 상관관계 계산 단계;
    상기 상관관계 계산 단계에서 계산된 상관관계를 근거로, 선택 픽셀값이 변화되어야 하는 양으로 선택 픽셀을 복호화하는데 사용되는 양을 결정하는 결정 단계; 및
    상기 결정 단계에서 결정된 양을 근거로 선택 픽셀을 복호화하고 선택 픽셀에 삽입된 정보를 복호화하는 복호화 단계를 구비하는 것을 특징으로 하는 저장 매체.
  29. 정보가 삽입된 코드화 영상 데이터를 원래 영상 데이터 및 정보로 복호화하기 위한 컴퓨터 제어 프로그램을 저장하는 저장 매체에 있어서,
    상기 프로그램은
    코드화 영상 데이터를 형성하는 일부 픽셀을 선택하는 선택 단계;
    상기 선택 단계에서 선택된 픽셀값과 소정의 데이터 사이에서 배타 논리합을 계산하는 계산 단계;
    상기 계산 단계에서 계산된 픽셀과 선택 픽셀 이외의 픽셀 사이에서 상관관계를 계산하는 상관관계 계산 단계;
    상기 상관관계 계산 단계에서 계산된 상관관계를 근거로, 선택 픽셀을 복호화하기 위해 선택 픽셀과 배타 논리합을 계산하는데 사용되는 소정의 데이터를 결정하는 결정 단계; 및
    상기 결정 단계에서 결정된 소정의 데이터를 근거로 선택 픽셀을 복호화하고 선택 픽셀에 삽입된 정보를 복호화하는 복호화 단계를 구비하는 것을 특징으로 하는 저장 매체.
KR1020000030985A 1999-06-08 2000-06-07 이미지 처리 장치, 이미지 처리 방법 및 저장 매체 KR100667612B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP16053099A JP4099687B2 (ja) 1999-06-08 1999-06-08 画像処理装置および画像処理方法、並びに媒体
JP16052999A JP4092608B2 (ja) 1999-06-08 1999-06-08 画像処理装置および画像処理方法、並びにプログラム格納媒体
JP99-160529 1999-06-08
JP99-160530 1999-06-08

Publications (2)

Publication Number Publication Date
KR20010007261A true KR20010007261A (ko) 2001-01-26
KR100667612B1 KR100667612B1 (ko) 2007-01-15

Family

ID=26487012

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020000030985A KR100667612B1 (ko) 1999-06-08 2000-06-07 이미지 처리 장치, 이미지 처리 방법 및 저장 매체

Country Status (5)

Country Link
US (3) US6870944B1 (ko)
EP (1) EP1059606B1 (ko)
KR (1) KR100667612B1 (ko)
CN (1) CN1148964C (ko)
DE (1) DE60030911T2 (ko)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100341330C (zh) * 2005-02-25 2007-10-03 吉林大学 音视频混合信号同步压缩中的音频嵌入视频及其提取方法
JP4650123B2 (ja) * 2005-06-27 2011-03-16 ソニー株式会社 画像処理装置、画像処理方法、およびプログラム
US8478074B2 (en) 2006-07-07 2013-07-02 Microsoft Corporation Providing multiple and native representations of an image
US7920749B1 (en) * 2006-12-20 2011-04-05 Nvidia Corporation Modified high dynamic range color decompression
EP2234400A1 (en) * 2009-03-23 2010-09-29 Sony Corporation Method and device for providing a multimedia content stream embedding processing information for the content
JP5471580B2 (ja) * 2010-02-23 2014-04-16 富士ゼロックス株式会社 画像処理装置及びプログラム
JP5562812B2 (ja) * 2010-11-22 2014-07-30 株式会社東芝 送受切替回路、無線装置および送受切替方法
CN104581120A (zh) * 2015-01-23 2015-04-29 深圳超多维光电子有限公司 图像信息保存方法、保存装置、立体图像生成方法和装置
JP6819096B2 (ja) * 2016-06-30 2021-01-27 オムロン株式会社 画像処理装置、画像処理方法、および画像処理プログラム

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2101838B (en) * 1981-04-20 1986-03-05 Canon Kk Image processing method and apparatus therefor
JP2670273B2 (ja) * 1987-09-30 1997-10-29 株式会社東芝 画像処理装置
KR0123083B1 (ko) * 1993-10-28 1997-11-17 배순훈 패킷 동영상 부호기 및 복호기에 있어서의 패킷 데이터 구조
JPH08214314A (ja) * 1995-02-02 1996-08-20 Canon Inc 画像伝送装置
EP0766468B1 (en) * 1995-09-28 2006-05-03 Nec Corporation Method and system for inserting a spread spectrum watermark into multimedia data
US5734752A (en) * 1996-09-24 1998-03-31 Xerox Corporation Digital watermarking using stochastic screen patterns
TW312770B (en) * 1996-10-15 1997-08-11 Japen Ibm Kk The hiding and taking out method of data
US5835639A (en) * 1996-12-18 1998-11-10 Eastman Kodak Company Method for detecting rotation and magnification in images
JPH10210428A (ja) * 1997-01-17 1998-08-07 Matsushita Electric Ind Co Ltd 番組送信装置、番組受信装置、及び番組放送システム
JPH10336595A (ja) * 1997-06-05 1998-12-18 Mitsubishi Electric Corp デコーダ
KR100256646B1 (ko) * 1997-11-25 2000-05-15 전주범 영상 부호화 시스템의 압축율 자동-변환 장치
JP4182603B2 (ja) * 1998-10-07 2008-11-19 ソニー株式会社 符号化装置および符号化方法、復号装置および復号方法、記録媒体、並びにデータ処理装置
JP4822304B2 (ja) * 1998-08-06 2011-11-24 ソニー株式会社 画像処理装置および画像処理方法、並びに記録媒体
JP3748495B2 (ja) 1998-12-11 2006-02-22 キヤノン株式会社 画像処理方法、画像処理装置、画像配付システム及び記憶媒体
JP3682382B2 (ja) 1999-01-25 2005-08-10 大日本印刷株式会社 画像処理システム及び記録媒体

Also Published As

Publication number Publication date
US6870944B1 (en) 2005-03-22
CN1276681A (zh) 2000-12-13
EP1059606A2 (en) 2000-12-13
DE60030911T2 (de) 2007-04-05
US20050008192A1 (en) 2005-01-13
CN1148964C (zh) 2004-05-05
US7606431B2 (en) 2009-10-20
EP1059606B1 (en) 2006-09-27
US20050013464A1 (en) 2005-01-20
EP1059606A3 (en) 2002-08-28
US6940996B2 (en) 2005-09-06
DE60030911D1 (de) 2006-11-09
KR100667612B1 (ko) 2007-01-15

Similar Documents

Publication Publication Date Title
EP0978801B1 (en) Image processing apparatus, image processing method, and providing media
US6546139B1 (en) Coding apparatus and method, decoding apparatus and method, data processing system, storage medium, and signal
CA2291383C (en) Control method and apparatus for embedding information in data
US7738711B2 (en) Coding apparatus and method, decoding apparatus and method, data processing system, storage medium, and signal
JP4214440B2 (ja) データ処理装置およびデータ処理方法、並びに記録媒体
KR100667612B1 (ko) 이미지 처리 장치, 이미지 처리 방법 및 저장 매체
JP4556087B2 (ja) データ処理装置およびデータ処理方法、並びにプログラムおよびプログラム記録媒体
JP2000232365A (ja) 符号化装置および符号化方法、復号装置および復号方法、記録媒体、並びにデータ処理装置
US6738492B1 (en) Coding apparatus and method, decoding apparatus and method, data processing system, storage medium, and signal
KR100711012B1 (ko) 코딩 장치 및 방법, 디코딩 장치 및 방법, 데이터 처리 시스템, 기억 매체 및 신호
JP4556147B2 (ja) 復号装置および復号方法、記録媒体、並びにデータ処理装置
JP4099687B2 (ja) 画像処理装置および画像処理方法、並びに媒体
JP4092608B2 (ja) 画像処理装置および画像処理方法、並びにプログラム格納媒体
KR100777144B1 (ko) 코딩 장치와 방법, 디코딩 장치와 방법, 데이터 처리 시스템, 저장 매체, 및 기록 매체
JP2003125194A (ja) データ処理装置およびデータ処理方法、並びにプログラムおよび記録媒体
JP4591767B2 (ja) 符号化装置および方法、復号装置および方法、画像処理システム、記録媒体、並びにプログラム
JP4182676B2 (ja) 画像信号伝送装置および方法、並びに画像信号受信装置および方法
JP2000324482A (ja) データ処理装置およびデータ処理方法、並びに画像処理装置および画像処理方法

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20111227

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20121231

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee