KR102122620B1 - 화상 처리 장치 및 방법 - Google Patents

화상 처리 장치 및 방법 Download PDF

Info

Publication number
KR102122620B1
KR102122620B1 KR1020157004523A KR20157004523A KR102122620B1 KR 102122620 B1 KR102122620 B1 KR 102122620B1 KR 1020157004523 A KR1020157004523 A KR 1020157004523A KR 20157004523 A KR20157004523 A KR 20157004523A KR 102122620 B1 KR102122620 B1 KR 102122620B1
Authority
KR
South Korea
Prior art keywords
motion vector
unit
motion
compression
image
Prior art date
Application number
KR1020157004523A
Other languages
English (en)
Other versions
KR20150052016A (ko
Inventor
요시토모 다카하시
가즈시 사토
Original Assignee
소니 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 소니 주식회사 filed Critical 소니 주식회사
Publication of KR20150052016A publication Critical patent/KR20150052016A/ko
Application granted granted Critical
Publication of KR102122620B1 publication Critical patent/KR102122620B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/11Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • H04N19/122Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • H04N19/31Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability in the temporal domain
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
    • H04N19/426Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements using memory downsizing methods
    • 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
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock

Abstract

본 발명은, 부호화·복호에 필요한 기억 용량의 증대를 억제할 수 있도록 하는 화상 처리 장치 및 방법에 관한 것이다. 커런트 레이어의 복호에 있어서 움직임 보상을 행하는 움직임 보상부와, 상기 움직임 보상부에 의해 재구축되어, 다른 레이어의 복호에서의 상기 움직임 보상에 이용되는 상기 커런트 레이어의 움직임 벡터를 압축하는 제1 압축부를 구비한다. 또는, 커런트 레이어의 부호화에 있어서 움직임 예측·보상을 행하는 움직임 예측·보상부와, 상기 움직임 예측·보상부에 의해 생성되어, 다른 레이어의 부호화에서의 상기 움직임 예측·보상에 이용되는, 상기 커런트 레이어의 움직임 벡터를 압축하는 제1 압축부를 구비한다. 본 발명은, 예를 들어, 화상 처리 장치에 적용할 수 있다.

Description

화상 처리 장치 및 방법{IMAGE PROCESSING DEVICE AND METHOD}
본 개시는 화상 처리 장치 및 방법에 관한 것으로, 특히, 부호화·복호에 필요한 기억 용량의 증대를 억제할 수 있도록 한 화상 처리 장치 및 방법에 관한 것이다.
최근 들어, 화상 정보를 디지털로서 취급하고, 그때, 효율이 높은 정보의 전송, 축적을 목적으로, 화상 정보 특유의 용장성을 이용하여, 이산 코사인 변환 등의 직교 변환과 움직임 보상에 의해 압축하는 부호화 방식을 채용하여 화상을 압축 부호하는 장치가 보급되고 있다. 이 부호화 방식에는, 예를 들어, MPEG(Moving Picture Experts Group) 등이 있다.
특히, MPEG2(ISO/IEC 13818-2)는, 범용 화상 부호화 방식으로서 정의되어 있어, 비월 주사 화상 및 순차 주사 화상의 양쪽, 및 표준 해상도 화상 및 고정밀 화상을 망라하는 표준이다. 예를 들어, MPEG2는, 프로페셔널 용도 및 컨슈머 용도의 광범위한 애플리케이션에 현재 널리 사용되고 있다. MPEG2 압축 방식을 사용함으로써, 예를 들어 720x480 화소를 갖는 표준 해상도의 비월 주사 화상이라면, 4 내지 8Mbps의 부호량(비트 레이트)이 할당된다. 또한, MPEG2 압축 방식을 사용함으로써, 예를 들어 1920x1088 화소를 갖는 고해상도의 비월 주사 화상이라면, 18 내지 22Mbps의 부호량(비트 레이트)이 할당된다. 이에 의해, 높은 압축률과 양호한 화질의 실현이 가능하다.
MPEG2는 주로 방송용에 적합한 고화질 부호화를 대상으로 하고 있었지만, MPEG1보다 낮은 부호량(비트 레이트), 즉 보다 높은 압축률의 부호화 방식에는 대응하지 않았다. 휴대 단말기의 보급에 의해, 이후 그러한 부호화 방식의 요구는 높아질 것으로 생각되어, 이것에 대응하여 MPEG4 부호화 방식의 표준화가 행하여졌다. 화상 부호화 방식에 대해서는, 1998년 12월에 ISO/IEC 14496-2로서 그 규격이 국제 표준으로 승인되었다.
또한, 최근 들어, 당초 텔레비전 회의용의 화상 부호화를 목적으로, H.26L(ITU-T(International Telecommunication Union Telecommunication Standardization Sector) Q6/16 VCEG(Video Coding Expert Group))이라는 표준의 규격화가 진행되었다. H.26L은, MPEG2나 MPEG4와 같은 종래의 부호화 방식에 비해, 그 부호화, 복호화에 보다 많은 연산량이 요구되기는 하지만, 더 높은 부호화 효율이 실현되는 것으로 알려져 있다. 또한, 현재, MPEG4의 활동의 일환으로서, 이 H.26L을 기초로, H.26L에서는 서포트되지 않는 기능도 도입하여, 더 높은 부호화 효율을 실현하는 표준화가 Joint Model of Enhanced-Compression Video Coding으로서 행하여졌다.
표준화의 스케줄로서는, 2003년 3월에는 H.264 및 MPEG-4 Part10(Advanced Video Coding, 이하, AVC라 기재함)이라는 이름 하에 국제 표준이 되었다.
그러나, 매크로 블록 사이즈를 16x16 화소로 하는 것은, 차세대 부호화 방식의 대상이 되는, UHD(Ultra High Definition; 4000x2000 화소)라는 큰 화면 프레임에 대해서는 최적이 아닐 우려가 있었다.
따라서, 현재, H.264/AVC보다 가일층의 부호화 효율의 향상을 목적으로, ITU-T와 ISO/IEC의 공동의 표준화 단체인 JCTVC(Joint Collaboration Team-Video Coding)에 의해, HEVC(High Efficiency Video Coding)라고 불리는 부호화 방식의 표준화가 진행되고 있다. HEVC 규격에 대해서는, 2012년 2월에 최초의 드래프트판 사양인 Committee draft가 발행되었다(예를 들어, 비특허문헌 1 참조).
그런데, 종래, HEVC의 3D 확장의 하나로서, CU 레벨을 변경하여, 논베이스 뷰의 부호화 성능을 개선하는 방식이 검토되고 있다. 본 방식의 하나의 툴로서, 서로 다른 뷰의 부호화 완료 벡터를 논베이스 뷰의 예측 벡터의 후보로 하는 Inter-view motion prediction(IVMP)이 있다(예를 들어, 비특허문헌 2 참조).
예를 들어, HEVC Ver.1의 규격에서는, 서로 다른 시각의 픽처의 움직임 벡터를 예측 벡터의 후보로 할 수 있는 툴 Temporal MVP(TMVP)가 있다. 이 툴을 사용하는 경우, TMVP를 위해 부호화 완료 픽처의 움직임 벡터(MV)가 유지된다. 이 움직임 벡터(MV)는, 최소 4x4 단위로 부호화되지만, TMVP에서 참조될 때까지의 동안에, 16x16 단위로 정보 압축된다. 이 압축에 의해, 움직임 벡터(MV)의 예측 정밀도가 저하되지만, 움직임 벡터를 유지하는 메모리의 용량을 1/16로 저감시킬 수 있다.
Benjamin Bross, Woo-Jin Han, Jens-Rainer Ohm, Gary J. Sullivan, Thomas Wiegand, "High efficiency video coding(HEVC) text specification draft 6", JCTVC-H1003 ver20, 2012. 2. 17 Yoshiya Yamamoto, Tomohiro Ikai, Tadashi Uchiumi, "3D-CE5.h related: Simplification of AMVP", JCT2-A0014, Joint Collaborative Team on 3D Video Coding Extension Developmentof ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 111st Meeting: Stockholm, SE, 16-20 July 2012
그러나, IVMP에서는, 이러한 움직임 벡터의 압축 기능은 준비되어 있지 않았다. 즉, IVMP의 경우, 움직임 벡터는, 다른 레이어에 있어서, 부호화될 때의 정밀도 그대로 참조되고 있었다. 예를 들어, 움직임 벡터가, 최소 4x4 단위로 부호화되는 경우, IVMP용으로 4x4 정밀도의 움직임 벡터를 유지하는 템포럴 버퍼(Temporal buffer)가 필요하였다.
즉, 이 템포럴 버퍼에는, 1 뷰(view)당, 적어도 「4x4 정밀도의 움직임 벡터를 1 화면」분 기억할 수 있는 용량이 필요하다. 따라서, 이 템포럴 버퍼에는, 16x16 정밀도까지 압축되는 TMVP를 위한 움직임 벡터를 기억하는 경우의 16배(16 picture분)의 용량이 필요하였다.
즉, IVMP 때문에, 부호화·복호에 필요한 기억 용량이 증대될 우려가 있었다.
본 발명은, 이러한 상황을 감안하여 이루어진 것이며, 부호화·복호에 필요한 기억 용량의 증대를 억제할 수 있도록 하는 것이다.
본 기술의 일측면은, 커런트 레이어의 복호에 있어서 움직임 보상을 행하는 움직임 보상부와, 상기 움직임 보상부에 의해 재구축되어, 다른 레이어의 복호에서의 상기 움직임 보상에 이용되는 상기 커런트 레이어의 움직임 벡터를 압축하는 제1 압축부를 구비하는 화상 처리 장치이다.
상기 움직임 보상부에 의해 재구축된 상기 커런트 레이어의 움직임 벡터를, 상기 제1 압축부보다 고압축률로 압축하는 제2 압축부를 더 구비하고, 상기 움직임 보상부는, 상기 제2 압축부에 의해 압축된 상기 움직임 벡터를 사용하여, 상기 커런트 레이어의 복호에서의 상기 움직임 보상을 행할 수 있다.
상기 제2 압축부는, 상기 제1 압축부에 의해 압축된 상기 움직임 벡터를 더 압축할 수 있다.
상기 움직임 보상부는, 상기 제1 압축부에 의해 압축된 상기 움직임 벡터를 사용하여, 상기 커런트 레이어의 복호에서의 상기 움직임 보상을 행할 수 있다.
다른 레이어의 복호에서의 상기 움직임 보상에 이용되는 상기 커런트 레이어의 움직임 벡터를 압축할지 여부를 나타내는 플래그를 수취하는 수취부와, 상기 수취부에 의해 수취된 상기 플래그가 움직임 벡터를 압축하는 것을 나타내는 값일 경우, 상기 제1 압축부에 의해 압축된 상기 움직임 벡터를, 다른 레이어의 복호에서의 상기 움직임 보상에 이용되는 상기 커런트 레이어의 움직임 벡터로서 선택하고, 상기 수취부에 의해 수취된 상기 플래그가 움직임 벡터를 압축하지 않는 것을 나타내는 값일 경우, 상기 제1 압축부에 의해 압축되기 전의 상기 움직임 벡터를, 다른 레이어의 복호에서의 상기 움직임 보상에 이용되는 상기 커런트 레이어의 움직임 벡터로서 선택하는 선택부를 더 구비할 수 있다.
상기 움직임 보상부는, 상기 수취부에 의해 수취된 상기 플래그의 값에 관계없이, 상기 제1 압축부에 의해 압축된 상기 움직임 벡터를 사용하여, 상기 커런트 레이어의 복호에서의 상기 움직임 보상을 행할 수 있다.
상기 제1 압축부는, 상기 움직임 보상부에 의해 재구축된 복수의 움직임 벡터로부터, 대표치로 하는 움직임 벡터를 선택함으로써, 상기 커런트 레이어의 움직임 벡터를 압축할 수 있다.
상기 제1 압축부는, 상기 움직임 보상부에 의해 재구축된 복수의 움직임 벡터를 사용하여, 대표치로 하는 움직임 벡터를 산출함으로써, 상기 커런트 레이어의 움직임 벡터를 압축할 수 있다.
상기 움직임 보상부는, 다른 레이어의 복호에서의 상기 움직임 보상에 있어서 재구축된 움직임 벡터를 사용하여 상기 움직임 보상을 행할 수 있다.
본 기술의 일측면은, 또한, 화상 처리 장치의 화상 처리 방법에 있어서, 상기 화상 처리 장치가, 커런트 레이어의 복호에 있어서 움직임 보상을 행하고, 상기 움직임 보상에 의해 재구축되어, 다른 레이어의 복호에서의 상기 움직임 보상에 이용되는 상기 커런트 레이어의 움직임 벡터를 압축하는 화상 처리 방법이다.
본 기술의 다른 측면은, 커런트 레이어의 부호화에 있어서 움직임 예측·보상을 행하는 움직임 예측·보상부와, 상기 움직임 예측·보상부에 의해 생성되어, 다른 레이어의 부호화에서의 상기 움직임 예측·보상에 이용되는, 상기 커런트 레이어의 움직임 벡터를 압축하는 제1 압축부를 구비하는 화상 처리 장치이다.
상기 움직임 예측·보상부에 의해 생성된 상기 커런트 레이어의 움직임 벡터를, 상기 제1 압축부보다 고압축률로 압축하는 제2 압축부를 더 구비하고, 상기 움직임 예측·보상부는, 상기 제2 압축부에 의해 압축된 상기 움직임 벡터를 사용하여, 상기 커런트 레이어의 부호화에서의 상기 움직임 예측·보상을 행할 수 있다.
상기 제2 압축부는, 상기 제1 압축부에 의해 압축된 상기 움직임 벡터를 더 압축할 수 있다.
상기 움직임 예측·보상부는, 상기 제1 압축부에 의해 압축된 상기 움직임 벡터를 사용하여, 상기 커런트 레이어의 부호화에서의 상기 움직임 예측·보상을 행할 수 있다.
다른 레이어의 부호화에서의 상기 움직임 예측·보상에 이용되는 상기 커런트 레이어의 움직임 벡터를 압축할지 여부를 제어하는 제어부와, 상기 제어부의 제어에 따라, 상기 제1 압축부에 의해 압축되기 전의 상기 움직임 벡터와, 상기 제1 압축부에 의해 압축된 상기 움직임 벡터 중 어느 한쪽을, 다른 레이어의 부호화에서의 상기 움직임 예측·보상에 이용되는 상기 커런트 레이어의 움직임 벡터로서 선택하는 선택부와, 상기 제어부의 제어에 따라, 다른 레이어의 부호화에서의 상기 움직임 예측·보상에 이용되는 상기 커런트 레이어의 움직임 벡터를 압축할지 여부를 나타내는 플래그를 생성하는 생성부와, 상기 생성부에 의해 생성된 상기 플래그를 전송하는 전송부를 더 구비할 수 있다.
상기 움직임 예측·보상부는, 상기 제어부의 제어에 관계없이, 상기 제1 압축부에 의해 압축된 상기 움직임 벡터를 사용하여, 상기 커런트 레이어의 부호화에서의 상기 움직임 예측·보상을 행할 수 있다.
상기 제1 압축부는, 상기 움직임 예측·보상부에 의해 생성된 복수의 움직임 벡터로부터, 대표치로 하는 움직임 벡터를 선택함으로써, 상기 커런트 레이어의 움직임 벡터를 압축할 수 있다.
상기 제1 압축부는, 상기 움직임 예측·보상부에 의해 생성된 복수의 움직임 벡터를 사용하여, 대표치로 하는 움직임 벡터 산출함으로써, 상기 커런트 레이어의 움직임 벡터를 압축할 수 있다.
상기 움직임 예측·보상부는, 다른 레이어의 부호화에서의 상기 움직임 예측·보상에서 생성된 움직임 벡터를 사용하여 상기 움직임 예측·보상을 행할 수 있다.
본 기술의 다른 측면은, 또한, 화상 처리 장치의 화상 처리 방법에 있어서, 상기 화상 처리 장치가, 커런트 레이어의 부호화에 있어서 움직임 예측·보상을 행하고, 상기 움직임 예측·보상에 의해 생성되어, 다른 레이어의 부호화에서의 상기 움직임 예측·보상에 이용되는, 상기 커런트 레이어의 움직임 벡터를 압축하는 화상 처리 방법이다.
본 기술의 일측면에서는, 커런트 레이어의 복호에 있어서 움직임 보상이 행하여지고, 그 움직임 보상에 의해 재구축되어, 다른 레이어의 복호에서의 움직임 보상에 이용되는 커런트 레이어의 움직임 벡터가 압축된다.
본 기술의 다른 측면에서는, 커런트 레이어의 부호화에 있어서 움직임 예측·보상이 행하여지고, 그 움직임 예측·보상에 의해 생성되어, 다른 레이어의 부호화에서의 움직임 예측·보상에 이용되는, 커런트 레이어의 움직임 벡터가 압축된다.
또한, 상술한 화상 처리 장치는, 독립된 장치이어도 되고, 하나의 화상 부호화 장치 또는 화상 복호 장치를 구성하고 있는 내부 블록이어도 된다.
본 발명에 의하면, 화상을 부호화·복호할 수 있다. 특히, 부호화·복호에 필요한 기억 용량의 증대를 억제할 수 있다.
도 1은 코딩 유닛의 구성예를 설명하는 도면이다.
도 2는 다시점 화상 부호화 방식의 예를 나타내는 도이다.
도 3은 IVMP의 모습의 예를 설명하는 도면이다.
도 4는 종래의 움직임 벡터 참조의 모습의 예를 설명하는 도면이다.
도 5는 본 기술을 적용한 움직임 벡터 참조의 모습의 예를 설명하는 도면이다.
도 6은 V0 화상 부호화 장치의 주된 구성예를 도시하는 블록도이다.
도 7은 V1 화상 부호화 장치의 주된 구성예를 도시하는 블록도이다.
도 8은 V2 화상 부호화 장치의 주된 구성예를 도시하는 블록도이다.
도 9는 부호화 처리의 흐름의 예를 설명하는 흐름도이다.
도 10은 V0 부호화 처리의 흐름의 예를 설명하는 흐름도이다.
도 11은 V0 인터 움직임 예측 처리의 흐름의 예를 설명하는 흐름도이다.
도 12는 V1 부호화 처리의 흐름의 예를 설명하는 흐름도이다.
도 13은 V1 인터 움직임 예측 처리의 흐름의 예를 설명하는 흐름도이다.
도 14는 V2 부호화 처리의 흐름의 예를 설명하는 흐름도이다.
도 15는 V2 인터 움직임 예측 처리의 흐름의 예를 설명하는 흐름도이다.
도 16은 V0 화상 복호 장치의 주된 구성예를 도시하는 블록도이다.
도 17은 V1 화상 복호 장치의 주된 구성예를 도시하는 블록도이다.
도 18은 V2 화상 복호 장치의 주된 구성예를 도시하는 블록도이다.
도 19는 복호 처리의 흐름의 예를 설명하는 흐름도이다.
도 20은 V0 복호 처리의 흐름의 예를 설명하는 흐름도이다.
도 21은 V0 움직임 보상 처리의 흐름의 예를 설명하는 흐름도이다.
도 22는 V1 복호 처리의 흐름의 예를 설명하는 흐름도이다.
도 23은 V1 움직임 보상 처리의 흐름의 예를 설명하는 흐름도이다.
도 24는 V2 복호 처리의 흐름의 예를 설명하는 흐름도이다.
도 25는 V2 움직임 보상 처리의 흐름의 예를 설명하는 흐름도이다.
도 26은 본 기술을 적용한 움직임 벡터 참조의 모습의 예를 설명하는 도면이다.
도 27은 V0 화상 부호화 장치의 주된 구성예를 도시하는 블록도이다.
도 28은 V1 화상 부호화 장치의 주된 구성예를 도시하는 블록도이다.
도 29는 V2 화상 부호화 장치의 주된 구성예를 도시하는 블록도이다.
도 30은 V0 부호화 처리의 흐름의 예를 설명하는 흐름도이다.
도 31은 V1 부호화 처리의 흐름의 예를 설명하는 흐름도이다.
도 32는 V1 인터 움직임 예측 처리의 흐름의 예를 설명하는 흐름도이다.
도 33은 V2 부호화 처리의 흐름의 예를 설명하는 흐름도이다.
도 34는 V2 인터 움직임 예측 처리의 흐름의 예를 설명하는 흐름도이다.
도 35는 V0 화상 복호 장치의 주된 구성예를 도시하는 블록도이다.
도 36은 V1 화상 복호 장치의 주된 구성예를 도시하는 블록도이다.
도 37은 V2 화상 복호 장치의 주된 구성예를 도시하는 블록도이다.
도 38은 V0 복호 처리의 흐름의 예를 설명하는 흐름도이다.
도 39는 V1 복호 처리의 흐름의 예를 설명하는 흐름도이다.
도 40은 V1 움직임 보상 처리의 흐름의 예를 설명하는 흐름도이다.
도 41은 V2 복호 처리의 흐름의 예를 설명하는 흐름도이다.
도 42는 V2 움직임 보상 처리의 흐름의 예를 설명하는 흐름도이다.
도 43은 본 기술을 적용한 움직임 벡터 참조의 모습의 예를 설명하는 도면이다.
도 44는 신택스의 예를 설명하는 도면이다.
도 45는 V0 화상 부호화 장치의 주된 구성예를 도시하는 블록도이다.
도 46은 V1 화상 부호화 장치의 주된 구성예를 도시하는 블록도이다.
도 47은 V2 화상 부호화 장치의 주된 구성예를 도시하는 블록도이다.
도 48은 부호화 처리의 흐름의 예를 설명하는 흐름도이다.
도 49는 V0 부호화 처리의 흐름의 예를 설명하는 흐름도이다.
도 50은 V0 부호화 처리의 흐름의 예를 설명하는, 도 49에 이어지는 흐름도이다.
도 51은 V1 부호화 처리의 흐름의 예를 설명하는 흐름도이다.
도 52는 V1 부호화 처리의 흐름의 예를 설명하는, 도 51에 이어지는 흐름도이다.
도 53은 V1 인터 움직임 예측 처리의 흐름의 예를 설명하는 흐름도이다.
도 54는 V2 부호화 처리의 흐름의 예를 설명하는 흐름도이다.
도 55는 V2 부호화 처리의 흐름의 예를 설명하는, 도 54에 이어지는 흐름도이다.
도 56은 V2 인터 움직임 예측 처리의 흐름의 예를 설명하는 흐름도이다.
도 57은 V0 화상 복호 장치의 주된 구성예를 도시하는 블록도이다.
도 58은 V1 화상 복호 장치의 주된 구성예를 도시하는 블록도이다.
도 59는 V2 화상 복호 장치의 주된 구성예를 도시하는 블록도이다.
도 60은 복호 처리의 흐름의 예를 설명하는 흐름도이다.
도 61은 V0 복호 처리의 흐름의 예를 설명하는 흐름도이다.
도 62는 V0 복호 처리의 흐름의 예를 설명하는, 도 61에 이어지는 흐름도이다.
도 63은 V1 복호 처리의 흐름의 예를 설명하는 흐름도이다.
도 64는 V1 복호 처리의 흐름의 예를 설명하는, 도 64에 이어지는 흐름도이다.
도 65는 V1 움직임 보상 처리의 흐름의 예를 설명하는 흐름도이다.
도 66은 V2 복호 처리의 흐름의 예를 설명하는 흐름도이다.
도 67은 V2 복호 처리의 흐름의 예를 설명하는, 도 66에 이어지는 흐름도이다.
도 68은 V2 움직임 보상 처리의 흐름의 예를 설명하는 흐름도이다.
도 69는 계층 화상 부호화 방식의 예를 나타내는 도이다.
도 70은 스페셜한 스케일러블 부호화의 예를 설명하는 도면이다.
도 71은 템포럴 스케일러블 부호화의 예를 설명하는 도면이다.
도 72는 신호 잡음비의 스케일러블 부호화의 예를 설명하는 도면이다.
도 73은 움직임 벡터의 씨닝의 모습의 예를 설명하는 도면이다.
도 74는 움직임 벡터의 씨닝의 모습의 다른 예를 설명하는 도면이다.
도 75는 앵귤러(Angular) 예측의 예를 설명하는 도면이다.
도 76은 플래너(Planar) 예측의 예를 설명하는 도면이다.
도 77은 모스트 프로버블 모드(MostProbableMode)의 예를 설명하는 도면이다.
도 78은 MDIS(Mode Dependent Intra Smoothing)의 예를 설명하는 도면이다.
도 79는 바운더리 밸류 스무딩(Boundary Value Smoothing) 처리의 예를 설명하는 도면이다.
도 80은 인트라 예측 모드의 씨닝의 모습의 예를 나타내는 도이다.
도 81은 스케일러블 부호화 장치의 주된 구성예를 도시하는 블록도이다.
도 82는 베이스 레이어 화상 부호화부의 주된 구성예를 도시하는 블록도이다.
도 83은 인핸스먼트 레이어 화상 부호화부의 주된 구성예를 도시하는 블록도이다.
도 84는 인트라 예측 모드 제공부의 주된 구성예를 도시하는 블록도이다.
도 85는 공통 정보 생성 처리의 흐름의 예를 설명하는 흐름도이다.
도 86은 부호화 처리의 흐름의 예를 설명하는 흐름도이다.
도 87은 베이스 레이어 부호화 처리의 흐름의 예를 설명하는 흐름도이다.
도 88은 인핸스먼트 레이어 부호화 처리의 흐름의 예를 설명하는 흐름도이다.
도 89는 스케일러블 복호 장치의 주된 구성예를 도시하는 블록도이다.
도 90은 베이스 레이어 화상 복호부의 주된 구성예를 도시하는 블록도이다.
도 91은 인핸스먼트 레이어 화상 복호부의 주된 구성예를 도시하는 블록도이다.
도 92는 인트라 예측 모드 제공부의 주된 구성예를 도시하는 블록도이다.
도 93은 공통 정보 취득 처리의 흐름의 예를 설명하는 흐름도이다.
도 94는 복호 처리의 흐름의 예를 설명하는 흐름도이다.
도 95는 베이스 레이어 복호 처리의 흐름의 예를 설명하는 흐름도이다.
도 96은 인핸스먼트 레이어 복호 처리의 흐름의 예를 설명하는 흐름도이다.
도 97은 예측 처리의 흐름의 예를 설명하는 흐름도이다.
도 98은 슬라이스 헤더의 신택스의 예를 나타내는 도이다.
도 99는 슬라이스 헤더의 신택스의 예를 나타내는, 도 98에 이어지는 도이다.
도 100은 슬라이스 헤더의 신택스의 예를 나타내는, 도 99에 이어지는 도이다.
도 101은 슬라이스 헤더의 신택스의 다른 예를 나타내는 도이다.
도 102는 슬라이스 헤더의 신택스의 다른 예를 나타내는, 도 101에 이어지는 도이다.
도 103은 슬라이스 헤더의 신택스의 다른 예를 나타내는, 도 102에 이어지는 도이다.
도 104는 화상 부호화 장치의 주된 구성예를 도시하는 블록도이다.
도 105는 베이스 레이어 화상 부호화부의 주된 구성예를 도시하는 블록도이다.
도 106은 인핸스먼트 레이어 화상 부호화부의 주된 구성예를 도시하는 블록도이다.
도 107은 인터 예측부의 주된 구성예를 도시하는 블록도이다.
도 108은 화상 부호화 처리의 흐름의 예를 설명하는 흐름도이다.
도 109는 베이스 레이어 부호화 처리의 흐름의 예를 설명하는 흐름도이다.
도 110은 인핸스먼트 레이어 부호화 처리의 흐름의 예를 설명하는 흐름도이다.
도 111은 베이스 레이어 움직임 정보 참조 처리의 흐름의 예를 설명하는 흐름도이다.
도 112는 화상 복호 장치의 주된 구성예를 도시하는 블록도이다.
도 113은 베이스 레이어 화상 복호부의 주된 구성예를 도시하는 블록도이다.
도 114는 인핸스먼트 레이어 화상 복호부의 주된 구성예를 도시하는 블록도이다.
도 115는 인터 예측부의 주된 구성예를 도시하는 블록도이다.
도 116은 화상 복호 처리의 흐름의 예를 설명하는 흐름도이다.
도 117은 베이스 레이어 복호 처리의 흐름의 예를 설명하는 흐름도이다.
도 118은 인핸스먼트 레이어 복호 처리의 흐름의 예를 설명하는 흐름도이다.
도 119는 컴퓨터의 주된 구성예를 도시하는 블록도이다.
도 120은 텔레비전 장치의 개략적인 구성의 일례를 나타내는 블록도이다.
도 121은 휴대 전화기의 개략적인 구성의 일례를 나타내는 블록도이다.
도 122는 기록 재생 장치의 개략적인 구성의 일례를 나타내는 블록도이다.
도 123은 촬상 장치의 개략적인 구성의 일례를 나타내는 블록도이다.
도 124는 스케일러블 부호화 이용의 일례를 나타내는 블록도이다.
도 125는 스케일러블 부호화 이용의 다른 예를 나타내는 블록도이다.
도 126은 스케일러블 부호화 이용의 또 다른 예를 도시하는 블록도이다.
도 127은 비디오 세트의 개략적인 구성의 일례를 나타내는 블록도이다.
도 128은 비디오 프로세서의 개략적인 구성의 일례를 나타내는 블록도이다.
도 129는 비디오 프로세서의 개략적인 구성의 다른 예를 나타내는 블록도이다.
도 130은 콘텐츠 재생 시스템의 구성을 나타낸 설명도이다.
도 131은 콘텐츠 재생 시스템에서의 데이터의 흐름을 나타낸 설명도이다.
도 132는 MPD의 구체예를 나타낸 설명도이다.
도 133은 콘텐츠 재생 시스템의 콘텐츠 서버의 구성을 도시한 기능 블록도이다.
도 134는 콘텐츠 재생 시스템의 콘텐츠 재생 장치의 구성을 도시한 기능 블록도이다.
도 135는 콘텐츠 재생 시스템의 콘텐츠 서버의 구성을 도시한 기능 블록도이다.
도 136은 무선 통신 시스템의 각 장치에 의한 통신 처리 예를 나타내는 시퀀스 차트이다.
도 137은 무선 통신 시스템의 각 장치에 의한 통신 처리 예를 나타내는 시퀀스 차트이다.
도 138은 무선 통신 시스템의 각 장치에 의한 통신 처리에 있어서 송수신되는 프레임 포맷(frame format)의 구성예를 모식적으로 도시하는 도이다.
도 139는 무선 통신 시스템의 각 장치에 의한 통신 처리 예를 나타내는 시퀀스 차트이다.
이하, 본 발명을 실시하기 위한 형태(이하, 실시 형태라 함)에 대하여 설명한다. 또한, 설명은 이하의 순서로 행한다.
0. 개요
1. 제1 실시 형태(화상 부호화 장치, 화상 복호 장치)
2. 제2 실시 형태(화상 부호화 장치, 화상 복호 장치)
3. 제3 실시 형태(화상 부호화 장치, 화상 복호 장치)
4. 제4 실시 형태(계층 화상의 부호화·복호)
5. 개요 2(인트라 예측)
6. 제5 실시 형태(스케일러블 화상 부호화 장치)
7. 제6 실시 형태(스케일러블 화상 복호 장치)
8. 개요 3(예측 방향 제어)
9. 제7 실시 형태(화상 부호화 장치)
10. 제8 실시 형태(화상 복호 장치)
11. 제9 실시 형태(컴퓨터)
12. 응용예
13. 스케일러블 부호화의 응용예
14. 세트·유닛·모듈·프로세서
15. MPEG-DASH의 콘텐츠 재생 시스템의 응용예
16. Wi-Fi 규격의 무선 통신 시스템의 응용예
<0. 개요>
<부호화 방식>
이하에서는, HEVC(High Efficiency Video Coding) 방식의 화상의 부호화·복호에 적용하는 경우를 예로 들어 본 기술을 설명한다. AVC(Advanced Video Coding)나 HEVC 등의 화상 부호화에서는, 시간 방향(프레임간)의 상관을 이용한 움직임 예측이 행하여진다.
<코딩 유닛>
AVC 방식에서는, 매크로 블록과 서브매크로 블록에 의한 계층 구조가 규정되어 있다. 그러나, 16x16 화소의 매크로 블록에서는, 차세대 부호화 방식의 대상이 되는, UHD(Ultra High Definition; 4000x2000 화소)와 같은 큰 화면 프레임에 대하여 최적은 아니다.
이에 반해, HEVC 방식에서는, 도 1에 도시되는 바와 같이, 코딩 유닛(CU(Coding Unit))이 규정되어 있다.
CU는, Coding Tree Block(CTB)이라고도 불리며, AVC 방식에서의 매크로 블록과 마찬가지의 역할을 하는, 픽처 단위의 화상의 부분 영역이다. 후자는, 16x16 화소의 크기로 고정되어 있는 데 반해, 전자의 크기는 고정되어 있지 않아, 각각의 시퀀스에 있어서, 화상 압축 정보 중에서 지정되게 된다.
예를 들어, 출력이 되는 부호화 데이터에 포함되는 시퀀스 파라미터 세트(SPS(Sequence Parameter Set))에 있어서, CU의 최대 사이즈(LCU(Largest Coding Unit))와 최소 사이즈((SCU(Smallest Coding Unit))가 규정된다.
각각의 LCU 내에서는, SCU의 사이즈를 하회하지 않는 범위에서, split-flag=1로 함으로써, 보다 작은 사이즈의 CU로 분할할 수 있다. 도 1의 예에서는, LCU의 크기가 128이며, 최대 계층 심도가 5가 된다. 2Nx2N의 크기의 CU는, split_flag의 값이 「1」일 때, 하나 아래의 계층이 되는, NxN의 크기의 CU로 분할된다.
또한, CU는, 인트라 또는 인터 예측의 처리 단위가 되는 영역(픽처 단위의 화상의 부분 영역)인 프레딕션 유닛(Prediction Unit(PU))으로 분할되고, 또한, 직교 변환의 처리 단위가 되는 영역(픽처 단위의 화상 부분 영역)인, 트랜스폼 유닛(Transform Unit(TU))으로 분할된다. 현재, HEVC 방식에서는, 4x4 및 8x8 외에, 16x16 및 32x32 직교 변환을 사용하는 것이 가능하다.
이상의 HEVC 방식과 같이, CU를 정의하고, 그 CU를 단위로 해서 각종 처리를 행하는 부호화 방식의 경우, AVC 방식에서의 매크로 블록은 LCU에 상당하고, 블록(서브블록)은 CU에 상당한다고 생각할 수 있다. 또한, AVC 방식에서의 움직임 보상 블록은, PU에 상당한다고 생각할 수 있다. 단, CU는, 계층 구조를 가지므로, 그 최상위 계층의 LCU의 사이즈는, 예를 들어 128x128 화소와 같이, AVC 방식의 매크로 블록보다 크게 설정되는 것이 일반적이다.
따라서, 이하, LCU는, AVC 방식에서의 매크로 블록도 포함하는 것으로 하고, CU는, AVC 방식에서의 블록(서브블록)도 포함하는 것으로 한다. 즉, 이하의 설명에 사용하는 「블록」은, 픽처 내의 임의의 부분 영역을 나타내고, 그 크기, 형상, 및 특성 등은 한정되지 않는다. 즉, 「블록」에는, 예를 들어, TU, PU, SCU, CU, LCU, 서브블록, 매크로 블록, 또는 슬라이스 등 임의의 영역(처리 단위)이 포함된다. 물론, 이들 이외의 부분 영역(처리 단위)도 포함된다. 사이즈나 처리 단위 등을 한정할 필요가 있는 경우에는, 적절히 설명한다.
<모드 선택>
그런데, AVC 그리고 HEVC 부호화 방식에 있어서, 더 높은 부호화 효율을 달성하기 위해서는, 적절한 예측 모드의 선택이 중요하다.
이러한 선택 방식의 예로서, JM(Joint Model)이라고 불리는 H.264/MPEG-4 AVC의 참조 소프트웨어(http://iphome.hhi.de/suehring/tml/index.htm에서 공개되어 있음)에 실장되어 있는 방법을 들 수 있다.
JM에서는, 이하에 설명하는, High Complexity Mode와, Low Complexity Mode의 2가지의 모드 판정 방법을 선택하는 것이 가능하다. 어느 쪽이든, 각각의 예측 모드 Mode에 관한 비용 함수값을 산출하여, 이것을 최소로 하는 예측 모드를 당해 블록 내지 매크로 블록에 대한 최적 모드로서 선택한다.
High Complexity Mode에서의 비용 함수는, 이하의 식 (1)과 같이 나타낸다.
Figure 112015017733641-pct00001
여기서, Ω은, 당해 블록 내지 매크로 블록을 부호화하기 위한 후보 모드의 전체 집합, D는, 당해 예측 모드에서 부호화했을 경우의, 복호 화상과 입력 화상의 차분 에너지이다. λ는, 양자화 파라미터의 함수로서 부여되는 Lagrange 미정 승수이다. R은, 직교 변환 계수를 포함한, 당해 모드에서 부호화했을 경우의 총 부호량이다.
즉, High Complexity Mode에서의 부호화를 행하기 위해서는, 상기 파라미터 D 및 R을 산출하기 위해서, 모든 후보 모드에 의해, 일단, 가(假) 인코드 처리를 행할 필요가 있어, 더 높은 연산량을 필요로 한다.
Low Complexity Mode에서의 비용 함수는, 이하의 식 (2)와 같이 나타낸다.
Figure 112015017733641-pct00002
여기서, D는, High Complexity Mode의 경우와 달리, 예측 화상과 입력 화상의 차분 에너지가 된다. QP2Quant(QP)는, 양자화 파라미터(QP)의 함수로서 부여되고, HeaderBit는, 직교 변환 계수를 포함하지 않는, 움직임 벡터나, 모드와 같은, Header에 속하는 정보에 관한 부호량이다.
즉, Low Complexity Mode에서는, 각각의 후보 모드에 대해서 예측 처리를 행할 필요가 있지만, 복호 화상까지는 필요 없기 때문에, 부호화 처리까지 행할 필요는 없다. 이로 인해, High Complexity Mode보다 낮은 연산량으로의 실현이 가능하다.
<다시점 화상>
그런데, HEVC에서는, 도 2에 도시되는 다시점 화상과 같은 복수의 레이어를 포함하는 동화상을 부호화·복호할 수 있다. 다시점 동화상은, 각 픽처가, 서로 시차를 갖는 복수의 화상을 포함한다. 각 시점의 화상 군(동화상)을 뷰(레이어)라고 칭한다. 도 2의 예의 경우, 동화상은, 뷰 0 내지 뷰 2의 3개의 뷰를 포함한다. 즉, 어떤 POC의 픽처는, 뷰 0의 화상, 뷰 1의 화상, 및 뷰 2의 화상을 포함한다. 도 2에서, 뷰 0(view_id=0)은, 베이스 뷰(Base view)라고도 칭한다. 또한, 뷰 1(view_id=1)이나 뷰 2(view_id=2)는, 논베이스 뷰(non-base view)라고도 칭한다.
<예측 움직임 벡터>
또한, HEVC에서는, 화상을 부호화·복호할 때에, 부호화 효율의 향상을 위해 움직임 예측·보상 처리가 이용되지만, 더욱, 부호화 효율을 향상시키기 위해서, 그 움직임 예측·보상 처리에서는, 처리 대상인 커런트 블록의 움직임 벡터를 주변의 블록의 움직임 벡터를 사용해서 예측하여, 커런트 블록의 움직임 벡터와 그 예측 움직임 벡터의 차분 움직임 벡터를 구하고, 그 차분 움직임 벡터를 전송한다.
움직임 벡터의 예측은, 주변의 블록의 움직임 벡터로부터 복수의 후보를 생성하고, 그 중에서 최적의 것을 선택함으로써 행하여진다.
HEVC에서는, 커런트 블록의, 공간적으로 주변의 블록의 움직임 벡터를 사용하여, 예측 움직임 벡터의 후보를 생성할 수 있다. 공간적으로 주변의 블록이란, 커런트 블록과 동일한 화상(동일한 POC의 동일 뷰의 화상) 내의, 커런트 블록 근방의 블록이다.
또한, HEVC에서는, 커런트 블록의, 시간적으로 주변의 블록의 움직임 벡터를 사용하여, 예측 움직임 벡터의 후보를 생성할 수도 있다(TMVP(Temporal Motion Vector Prediction)). 시간적으로 주변의 블록이란, 커런트 블록과 동일 뷰의 서로 다른 POC의 화상의, 커런트 블록에 대응하는(예를 들어 동일한 위치의) 블록(코러-게이티드 블록이라고도 함)이다.
또한, 도 2에 도시된 바와 같은 다시점 화상을 부호화하는 경우, HEVC에서는, 커런트 블록의, 뷰(레이어)간적으로 주변의 블록의 움직임 벡터를 사용하여, 예측 움직임 벡터의 후보를 생성할 수도 있다(IVMP(Inter-view motion prediction)). 뷰(레이어)간적으로 주변의 블록이란, 커런트 블록과 동일 POC의 서로 다른 뷰의 화상의, 커런트 블록에 대응하는(예를 들어 동일한 위치의) 블록(콜로케이티드 블록이라고도 함)이다. 예를 들어 도 3에 도시된 바와 같이, 뷰간의 상관성을 이용하여, 하나 전에 처리된 뷰의 움직임 벡터가 참조된다.
이상과 같이 하여, 보다 예측 정밀도가 높은, 보다 많은 후보를 얻을 수 있게 함으로써, 보다 예측 정밀도가 높은 예측 벡터를 얻을 수 있어, 보다 부호화 효율을 향상시킬 수 있다.
그러나, TMVP나 IVMP에서는, 커런트 픽처의 커런트 뷰의 화상 이외의 움직임 벡터가 참조된다. 따라서, TMVP나 IVMP에서는, 부호화나 복호 시에 얻어지는 각 블록의 움직임 벡터를, 참조되지 않게 될 때까지(예를 들어, 다음의 뷰의 화상의 움직임 예측·보상 처리나 움직임 보상 처리가 종료될 때까지) 유지할 필요가 있다. 그리고, 그를 위한 메모리의 용량은, 상정되는 최댓값 이상을 준비할 필요가 있다.
HEVC의 경우, TMVP를 위해 유지하는 움직임 벡터를 압축하여, 움직임 벡터의 정밀도를 저감시킬 수 있다. 그러나, IVMP에서 참조되는 움직임 벡터는, 압축하지 않고 이용되고 있었다. 따라서, IVMP를 위한 움직임 벡터는, 압축하지 않고 유지할 필요가 있었다. 그로 인해, IVMP를 위한 움직임 벡터를 유지하는 메모리는, TMVP를 위해 움직임 벡터를 유지하는 메모리에 비해 증대될 우려가 있었다. 즉, 부호화·복호에 필요한 기억 용량의 증대를 억제할 우려가 있었다.
도 4에 그 구체예를 나타낸다. 도 4에 도시된 바와 같이, TMVP에서는, 커런트 레이어(뷰)의 움직임 벡터(압축 후 MV)가 이용되고, IVMP에서는, 하나 전의 레이어(다른 레이어)의 움직임 벡터(압축 전 MV)가 이용된다.
따라서, 이 경우, TMVP용의, 16x16 정밀도의 움직임 벡터를 기억하는 메모리(V0 MV Memory 내지 V1 MV Memory) 이외에, IVMP용의 움직임 벡터를 기억하는 메모리가 필요하게 된다. 게다가, 그 움직임 벡터는 압축되어 있지 않기 때문에, TMVP에서 참조되는 움직임 벡터를 기억하는 메모리보다 큰 용량이 필요하였다.
메모리에 필요한 용량이 증대됨으로써, 설계나 제조의 비용이 증대될 우려가 있었다. 또한, 소비 전력의 증대나, 부하의 증대를 초래할 우려가 있었다.
<IVMP용의 움직임 벡터의 압축>
따라서, IVMP용의 움직임 벡터도 압축(예를 들어, 소정의 씨닝률로 씨닝)하도록 한다.
예를 들어 복호의 경우, 커런트 레이어의 복호에 있어서 움직임 보상을 행하고, 그 움직임 보상에 의해 재구축되어, 다른 레이어의 복호에서의 움직임 보상에 이용되는 커런트 레이어의 움직임 벡터를 압축(예를 들어, 소정의 씨닝률로 씨닝)하도록 한다. 환언하면, 다른 레이어의 복호에서의 움직임 보상에 있어서 재구축되어 압축된(예를 들어, 소정의 씨닝률로 씨닝된) 움직임 벡터를 사용하여, 커런트 레이어의 복호에서의 움직임 보상을 행하도록 한다.
또한, 예를 들어 부호화의 경우, 커런트 레이어의 부호화에 있어서 움직임 예측·보상을 행하고, 그 움직임 예측·보상에 의해 생성되어, 다른 레이어의 부호화에서의 움직임 예측·보상에 이용되는 커런트 레이어의 움직임 벡터를 압축(예를 들어, 소정의 씨닝률로 씨닝)하도록 한다. 환언하면, 다른 레이어의 부호화에서의 움직임 예측·보상에 있어서 생성되어 압축된(예를 들어, 소정의 씨닝률로 씨닝된) 움직임 벡터를 사용하여, 커런트 레이어의 부호화에서의 움직임 예측·보상을 행하도록 한다.
이와 같이 함으로써, IVMP용의 움직임 벡터를 기억하기 위해 필요한 메모리의 용량의 증대를 억제할 수 있다. 즉, 부호화·복호에 필요한 기억 용량의 증대를 억제할 수 있다.
<1. 제1 실시 형태>
<IVMP용의 움직임 벡터의 압축>
이상과 같은 움직임 벡터의 압축에 있어서, 도 5에 도시되는 바와 같이, IVMP용의 움직임 벡터도 TMVP용의 움직임 벡터와 동일한 압축률로 압축(예를 들어, TMVP용의 움직임 벡터와 동일한 씨닝률로 씨닝)하도록 해도 된다. 즉, 압축에 의해, IVMP용의 움직임 벡터와 TMVP용의 움직임 벡터를 동일한 정밀도로 하도록 해도 된다. 이와 같이 함으로써, TMVP용의 움직임 벡터와 IVMP용의 움직임 벡터를 공통화할 수 있어, 필요한 메모리의 용량 증대를 억제할 수 있다.
예를 들어, 도 4의 예의 경우, 디코더(V0 (Base) Decoder, V1 (Depend) Decorder, V2 (Depend) Decorder)는, 복호에 의해 최고 4x4 정밀도의 움직임 벡터를 재구축하고, 움직임 벡터 압축부((V0 내지 V2) MV Compressor)는, 그것을 16x16 정밀도로 압축한다. 따라서, IVMP용의 움직임 벡터를 기억하는 메모리((V0 내지 V2) Tempral MV Memory)는, 4x4 정밀도의 움직임 벡터를 1 화면분 기억할 수 있는 용량이 필요하다.
도 5에 도시되는 예와 같이, IVMP용의 움직임 벡터도, 움직임 벡터 압축부((V0 내지 V2) MV Compressor)에 의해 16x16 정밀도로 압축(예를 들어 씨닝)함으로써, 이 4x4 정밀도의 움직임 벡터를 1 화면분 기억할 수 있는 용량의 메모리((V0 내지 V2) Temporal MV Memory)를 생략할 수 있다.
또한, 이러한 움직임 벡터의 공통화에 의해, 압축 처리(예를 들어 씨닝 처리)도 공통화할 수 있으므로, 움직임 벡터의 압축 처리에 의한 부하의 증대를 억제할 수 있다.
이하에, 이 압축 방법에 대해서 보다 구체적으로 설명한다.
또한, 이하에서는, 부호화·복호 대상의 동화상은, 도 2에 도시된 바와 같이, 뷰 0 내지 뷰 2의 3뷰(레이어)의 동화상인 것으로 한다. 또한, 이 동화상의 각 픽처는 소정의 순서대로 처리되고, 각 픽처에 있어서, 뷰 0의 화상, 뷰 1의 화상, 및 뷰 2의 화상은, 이 순서대로 처리되는 것으로 한다.
<화상 부호화 장치>
도 6은, V0 화상 부호화 장치의 주된 구성예를 도시하는 블록도이다. 도 7은, V1 화상 부호화 장치의 주된 구성예를 도시하는 블록도이다. 도 8은, V2 화상 부호화 장치의 주된 구성예를 도시하는 블록도이다.
도시하지 않은 화상 부호화 장치(100)는, 도 2에 도시되는 다시점 화상과 같은 복수 레이어를 포함하는 동화상을 부호화한다. 이 화상 부호화 장치(100)는, 다시점 화상의 각 뷰를 부호화하기 위해서, 도 6의 V0 화상 부호화 장치(100-0), 도 7의 V1 화상 부호화 장치(100-1), 및 도 8의 V2 화상 부호화 장치(100-3)를 갖는다. V0 화상 부호화 장치(100-0)는, 뷰 0의 화상을 부호화한다. V1 화상 부호화 장치(100-1)는, 뷰 1의 화상을 부호화한다. V2 화상 부호화 장치(100-2)는, 뷰 2의 화상을 부호화한다.
도 6에 도시된 바와 같이, V0 화상 부호화 장치(100-0)는, A/D 변환부(101-0), 화면 재배열 버퍼(102-0), 연산부(103-0), 직교 변환부(104-0), 양자화부(105-0), 가역 부호화부(106-0), 축적 버퍼(107-0), 역양자화부(108-0), 및 역직교 변환부(109-0)를 갖는다. 또한, V0 화상 부호화 장치(100-0)는, 연산부(110-0), 루프 필터(111-0), 디코드 픽처 버퍼(112-0), 화면 내 예측부(113-0), 움직임 예측·보상부(114-0), 예측 화상 선택부(115-0), 및 레이트 제어부(116-0)를 갖는다.
또한, 도 7에 도시된 바와 같이, V1 화상 부호화 장치(100-1)는, A/D 변환부(101-1), 화면 재배열 버퍼(102-1), 연산부(103-1), 직교 변환부(104-1), 양자화부(105-1), 가역 부호화부(106-1), 축적 버퍼(107-1), 역양자화부(108-1), 및 역직교 변환부(109-1)를 갖는다. 또한, V1 화상 부호화 장치(100-1)는, 연산부(110-1), 루프 필터(111-1), 디코드 픽처 버퍼(112-1), 화면 내 예측부(113-1), 움직임 예측·보상부(114-1), 예측 화상 선택부(115-1), 및 레이트 제어부(116-1)를 갖는다.
또한, 도 8에 도시된 바와 같이, V2 화상 부호화 장치(100-2)는, A/D 변환부(101-2), 화면 재배열 버퍼(102-2), 연산부(103-2), 직교 변환부(104-2), 양자화부(105-2), 가역 부호화부(106-2), 축적 버퍼(107-2), 역양자화부(108-2), 및 역직교 변환부(109-2)를 갖는다. 또한, V2 화상 부호화 장치(100-2)는, 연산부(110-2), 루프 필터(111-2), 디코드 픽처 버퍼(112-2), 화면 내 예측부(113-2), 움직임 예측·보상부(114-2), 예측 화상 선택부(115-2), 및 레이트 제어부(116-2)를 갖는다.
이하에서, A/D 변환부(101-0) 내지 A/D 변환부(101-2)를 서로 구별하여 설명할 필요가 없을 경우, 간단히 A/D 변환부(101)라고 칭한다. 또한, 화면 재배열 버퍼(102-0) 내지 화면 재배열 버퍼(102-2)를 서로 구별하여 설명할 필요가 없을 경우, 간단히 화면 재배열 버퍼(102)라고 칭한다. 또한, 연산부(103-0) 내지 연산부(103-2)를 서로 구별하여 설명할 필요가 없을 경우, 간단히 연산부(103)라고 칭한다. 또한, 직교 변환부(104-0) 내지 직교 변환부(104-2)를 서로 구별하여 설명할 필요가 없을 경우, 간단히 직교 변환부(104)라고 칭한다. 또한, 양자화부(105-0) 내지 양자화부(105-2)를 서로 구별하여 설명할 필요가 없을 경우, 간단히 양자화부(105)라고 칭한다. 또한, 가역 부호화부(106-0) 내지 가역 부호화부(106-2)를 서로 구별하여 설명할 필요가 없을 경우, 간단히 가역 부호화부(106)라고 칭한다. 또한, 축적 버퍼(107-0) 내지 축적 버퍼(107-2)를 서로 구별하여 설명할 필요가 없을 경우, 간단히 축적 버퍼(107)라고 칭한다. 또한, 역양자화부(108-0) 내지 역양자화부(108-2)를 서로 구별하여 설명할 필요가 없을 경우, 간단히 역양자화부(108)라고 칭한다. 또한, 역직교 변환부(109-0) 내지 역직교 변환부(109-2)를 서로 구별하여 설명할 필요가 없을 경우, 간단히 역직교 변환부(109)라고 칭한다.
또한, 연산부(110-0) 내지 연산부(110-2)를 서로 구별하여 설명할 필요가 없을 경우, 간단히 연산부(110)라고 칭한다. 또한, 루프 필터(111-0) 내지 루프 필터(111-2)를 서로 구별하여 설명할 필요가 없을 경우, 간단히 루프 필터(111)라고 칭한다. 또한, 디코드 픽처 버퍼(112-0) 내지 디코드 픽처 버퍼(112-2)를 서로 구별하여 설명할 필요가 없을 경우, 간단히 디코드 픽처 버퍼(112)라고 칭한다. 또한, 화면 내 예측부(113-0) 내지 화면 내 예측부(113-2)를 서로 구별하여 설명할 필요가 없을 경우, 간단히 화면 내 예측부(113)라고 칭한다. 또한, 움직임 예측·보상부(114-0) 내지 움직임 예측·보상부(114-2)를 서로 구별하여 설명할 필요가 없을 경우, 간단히 움직임 예측·보상부(114)라고 칭한다. 또한, 예측 화상 선택부(115-0) 내지 예측 화상 선택부(115-2)를 서로 구별하여 설명할 필요가 없을 경우, 간단히 예측 화상 선택부(115)라고 칭한다. 또한, 레이트 제어부(116-0) 내지 레이트 제어부(116-2)를 서로 구별하여 설명할 필요가 없을 경우, 간단히 레이트 제어부(116)라고 칭한다.
V0 화상 부호화 장치(100-0)는, 또한, V0 움직임 벡터 압축부(121-0) 및 V0 움직임 벡터 메모리(122-0)를 갖는다. V1 화상 부호화 장치(100-1)는, 또한, V1 움직임 벡터 압축부(121-1) 및 V1 움직임 벡터 메모리(122-1)를 갖는다. V2 화상 부호화 장치(100-2)는, 또한, V2 움직임 벡터 압축부(121-2) 및 V2 움직임 벡터 메모리(122-2)를 갖는다.
A/D 변환부(101)는, 입력된 화상 데이터(A/D 변환부(101-0)의 경우, 뷰 0의 화상 데이터, A/D 변환부(101-1)의 경우, 뷰 1의 화상 데이터, A/D 변환부(101-2)의 경우, 뷰 2의 화상 데이터)를 A/D 변환하고, 변환 후의 화상 데이터(디지털 데이터)를 화면 재배열 버퍼(102)에 공급하여 기억시킨다.
화면 재배열 버퍼(102)는, 기억한 표시의 순서의 프레임의 화상을, GOP(Group Of Picture)에 따라, 부호화를 위한 프레임 순서대로 재배열한다. 즉, 화면 재배열 버퍼(102)는, POC순으로 배열하는 각 픽처를, 처리순으로 재배열한다. 화면 재배열 버퍼(102)는, 프레임의 순서를 재배열한 화상을 연산부(103)에 공급한다. 또한, 화면 재배열 버퍼(102)는, 프레임의 순서를 재배열한 화상을, 화면 내 예측부(113) 및 움직임 예측·보상부(114)에도 공급한다.
연산부(103)는, 화면 재배열 버퍼(102)로부터 판독된 화상으로부터, 예측 화상 선택부(115)를 통해 화면 내 예측부(113) 또는 움직임 예측·보상부(114)로부터 공급되는 예측 화상을 감산하고, 그 차분 정보를 직교 변환부(104)에 출력한다. 예를 들어, 인트라 부호화가 행하여지는 화상의 경우, 연산부(103)는, 화면 재배열 버퍼(102)로부터 판독된 화상으로부터, 화면 내 예측부(113)로부터 공급되는 예측 화상을 감산한다. 또한, 예를 들어, 인터 부호화가 행하여지는 화상의 경우, 연산부(103)는, 화면 재배열 버퍼(102)로부터 판독된 화상으로부터, 움직임 예측·보상부(114)로부터 공급되는 예측 화상을 감산한다.
직교 변환부(104)는, 연산부(103)로부터 공급되는 차분 정보에 대하여 이산 코사인 변환이나 카루넨 루베 변환 등의 직교 변환을 실시한다. 직교 변환부(104)는, 그 변환 계수를 양자화부(105)에 공급한다.
양자화부(105)는, 직교 변환부(104)로부터 공급되는 변환 계수를 양자화한다. 양자화부(105)는, 레이트 제어부(116)로부터 공급되는 부호량의 목표 값에 관한 정보에 기초하여 양자화 파라미터를 설정하고, 그 양자화를 행한다. 양자화부(105)는, 양자화된 변환 계수를 가역 부호화부(106)에 공급한다.
가역 부호화부(106)는, 양자화부(105)에 있어서 양자화된 변환 계수를 임의의 부호화 방식으로 부호화한다. 계수 데이터는, 레이트 제어부(116)의 제어 하에서 양자화되어 있으므로, 이 부호량은, 레이트 제어부(116)가 설정한 목표 값이 된다(또는 목표 값에 근사함).
또한, 가역 부호화부(106)는, 인트라(화면 내) 예측의 모드를 나타내는 정보 등을 화면 내 예측부(113)로부터 취득하고, 인터(화면간) 예측의 모드를 나타내는 정보나 차분 움직임 벡터 정보 등을 움직임 예측·보상부(114)로부터 취득한다.
가역 부호화부(106)는, 이들 각종 정보를 임의의 부호화 방식으로 부호화하여, 부호화 데이터(부호화 스트림이라고도 함)의 헤더 정보의 일부로 한다(다중화함). 가역 부호화부(106)는, 부호화하여 얻어진 부호화 데이터를 축적 버퍼(107)에 공급하여 축적시킨다.
가역 부호화부(106)의 부호화 방식으로서는, 예를 들어, 가변장 부호화 또는 산술 부호화 등을 들 수 있다. 가변장 부호화로서는, 예를 들어, H.264/AVC 방식으로 정해져 있는 CAVLC(Context-Adaptive Variable Length Coding) 등을 들 수 있다. 산술 부호화로서는, 예를 들어, CABAC(Context-Adaptive Binary Arithmetic Coding) 등을 들 수 있다.
축적 버퍼(107)는, 가역 부호화부(106)로부터 공급된 부호화 데이터를, 일시적으로 유지한다. 축적 버퍼(107)는, 소정의 타이밍에 있어서, 유지하고 있는 부호화 데이터를, 예를 들어, 후단의 도시하지 않은 기록 장치(기록 매체)나 전송로 등에 출력한다. 즉, 축적 버퍼(107)는, 부호화 데이터를 전송하는 전송부이기도 하다.
또한, 양자화부(105)에서 양자화된 변환 계수는, 역양자화부(108)에도 공급된다. 역양자화부(108)는, 그 양자화된 변환 계수를, 양자화부(105)에 의한 양자화에 대응하는 방법으로 역양자화한다. 역양자화부(108)는, 얻어진 변환 계수를, 역직교 변환부(109)에 공급한다.
역직교 변환부(109)는, 역양자화부(108)로부터 공급된 변환 계수를, 직교 변환부(104)에 의한 직교 변환 처리에 대응하는 방법으로 역직교 변환한다. 역직교 변환된 출력(복원된 차분 정보)는 연산부(110)에 공급된다.
연산부(110)는, 역직교 변환부(109)로부터 공급된 역직교 변환 결과인, 복원된 차분 정보에, 예측 화상 선택부(115)를 통해 화면 내 예측부(113) 또는 움직임 예측·보상부(114)로부터의 예측 화상을 가산하여, 국부적으로 복호된 화상(복호 화상)을 얻는다. 그 복호 화상은, 루프 필터(111)에 공급된다.
루프 필터(111)는, 디블록 필터나 적응 루프 필터 등을 포함하고, 연산부(110)로부터 공급되는 복호 화상에 대하여 적절히 필터 처리를 행한다. 예를 들어, 루프 필터(111)는, 복호 화상에 대하여 디블록 필터 처리를 행함으로써 복호 화상의 블록 왜곡을 제거한다. 또한, 예를 들어, 루프 필터(111)는, 그 디블록 필터 처리 결과(블록 왜곡의 제거가 행하여진 복호 화상)에 대하여 위너 필터(Wiener Filter)를 사용해서 루프 필터 처리를 행함으로써 화질 개선을 행한다.
또한, 루프 필터(111)가, 복호 화상에 대하여 임의의 필터 처리를 행하도록 해도 된다. 또한, 루프 필터(111)는 필요에 따라, 필터 처리에 사용한 필터 계수 등의 정보를 가역 부호화부(106)에 공급하고, 그것을 부호화시키도록 할 수도 있다.
루프 필터(111)는, 필터 처리 결과(이하, 복호 화상이라고 함)를 디코드 픽처 버퍼(112)에 공급한다. 또한, 루프 필터(111)는, 연산부(110)로부터 공급되는 재구성 화상을, 화면 내 예측부(113)에 공급한다.
디코드 픽처 버퍼(112)는, 루프 필터(111)로부터 공급되는 복호 화상을 각각 기억한다. 또한, 디코드 픽처 버퍼(112)는, 그 화상의 뷰 ID 및 POC를 기억한다.
디코드 픽처 버퍼(112)는, 소정의 타이밍에 있어서, 또는, 움직임 예측·보상부(114) 등의 외부로부터의 요구에 기초하여, 기억하고 있는 복호 화상(및 그 화상의 뷰 ID 및 POC)을 당해 뷰용의 움직임 예측·보상부(114)에 공급한다.
또한, 디코드 픽처 버퍼(112)는, 소정의 타이밍에 있어서, 또는, 움직임 예측·보상부(114) 등의 외부로부터의 요구에 기초하여, 기억하고 있는 복호 화상(및 그 화상의 뷰 ID 및 POC)을, 다음으로 처리되는 뷰용의 움직임 예측·보상부(114)에도 공급한다. 예를 들어, 디코드 픽처 버퍼(112-0)는, 복호 화상을, 움직임 예측·보상부(114-0) 및 움직임 예측·보상부(114-1)에 공급한다. 또한, 예를 들어, 디코드 픽처 버퍼(112-1)는, 복호 화상을, 움직임 예측·보상부(114-1) 및 움직임 예측·보상부(114-2)에 공급한다. 단, 뷰 2는 마지막으로 처리되는 뷰이므로, 디코드 픽처 버퍼(112-2)는, 복호 화상을, 움직임 예측·보상부(114-2)에 공급한다.
화면 내 예측부(113)는, 루프 필터(111)로부터, 처리 대상 영역(커런트 블록)의 주변에 위치하는 주변 영역(주변 블록)의 화상을 취득하면, 그 주변 블록의 화상의 화소값을 사용하여, 기본적으로 프레딕션 유닛(PU)을 처리 단위로 해서 예측 화상을 생성하는 인트라 예측(화면 내 예측)을 행한다. 화면 내 예측부(113)는, 미리 준비된 복수의 모드(인트라 예측 모드)에서 이 인트라 예측을 행한다.
화면 내 예측부(113)는, 후보가 되는 모든 인트라 예측 모드에서 예측 화상을 생성하고, 화면 재배열 버퍼(102)로부터 공급되는 입력 화상을 사용하여 각 예측 화상의 비용 함수값을 평가하고, 최적의 모드를 선택한다. 화면 내 예측부(113)는, 최적의 인트라 예측 모드를 선택하면, 그 최적의 모드에서 생성된 예측 화상을, 예측 화상 선택부(115)에 공급한다.
또한, 화면 내 예측부(113)는, 최적의 인트라 예측 모드 등, 인트라 예측에 관한 정보를 포함하는 인트라 예측 정보를, 적절히 가역 부호화부(106)에 공급하여 부호화시킨다.
움직임 예측·보상부(114)는, 커런트 블록에 대해 움직임 예측을 행하여 움직임 벡터를 생성하고, 생성된 움직임 벡터에 따라서 보상 처리를 행하여 커런트 블록의 예측 화상(인터 예측 화상 정보)을 생성한다. 이 움직임 예측·보상 처리에 있어서, 움직임 예측·보상부(114)는, 후보가 되는 모든 인터 예측 모드에서 예측 화상을 생성하고, 각 예측 화상의 비용 함수값을 평가하여, 최적의 모드를 선택한다. 움직임 예측·보상부(114)는, 최적의 인터 예측 모드를 선택하면, 그 최적의 모드에서 생성된 예측 화상을, 예측 화상 선택부(115)에 공급한다.
움직임 예측·보상부(114)는, 디코드 픽처 버퍼(112)로부터 취득한 디코드 화상을 사용하여, 이상과 같은 움직임 예측·보상 처리를 행한다.
최초로 처리되는 뷰의 경우, 움직임 예측·보상부(114)는, 당해 뷰의 화상을 기억하는 디코드 픽처 버퍼(112)로부터 취득한 디코드 화상을 사용하여, 움직임 예측·보상 처리를 행한다. 예를 들어, 움직임 예측·보상부(114-0)는, 디코드 픽처 버퍼(112-0)으로부터 취득한 디코드 화상을 사용하여, 움직임 예측·보상 처리를 행한다.
2번째 이후에 처리되는 뷰의 경우, 움직임 예측·보상부(114)는, 당해 뷰의 화상을 기억하는 디코드 픽처 버퍼(112), 및 하나 전에 처리된 뷰의 화상을 기억하는 디코드 픽처 버퍼(112)로부터 취득한 디코드 화상을 사용하여, 움직임 예측·보상 처리를 행한다. 예를 들어, 움직임 예측·보상부(114-1)는, 디코드 픽처 버퍼(112-0) 및 디코드 픽처 버퍼(112-1)로부터 취득한 디코드 화상을 사용하여, 움직임 예측·보상 처리를 행한다. 또한, 예를 들어, 움직임 예측·보상부(114-2)는, 디코드 픽처 버퍼(112-1) 및 디코드 픽처 버퍼(112-2)로부터 취득한 디코드 화상을 사용하여, 움직임 예측·보상 처리를 행한다.
또한, 움직임 예측·보상부(114)는, 인터 예측이 채용되었을 경우, 최적의 인터 예측 모드 등, 인터 예측에 관한 정보를 포함하는 인터 예측 정보를 가역 부호화부(106)에 공급하여 전송시킨다.
움직임 예측·보상부(114)는, 이 인터 예측 정보로서, 복호측에서 움직임 보상을 행하기 위해, 최적의 모드의 움직임 벡터를 전송시킨다. 실제로는, 움직임 예측·보상부(114)는, 부호화 효율을 보다 향상시키기 위해서, 움직임 벡터 대신에 움직임 벡터와 예측 움직임 벡터의 차분인 차분 움직임 벡터를 전송시킨다. 즉, 움직임 예측·보상부(114)는, 커런트 블록의 움직임 벡터 예측을 행하여 예측 움직임 벡터를 생성하고, 커런트 블록의 움직임 벡터와 예측 움직임 벡터의 차분인 차분 움직임 벡터를 생성한다. 움직임 예측·보상부(114)는, 이 차분 움직임 벡터를 인터 예측 정보의 일부로서 복호측에 전송시킨다.
이러한 움직임 벡터의 예측에 있어서, 움직임 예측·보상부(114)는, 커런트 블록의 주변 블록의 움직임 벡터를 사용하여, 커런트 블록의 예측 움직임 벡터를 생성한다. 그때, 움직임 예측·보상부(114)는, 예측 움직임 벡터의 예측 정밀도를 보다 향상시켜, 부호화 효율을 보다 향상시키기 위해서, 예측 움직임 벡터의 후보를 복수 생성하고, 각 후보에 관한 비용 함수값을 구하여, 그것들의 비용 함수값에 기초하여, 그 후보 중에서 최적의 것을 선택할 수 있다. 즉, 움직임 예측·보상부(114)는, 예측 움직임 벡터의 후보를 복수의 방법으로 생성할 수 있다.
예를 들어, 움직임 예측·보상부(114)는, 커런트 블록의, 공간적, 시간적, 및 뷰간적으로 주변의 블록의 움직임 벡터를 참조하여, 커런트 블록의 예측 움직임 벡터를 생성할 수 있다. 또한, 움직임 예측·보상부(114)는, 이 예측 움직임 벡터로서 어느 후보를 선택했는지를 나타내는 정보(즉, 예측 움직임 벡터의 모드 정보)를 인터 예측 정보의 일부로서 복호측에 전송시킨다.
움직임 예측·보상부(114)는, 당해 뷰에 대응하는 움직임 벡터 메모리로부터, 공간적으로 주변의 블록의 움직임 벡터를 취득한다. 예를 들어, 움직임 예측·보상부(114-0)는, V0 움직임 벡터 메모리(122-0)로부터 움직임 벡터를 취득한다. 또한, 예를 들어, 움직임 예측·보상부(114-1)는, V1 움직임 벡터 메모리(122-1)로부터 움직임 벡터를 취득한다. 또한, 예를 들어, 움직임 예측·보상부(114-2)는, V2 움직임 벡터 메모리(122-2)로부터 움직임 벡터를 취득한다.
2번째 이후에 처리되는 뷰에 있어서는, 움직임 예측·보상부(114)는 또한, 과거의 처리된 뷰에 대응하는 움직임 벡터 메모리로부터, 뷰간적으로 주변의 블록의 움직임 벡터도 취득한다. 예를 들어, 움직임 예측·보상부(114-1)는, V0 움직임 벡터 메모리(122-0)로부터 움직임 벡터를 취득한다. 또한, 예를 들어, 움직임 예측·보상부(114-2)는, V1 움직임 벡터 메모리(122-1)로부터 움직임 벡터를 취득한다.
이 움직임 벡터는, 압축되어 있다. 즉, 다른 레이어의 부호화에서의 움직임 예측·보상에서 생성되어 압축된 움직임 벡터를 사용하여, 커런트 레이어의 부호화에서의 움직임 예측·보상이 행하여진다. 즉, 부호화에 필요한 기억 용량의 증대를 억제할 수 있다.
움직임 예측·보상부(114-0)는, 움직임 예측·보상 처리에서 생성한 커런트 블록의 움직임 벡터(최적 모드의 움직임 벡터)를 V0 움직임 벡터 압축부(121-0)에 공급한다. 또한, 움직임 예측·보상부(114-1)는, 생성한 커런트 블록의 움직임 벡터를, V1 움직임 벡터 압축부(121-1)에 공급한다. 또한, 움직임 예측·보상부(114-2)는, 생성한 커런트 블록의 움직임 벡터를, V2 움직임 벡터 압축부(121-2)에 공급한다.
예측 화상 선택부(115)는, 연산부(103)나 연산부(110)에 공급하는 예측 화상의 공급원을 선택한다. 예를 들어, 인트라 부호화의 경우, 예측 화상 선택부(115)는, 예측 화상의 공급원으로서 화면 내 예측부(113)를 선택하고, 그 화면 내 예측부(113)로부터 공급되는 예측 화상을 연산부(103)나 연산부(110)에 공급한다. 또한, 예를 들어, 인터 부호화의 경우, 예측 화상 선택부(115)는, 예측 화상의 공급원으로서 움직임 예측·보상부(114)를 선택하고, 그 움직임 예측·보상부(114)로부터 공급되는 예측 화상을 연산부(103)나 연산부(110)에 공급한다.
레이트 제어부(116)는, 축적 버퍼(107)에 축적된 부호화 데이터의 부호량에 기초하여, 오버플로우 또는 언더플로우가 발생하지 않도록, 양자화부(105)의 양자화 동작의 레이트를 제어한다.
V0 움직임 벡터 압축부(121-0)는, 움직임 예측·보상부(114-0)로부터 취득한, 최고 4x4 정밀도의 움직임 벡터(압축전 V0 움직임 벡터라고도 함)를 16x16 정밀도로 압축하고(1/16 압축이라고도 함), 그 압축 후의 움직임 벡터(1/16 압축 후 V0 움직임 벡터라고도 함)를 V0 움직임 벡터 메모리(122-0)에 공급한다.
이 움직임 벡터의 압축 방법은 임의이다. 예를 들어, V0 움직임 벡터 압축부(121-0)가, 움직임 예측·보상부(114-0)로부터 취득한 복수의 움직임 벡터 중에서, 그 대표치로 하는 움직임 벡터를 선택하도록 해도 된다. 예를 들어, 4x4 정밀도의 16개의 움직임 벡터(4x4개의 각 블록의 움직임 벡터)로부터, 대표치로 하는 움직임 벡터가 하나 선택되도록 해도 된다. 이 압축에 의해, 움직임 벡터의 정밀도는, 16x16 정밀도가 된다.
또한, 이 움직임 벡터의 선택 방법은 임의이다. 예를 들어 좌측 상단부의 블록 등, 소정의 위치의 블록의 움직임 벡터를 선택하도록 해도 되고, 예를 들어 화상 내의 위치에 따라서 블록을 선택하는 등, 소정의 방법으로 정해진 위치의 블록의 움직임 벡터를 선택하도록 해도 된다.
또한, 선택하는 움직임 벡터의 수는 임의이며, 2개 이상이어도 된다.
또한, V0 움직임 벡터 압축부(121-0)는, 예를 들어, 각 움직임 벡터를 사용한 소정의 연산에 의해 대표치를 산출하도록 해도 된다. 이 대표치의 산출 방법은 임의이다. 예를 들어, 각 블록의 움직임 벡터의 평균값이나 중앙값을 대표치로 해도 된다. 또한, 산출하는 대표치의 수는 임의이며, 2개 이상이어도 된다.
이상과 같이 구해진 1/16 압축 후 V0 움직임 벡터(움직임 벡터의 대표치)는, V0 움직임 벡터 메모리(122-0)에 공급되어 기억된다. V0 움직임 벡터 메모리(122-0)는, 적절히, 기억하고 있는 1/16 압축 후 V0 움직임 벡터를, 시간적으로 주변의 블록의 움직임 벡터로서, 움직임 예측·보상부(114-0)에 공급한다. 또한, V0 움직임 벡터 메모리(122-0)는, 적절히, 기억하고 있는 1/16 압축 후 V0 움직임 벡터를, 뷰간적으로 주변의 블록의 움직임 벡터로서 움직임 예측·보상부(114-1)에 공급한다.
V1 움직임 벡터 압축부(121-1)는, 움직임 예측·보상부(114-1)로부터 취득한, 최고 4x4 정밀도의 움직임 벡터(압축 전 V1 움직임 벡터라고도 함)를 1/16 압축하고, 그 압축 후의 움직임 벡터(1/16 압축 후 V1 움직임 벡터라고도 함)를 V1 움직임 벡터 메모리(122-1)에 공급하고 기억시킨다. V1 움직임 벡터 메모리(122-1)는, 적절히, 기억하고 있는 1/16 압축 후 V1 움직임 벡터를, 시간적으로 주변의 블록의 움직임 벡터로서, 움직임 예측·보상부(114-1)에 공급한다. 또한, V1 움직임 벡터 메모리(122-1)는, 적절히, 기억하고 있는 1/16 압축 후 V1 움직임 벡터를, 뷰간적으로 주변의 블록의 움직임 벡터로서, 움직임 예측·보상부(114-2)에 공급한다.
V2 움직임 벡터 압축부(121-2)는, 움직임 예측·보상부(114-2)로부터 취득한, 최고 4x4 정밀도의 움직임 벡터(압축 전 V2 움직임 벡터라고도 함)를 1/16 압축하고, 그 압축 후의 움직임 벡터(1/16 압축 후 V2 움직임 벡터라고도 함)를 V2 움직임 벡터 메모리(122-2)에 공급하고 기억시킨다. V2 움직임 벡터 메모리(122-2)는, 적절히, 기억하고 있는 1/16 압축 후 V2 움직임 벡터를, 시간적으로 주변의 블록의 움직임 벡터로서, 움직임 예측·보상부(114-2)에 공급한다.
또한, V1 움직임 벡터 압축부(121-1) 및 V2 움직임 벡터 압축부(121-2)에 의한 움직임 벡터의 압축 방법은, V0 움직임 벡터 압축부(121-0)의 경우와 마찬가지이므로, 그 설명은 생략한다.
V0 움직임 벡터 압축부(121-0), V1 움직임 벡터 압축부(121-1), 및 V2 움직임 벡터 압축부(121-2)는, 소정의 단위마다, 이상과 같은 움직임 벡터의 압축을 행한다. 예를 들어, V0 움직임 벡터 압축부(121-0), V1 움직임 벡터 압축부(121-1), 및 V2 움직임 벡터 압축부(121-2)가, LCU마다, 이상과 같은 움직임 벡터의 압축을 행하도록 해도 된다. 또한, 이 처리 단위는, V0 움직임 벡터 압축부(121-0), V1 움직임 벡터 압축부(121-1), 및 V2 움직임 벡터 압축부(121-2)에 있어서 통일되어 있어도 되고, 통일되어 있지 않아도 된다. 또한, 이 처리 단위가 시퀀스 중에 있어서 가변이어도 된다.
또한, V0 움직임 벡터 압축부(121-0), V1 움직임 벡터 압축부(121-1), 및 V2 움직임 벡터 압축부(121-2) 각각에 의한 움직임 벡터의 압축 방법은, 서로 동일해도 되고, 동일하지 않아도 된다.
이상과 같이, V0 움직임 벡터 압축부(121-0), V1 움직임 벡터 압축부(121-1), 및 V2 움직임 벡터 압축부(121-2)가, 움직임 벡터의 수를 저감시킴으로써, 움직임 벡터의 정보량을 저감시킬(즉 압축할) 수 있다. 이에 의해, V0 움직임 벡터 메모리(122-0), V1 움직임 벡터 메모리(122-1), 및 V2 움직임 벡터 메모리(122-2)의 용량을 저감시킬 수 있다.
또한, 상술한 바와 같이, 움직임 예측·보상부(114)는, V0 움직임 벡터 메모리(122-0), V1 움직임 벡터 메모리(122-1), 및 V2 움직임 벡터 메모리(122-2)에 저장된 움직임 벡터를, TMVP용의 움직임 벡터로서 참조할 뿐만 아니라, IVMP용의 움직임 벡터로서 참조할 수 있다. 이렇게 TMVP용의 움직임 벡터와 IVMP용의 움직임 벡터를 공통화함으로써, 부호화에 필요한 기억 용량을 저감시킬 수 있다. 또한, 움직임 벡터의 압축에 의한 부하의 증대를 억제할 수 있다. 이에 의해, 화상 부호화 장치(100)의, 제조나 개발의 비용 저감, 장치의 소형화, 및 소비 전력의 저감 등을 실현할 수 있다.
<부호화 처리의 흐름>
이어서, 이상과 같은 화상 부호화 장치(100)에 의해 실행되는 처리의 흐름에 대하여 설명한다. 도 9의 흐름도를 참조하여, 화상 부호화 장치(100)에 의한 부호화 처리의 흐름의 예를 설명한다.
부호화 처리가 개시되면, V0 화상 부호화 장치(100-0)는, 커런트 픽처에 대해서, 스텝 S1001에서 V0 부호화 처리를 행한다. 스텝 S1002에서, V1 화상 부호화 장치(100-1)는, 커런트 픽처에 대해서 V1 부호화 처리를 행한다. 스텝 S1003에서, V2 화상 부호화 장치(100-2)는, 커런트 픽처에 대해서 V2 부호화 처리를 행한다.
스텝 S1004에서, 화상 부호화 장치(100)는, 모든 픽처를 처리했는지 여부를 판정하고, 미처리의 픽처가 존재한다고 판정한 경우, 처리를 스텝 S1001로 되돌려서, 그 이후의 처리를 반복한다.
각 픽처에 대해서, 스텝 S1001 내지 스텝 S1004의 처리가 반복되어, 스텝 S1004에서 모든 픽처가 처리되었다고 판정된 경우, 화상 부호화 장치(100)는 부호화 처리를 종료한다.
<V0 부호화 처리의 흐름>
이어서, 도 10의 흐름도를 참조하여, 도 9의 스텝 S1001에서 실행되는, 뷰 0의 부호화를 행하는 V0 부호화 처리의 흐름의 예를 설명한다.
스텝 S1101에서 A/D 변환부(101-0)는, 입력된 화상을 A/D 변환한다. 스텝 S1102에서, 화면 재배열 버퍼(102-0)는, A/D 변환된 화상을 기억하고, 각 픽처가 표시하는 순서에서 부호화하는 순서로의 재배열을 행한다. 스텝 S1103에서, 화면 내 예측부(113-0)는, 인트라 예측 모드의 인트라 예측 처리를 행한다.
스텝 S1104에서, 움직임 예측·보상부(114-0)는, 인터 예측 모드에서의 움직임 예측이나 움직임 보상을 행하는 V0 인터 움직임 예측 처리를 행한다.
스텝 S1105에서, 예측 화상 선택부(115-0)는, 화면 내 예측부(113-0)에 의해 생성된 예측 화상과, 움직임 예측·보상부(114-0)에 의해 생성된 예측 화상 중 어느 한쪽을 선택한다.
스텝 S1106에서, V0 움직임 벡터 압축부(121-0)는, 스텝 S1104의 처리에 의해 생성된 뷰 0의 커런트 픽처의 움직임 벡터이며, 최고 4x4 정밀도의 압축 전 V0 움직임 벡터를, 16x16 정밀도로 압축한다(1/16 압축). 이 1/16 압축은, 예를 들어, LCU(예를 들어 16x16 화소)마다 행해진다. 예를 들어, V0 움직임 벡터 압축부(121-0)는, 16x16 화소의 좌측 상단부의 블록의 V0 움직임 벡터를, 이 16x16 화소의 대표치(즉 16x16 정밀도의 V0 움직임 벡터)로서 선택한다.
스텝 S1107에서, V0 움직임 벡터 메모리(122-0)는, 스텝 S1106의 처리에 의해 생성된 1/16 압축 후 V0 움직임 벡터를 기억한다.
스텝 S1108에서, 연산부(103-0)는, 스텝 S1102의 처리에 의해 재배열된 화상으로부터, 스텝 S1105의 처리에 의해 선택된 예측 화상을 감산한다. 이 연산에 의해 얻어지는 차분 데이터(스텝 S1102의 처리에 의해 재배열된 화상과, 스텝 S1105의 처리에 의해 선택된 예측 화상의 차분 화상의 데이터)는, 원래의 화상 데이터에 비해 데이터량이 저감된다. 따라서, 화상을 그대로 부호화하는 경우에 비해, 데이터량을 압축할 수 있다.
스텝 S1109에서, 직교 변환부(104-0)는, 스텝 S1108의 처리에 의해 생성된 차분 데이터에 대한 직교 변환 처리를 행한다.
스텝 S1110에서, 양자화부(105-0)는, 레이트 제어부(116-0)에 의해 산출된 양자화 파라미터를 사용하여, 스텝 S1109의 처리에 의해 얻어진 직교 변환 계수를 양자화한다.
스텝 S1111에서, 가역 부호화부(106-0)는, 스텝 S1110의 처리에 의해 양자화된 계수를 부호화한다. 즉, 차분 화상에 대응하는 데이터에 대하여 가변장 부호화나 산술 부호화 등의 가역 부호화가 행하여진다.
또한, 이때, 가역 부호화부(106-0)는, 스텝 S1105의 처리에 의해 선택된 예측 화상의 예측 모드에 관한 정보를 부호화하고, 차분 화상을 부호화하여 얻어지는 부호화 데이터에 부가한다. 즉, 가역 부호화부(106-0)는, 화면 내 예측부(113-0)로부터 공급되는 최적 인트라 예측 모드 정보, 또는, 움직임 예측·보상부(114-0)로부터 공급되는 최적 인터 예측 모드에 따른 정보 등도 부호화하여, 부호화 데이터에 부가한다.
스텝 S1112에서 축적 버퍼(107-0)는, 스텝 S1111의 처리에 의해 얻어진 부호화 데이터를 축적한다. 축적 버퍼(107-0)에 축적된 부호화 데이터는, 적절히 판독되어, 전송로나 기록 매체를 통해 복호측에 전송된다.
스텝 S1110의 처리에 의해 양자화된 차분 정보는, 다음과 같이 하여 국부적으로 복호된다. 즉, 스텝 S1113에서, 역양자화부(108-0)는, 스텝 S1110의 처리에 의해 생성된 양자화된 직교 변환 계수(양자화 계수라고도 함)를 양자화부(105-0)의 특성에 대응하는 특성으로 역양자화한다. 스텝 S1114에서, 역직교 변환부(109-0)는, 스텝 S1113의 처리에 의해 얻어진 직교 변환 계수를, 직교 변환부(104-0)의 특성에 대응하는 특성으로 역직교 변환한다. 이에 의해 차분 화상이 복원된다.
스텝 S1115에서, 연산부(110-0)는, 스텝 S1105에서 선택된 예측 화상을, 스텝 S1114에서 복원된 차분 화상에 가산하여, 국부적으로 복호된 복호 화상(재구성 화상)을 생성한다.
V0 화상 부호화 장치(100-0)는, 처리 대상인 커런트 LCU 내의 각 블록에 대해서, 스텝 S1103 내지 스텝 S1115의 각 처리를 행한다. 스텝 S1116에서, V0 화상 부호화 장치(100-0)는, 모든 LCU를 처리했는지 여부를 판정한다. 미처리의 LCU가 존재한다고 판정한 경우, 처리는 스텝 S1103으로 복귀되어, 그 이후의 처리를 반복한다. 커런트 픽처의 뷰 0의 화상의 각 LCU에 대해서, 스텝 S1103 내지 스텝 S1115의 각 처리가 실행되고, 스텝 S1116에서, 모든 LCU가 처리되었다고 판정된 경우, 처리는 스텝 S1117로 진행된다.
스텝 S1117에서, 루프 필터(111-0)는, 스텝 S1115의 처리에 의해 얻어진 재구성 화상에 대하여 디블록 필터 처리나 적응 루프 필터 처리 등을 포함하는 루프 필터 처리를 적절히 행하여 복호 화상을 생성한다.
스텝 S1118에서, 디코드 픽처 버퍼(112-0)는, 스텝 S1117의 처리에 의해 생성된 복호 화상을 기억한다.
스텝 S1119에서 레이트 제어부(116-0)는, 스텝 S1118의 처리에 의해 축적 버퍼(107-0)에 축적된 부호화 데이터의 부호량(발생 부호량)에 기초하여, 오버플로우 또는 언더플로우가 발생하지 않도록, 양자화부(105-0)의 양자화 동작의 레이트를 제어한다. 또한, 레이트 제어부(116-0)는, 양자화 파라미터에 관한 정보를 양자화부(105-0)에 공급한다.
스텝 S1119의 처리가 종료되면, V0 부호화 처리가 종료되고, 처리는 도 9로 복귀된다.
<V0 인터 움직임 예측 처리의 흐름>
이어서, 도 10의 스텝 S1104에서 실행되는 V0 인터 움직임 예측 처리의 흐름의 예를, 도 11의 흐름도를 참조하여 설명한다.
V0 인터 움직임 예측 처리가 개시되면, 움직임 예측·보상부(114-0)는, 스텝 S1131에서 움직임 탐색 처리를 행하여, 커런트 블록의 움직임 벡터를 생성한다.
스텝 S1132에서, 움직임 예측·보상부(114-0)는, 픽처 내의 압축 전 V0 움직임 벡터를 사용하여, 공간 예측 움직임 벡터 후보를 결정한다. 공간 예측 움직임 벡터 후보란, 커런트 블록의 공간적으로 주변의 블록의 움직임 벡터로부터 생성되는 예측 움직임 벡터의 후보이다. 즉, 움직임 예측·보상부(114-0)는, 커런트 블록의 공간적으로 주변의 블록의 V0 움직임 벡터를 사용하여 공간 예측 움직임 벡터 후보를 결정한다. 이 V0 움직임 벡터는, 커런트 픽처 내의 움직임 벡터이므로, 움직임 예측·보상부(114-0)에 의해 비압축(최고 4x4 정밀도)의 상태로 유지되어 있다. 따라서, 움직임 예측·보상부(114-0)는, 그 압축 전 V0 움직임 벡터를 사용하여 공간 예측 움직임 벡터 후보를 결정한다.
스텝 S1133에서, 움직임 예측·보상부(114-0)는, 다른 픽처의 1/16 압축 후 V0 움직임 벡터를 사용하여, 시간 예측 움직임 벡터 후보를 결정한다. 시간 예측 움직임 벡터 후보란, 커런트 블록의 시간적으로 주변의 블록의 움직임 벡터로부터 생성되는 예측 움직임 벡터의 후보이다. 즉, 움직임 예측·보상부(114-0)는, 커런트 블록의 시간적으로 주변의 픽처의 콜로케이티드 블록의 V0 움직임 벡터를 사용하여 시간 예측 움직임 벡터 후보를 결정한다. 이 V0 움직임 벡터는, 커런트 픽처와는 동일 뷰의 서로 다른 픽처 내의 움직임 벡터이므로, 압축된(16x16 정밀도) 상태로 V0 움직임 벡터 메모리(122-0)에 유지되어 있다. 따라서, 움직임 예측·보상부(114-0)는, V0 움직임 벡터 메모리(122-0)로부터, 그 1/16 압축 후 V0 움직임 벡터를 판독하고, 그것을 사용해서 시간 예측 움직임 벡터 후보를 결정한다.
뷰 0은, 최초로 처리되는 뷰이므로, 뷰간의 상관성을 이용한 예측 움직임 벡터 후보의 생성은 행하여지지 않는다.
스텝 S1134에서, 움직임 예측·보상부(114-0)는, 스텝 S1132 및 스텝 S1133에서 생성된 각 후보에 대해 비용 함수값을 산출한다.
스텝 S1135에서, 움직임 예측·보상부(114-0)는, 스텝 S1134에서 산출된 각 비용 함수값에 기초하여 최적의 예측 모드를 판정한다. 이때, 움직임 예측·보상부(114-0)는, 예측 움직임 벡터(의 모드)도 결정한다.
스텝 S1136에서, 움직임 예측·보상부(114-0)는, 스텝 S1135에서 판정된 최적의 모드에서 움직임 보상을 행하고, 예측 화상을 생성한다. 또한, 움직임 예측·보상부(114-0)는, 최적의 인터 예측 모드, 차분 움직임 벡터, 예측 움직임 벡터의 모드 등을 포함하는 인터 예측 정보를 생성한다.
스텝 S1137에서, 움직임 예측·보상부(114-0)는, 최적 모드의 움직임 벡터를 압축 전 V0 움직임 벡터로서 버퍼에 기억한다. 스텝 S1137의 처리가 종료되면, V0 인터 움직임 예측 처리가 종료되고, 처리는, 도 10으로 복귀된다.
<V1 부호화 처리의 흐름>
이어서, 도 12의 흐름도를 참조하여, 도 9의 스텝 S1002에서 실행되는, 뷰 1의 부호화를 행하는 V1 부호화 처리의 흐름의 예를 설명한다.
뷰 0에 대한 처리와, 뷰 1에 대한 처리의 차이는, 주로, 인터 움직임 예측 처리에 있다. 따라서, 도 12에 도시된 바와 같이, V1 부호화 처리는, V1 화상 부호화 장치(100-1)에 의해, 뷰 0에 대한 부호화 처리(도 10의 V0 부호화 처리)의 경우와 기본적으로 마찬가지로 실행된다. 즉, 도 12의 스텝 S1201 내지 스텝 S1219의 각 처리는, 도 10의 스텝 S1101 내지 스텝 S1119의 각 처리와 기본적으로 마찬가지로 실행된다. 따라서, 도 12의 설명은, 도 10의 설명에서의 V0 화상 부호화 장치(100-0)의 각 부를 V1 화상 부호화 장치(100-1)의 각 부로 치환하고, 도 10에서 뷰 0에 대한 처리와의 설명을, 뷰 1에 대한 처리로 바꾸기만 하면 되므로, 그 설명은 생략한다.
<V1 인터 움직임 예측 처리의 흐름>
이어서, 도 12의 스텝 S1204에서 실행되는 V1 인터 움직임 예측 처리의 흐름의 예를, 도 13의 흐름도를 참조하여 설명한다.
V1 인터 움직임 예측 처리가 개시되면, 스텝 S1231 내지 스텝 S1233의 각 처리는, 도 11의 스텝 S1131 내지 스텝 S1133의 각 처리와 기본적으로 마찬가지로 실행된다. 단, V1 인터 움직임 예측 처리는, 움직임 예측·보상부(114-1)가 실행한다. 또한, 도 13의 각 처리는, 뷰 1에 대하여 행하여지므로, 스텝 S1232에서는, 비압축의 뷰 1의 움직임 벡터인 압축 전 V1 움직임 벡터가 사용된다. 또한, 스텝 S1233에서는, 1/16 압축된 1/16 압축 후 V1 움직임 벡터가 사용된다.
뷰 1에 대한 인터 움직임 예측 처리에서는, 공간 예측에 의한 후보와 시간 예측에 의한 후보의 생성 외에, 뷰간의 상관성을 이용한 예측 움직임 벡터 후보(IVMP에 의한 후보)의 생성도 행하여진다.
즉, 스텝 S1234에서, 움직임 예측·보상부(114-1)는, 1/16 압축 후 V0 움직임 벡터를 사용하여, IVMP 예측 움직임 벡터 후보를 결정한다. IVMP 예측 움직임 벡터 후보란, 커런트 블록의 뷰간적으로 주변의 블록의 움직임 벡터로부터 생성되는 예측 움직임 벡터의 후보이다. 즉, 움직임 예측·보상부(114-1)는, 커런트 블록과 동일 픽처의 서로 다른 뷰의 화상의 콜로케이티드 블록의 V0 움직임 벡터를 사용하여 IVMP 예측 움직임 벡터 후보를 결정한다. 이 V0 움직임 벡터는, 커런트 픽처와 동일한 픽처의 서로 다른 뷰의 움직임 벡터이므로, 압축된(16x16 정밀도) 상태로 V0 움직임 벡터 메모리(122-0)에 유지되어 있다. 따라서, 움직임 예측·보상부(114-1)는, V0 움직임 벡터 메모리(122-0)로부터, 그 1/16 압축 후 V0 움직임 벡터를 판독하고, 그것을 사용하여 뷰간 예측 움직임 벡터 후보를 결정한다.
스텝 S1235 내지 스텝 S1238의 각 처리는, 도 11의 스텝 S1134 내지 스텝 S1137의 각 처리와 마찬가지로 실행된다. 스텝 S1238의 처리가 종료되면, V1 인터 움직임 예측 처리가 종료되고, 처리는 도 12로 복귀된다.
<V2 부호화 처리의 흐름>
이어서, 도 14의 흐름도를 참조하여, 도 9의 스텝 S1003에서 실행되는, 뷰 2의 부호화를 행하는 V2 부호화 처리의 흐름의 예를 설명한다.
뷰 2에 대한 처리는, 뷰 1에 대한 처리와 마찬가지로 실행된다. 따라서, 도 14에 도시되는 바와 같이, V2 부호화 처리는, V2 화상 부호화 장치(100-2)에 의해, 뷰 1에 대한 부호화 처리(도 12의 V1 부호화 처리)의 경우와 기본적으로 마찬가지로 실행된다. 즉, 도 14의 스텝 S1301 내지 스텝 S1319의 각 처리는, 도 12의 스텝 S1201 내지 스텝 S1219의 각 처리와 기본적으로 마찬가지로 실행된다. 따라서, 도 14의 설명은, 도 12의 설명에서의 V1 화상 부호화 장치(100-1)의 각 부를 V2 화상 부호화 장치(100-2)의 각 부로 치환하고, 도 12에서 뷰 1에 대한 처리와의 설명을, 뷰 2에 대한 처리로 바꾸기만 하면 되므로, 그 설명은 생략한다.
<V2 인터 움직임 예측 처리의 흐름>
이어서, 도 14의 스텝 S1304에서 실행되는 V2 인터 움직임 예측 처리의 흐름의 예를, 도 15의 흐름도를 참조하여 설명한다.
도 15에 도시된 바와 같이, V2 인터 움직임 예측 처리는, 움직임 예측·보상부(114-2)에 의해, 뷰 1에 대한 인터 움직임 예측 처리(도 13의 V1 인터 움직임 예측 처리)의 경우와 기본적으로 마찬가지로 실행된다. 즉, 도 15의 스텝 S1331 내지 스텝 S1338의 각 처리는, 도 13의 스텝 S1231 내지 스텝 S1238의 각 처리와 기본적으로 마찬가지로 실행된다.
단, 스텝 S1332에서는, 비압축의 뷰 2의 움직임 벡터인 압축 전 V2 움직임 벡터가 사용된다. 또한, 스텝 S1333에서는, 1/16 압축된 1/16 압축 후 V2 움직임 벡터가 사용된다. 또한, 스텝 S1334에서는, 1/16 압축된 1/16 압축 후 V1 움직임 벡터가 사용된다.
스텝 S1338의 처리가 종료되면, V2 인터 움직임 예측 처리가 종료되고, 처리는, 도 14로 복귀된다.
이상과 같이 각 처리를 실행함으로써, 화상 부호화 장치(100)는, IVMP용의 움직임 벡터를 위해 필요한 메모리 용량을 저감시킬 수 있어, 부호화·복호에 필요한 기억 용량의 증대를 억제할 수 있다.
<화상 복호 장치>
이어서, 이상과 같이 부호화된 부호화 데이터(부호화 스트림)의 복호에 대하여 설명한다. 도 16은, V0 화상 복호 장치의 주된 구성예를 도시하는 블록도이다. 도 17은, V1 화상 복호 장치의 주된 구성예를 도시하는 블록도이다. 도 18은, V2 화상 복호 장치의 주된 구성예를 도시하는 블록도이다.
도시하지 않은 화상 복호 장치(200)는, 화상 부호화 장치(100)에 의해 부호화된, 도 2에 도시되는 다시점 화상과 같은 복수 레이어를 포함하는 동화상의 부호화 데이터를, 그 부호화 방법에 대응하는 복호 방법으로 복호한다. 이 화상 복호 장치(200)는, 다시점 화상의 각 뷰의 부호화 데이터를 복호하기 위해서, 도 16의 V0 화상 복호 장치(200-0), 도 17의 V1 화상 복호 장치(200-1), 및 도 18의 V2 화상 복호 장치(200-2)를 갖는다. V0 화상 복호 장치(200-0)는, V0 화상 부호화 장치(100-0)에 의해 부호화된 뷰 0의 화상 부호화 데이터를 복호한다. V1 화상 복호 장치(200-1)는, V1 화상 부호화 장치(100-1)에 의해 부호화된 뷰 1의 화상 부호화 데이터를 복호한다. V2 화상 복호 장치(200-2)는, V2 화상 부호화 장치(100-2)에 의해 부호화된 뷰 2의 화상 부호화 데이터를 복호한다.
도 16에 도시된 바와 같이, V0 화상 복호 장치(200-0)는, 축적 버퍼(201-0), 가역 복호부(202-0), 역양자화부(203-0), 역직교 변환부(204-0), 연산부(205-0), 루프 필터(206-0), 화면 재배열 버퍼(207-0), 및 D/A 변환부(208-0)를 갖는다. 또한, V0 화상 복호 장치(200-0)는, 디코드 픽처 버퍼(209-0), 화면 내 예측부(210-0), 움직임 보상부(211-0), 및 선택부(212-0)를 갖는다.
또한, 도 17에 도시된 바와 같이, V1 화상 복호 장치(200-1)는, 축적 버퍼(201-1), 가역 복호부(202-1), 역양자화부(203-1), 역직교 변환부(204-1), 연산부(205-1), 루프 필터(206-1), 화면 재배열 버퍼(207-1), 및 D/A 변환부(208-1)를 갖는다. 또한, V1 화상 복호 장치(200-1)는, 디코드 픽처 버퍼(209-1), 화면 내 예측부(210-1), 움직임 보상부(211-1), 및 선택부(212-1)를 갖는다.
또한, 도 18에 도시된 바와 같이, V2 화상 복호 장치(200-2)는, 축적 버퍼(201-2), 가역 복호부(202-2), 역양자화부(203-2), 역직교 변환부(204-2), 연산부(205-2), 루프 필터(206-2), 화면 재배열 버퍼(207-2), 및 D/A 변환부(208-2)를 갖는다. 또한, V2 화상 복호 장치(200-2)는, 디코드 픽처 버퍼(209-2), 화면 내 예측부(210-2), 움직임 보상부(211-2), 및 선택부(212-2)를 갖는다.
이하에 있어서, 축적 버퍼(201-0) 내지 축적 버퍼(201-2)를 서로 구별하여 설명할 필요가 없을 경우, 간단히 축적 버퍼(201)라고 칭한다. 또한, 가역 복호부(202-0) 내지 가역 복호부(202-2)를 서로 구별하여 설명할 필요가 없을 경우, 간단히 가역 복호부(202)라고 칭한다. 또한, 역양자화부(203-0) 내지 역양자화부(203-2)를 서로 구별하여 설명할 필요가 없을 경우, 간단히 역양자화부(203)라고 칭한다. 또한, 역직교 변환부(204-0) 내지 역직교 변환부(204-2)를 서로 구별하여 설명할 필요가 없을 경우, 간단히 역직교 변환부(204)라고 칭한다. 또한, 연산부(205-0) 내지 연산부(205-2)를 서로 구별하여 설명할 필요가 없을 경우, 간단히 연산부(205)라고 칭한다.
또한, 루프 필터(206-0) 내지 루프 필터(206-2)를 서로 구별하여 설명할 필요가 없을 경우, 간단히 루프 필터(206)라고 칭한다. 또한, 화면 재배열 버퍼(207-0) 내지 화면 재배열 버퍼(207-2)를 서로 구별하여 설명할 필요가 없을 경우, 간단히 화면 재배열 버퍼(207)라고 칭한다. 또한, D/A 변환부(208-0) 내지 D/A 변환부(208-2)를 서로 구별하여 설명할 필요가 없을 경우, 간단히 D/A 변환부(208)라고 칭한다. 또한, 디코드 픽처 버퍼(209-0) 내지 디코드 픽처 버퍼(209-2)를 서로 구별하여 설명할 필요가 없을 경우, 간단히 디코드 픽처 버퍼(209)라고 칭한다.
또한, 화면 내 예측부(210-0) 내지 화면 내 예측부(210-2)를 서로 구별하여 설명할 필요가 없을 경우, 간단히 화면 내 예측부(210)라고 칭한다. 또한, 움직임 보상부(211-0) 내지 움직임 보상부(211-2)를 서로 구별하여 설명할 필요가 없을 경우, 간단히 움직임 보상부(211)라고 칭한다. 또한, 선택부(212-0) 내지 선택부(212-2)를 서로 구별하여 설명할 필요가 없을 경우, 간단히 선택부(212)라고 칭한다.
V0 화상 복호 장치(200-0)는, 또한, V0 움직임 벡터 압축부(221-0) 및 V0 움직임 벡터 메모리(222-0)를 갖는다. V1 화상 복호 장치(200-1)는, 또한, V1 움직임 벡터 압축부(221-1) 및 V1 움직임 벡터 메모리(222-1)를 갖는다. V2 화상 복호 장치(200-2)는, 또한, V2 움직임 벡터 압축부(221-2) 및 V2 움직임 벡터 메모리(222-2)를 갖는다.
축적 버퍼(201)는, 전송되어 온 부호화 데이터를 수취하는 수취부이기도 하다. 축적 버퍼(201)는, 전송되어 온 부호화 데이터를 수취하고, 축적하여, 소정의 타이밍에 있어서 그 부호화 데이터를 가역 복호부(202)에 공급한다. 부호화 데이터에는, 예측 모드 정보 등의 복호에 필요한 정보가 부가되어 있다. 가역 복호부(202)는, 축적 버퍼(201)로부터 공급된, 가역 부호화부(106)(도 6 내지 도 8)에 의해 부호화된 정보를, 가역 부호화부(106)의 부호화 방식에 대응하는 방식으로 복호한다. 가역 복호부(202)는, 복호하여 얻어진 차분 화상의 양자화된 계수 데이터를 역양자화부(203)에 공급한다.
또한, 가역 복호부(202)는, 최적의 예측 모드에 인트라 예측 모드가 선택되었는지 인터 예측 모드가 선택되었는지를 판정하고, 그 최적의 예측 모드에 관한 정보를, 화면 내 예측부(210) 및 움직임 보상부(211) 중, 선택되었다고 판정한 모드쪽에 공급한다. 즉, 예를 들어, 부호화측에서 최적의 예측 모드로서 인트라 예측 모드가 선택된 경우, 그 최적의 예측 모드에 관한 정보가 화면 내 예측부(210)에 공급된다. 또한, 예를 들어, 부호화측에서 최적의 예측 모드로서 인터 예측 모드가 선택된 경우, 그 최적의 예측 모드에 관한 정보가 움직임 보상부(211)에 공급된다.
또한, 가역 복호부(202)는, 예를 들어, 양자화 행렬이나 양자화 파라미터 등의, 역양자화에 필요한 정보를 역양자화부(203)에 공급한다.
역양자화부(203)는, 가역 복호부(202)에 의해 복호되어서 얻어진 양자화된 계수 데이터를, 양자화부(105)의 양자화 방식에 대응하는 방식으로 역양자화한다. 또한, 이 역양자화부(203)는, 역양자화부(108)와 마찬가지의 처리부이다. 즉, 역양자화부(203)의 설명은, 역양자화부(108)에도 준용할 수 있다. 단, 데이터의 입출력처 등은, 장치에 따라서 적절히 바꾸어서 읽을 필요가 있다.
역양자화부(203)는, 얻어진 계수 데이터를 역직교 변환부(204)에 공급한다.
역직교 변환부(204)는, 역양자화부(203)로부터 공급되는 직교 변환 계수를, 직교 변환부(104)의 직교 변환 방식에 대응하는 방식으로 역직교 변환한다. 또한, 이 역직교 변환부(204)는, 역직교 변환부(109)와 마찬가지의 처리부이다. 즉, 역직교 변환부(204)의 설명은, 역직교 변환부(109)에도 준용할 수 있다. 단, 데이터의 입출력처 등은, 장치에 따라서 적절히 바꾸어서 읽을 필요가 있다.
역직교 변환부(204)는, 이 역직교 변환 처리에 의해, 화상 부호화 장치(100)에서 직교 변환되기 전의 잔차 데이터(차분 화상)에 대응하는 복호 잔차 데이터(차분 화상)를 얻는다. 역직교 변환되어서 얻어진 차분 화상은, 연산부(205)에 공급된다. 또한, 연산부(205)에는, 선택부(212)를 통해, 화면 내 예측부(210) 또는 움직임 보상부(211)로부터 예측 화상이 공급된다.
연산부(205)는, 그 차분 화상과 예측 화상을 가산하여, 연산부(103)에 의해 예측 화상이 감산되기 전의 화상 데이터에 대응하는 재구성 화상을 얻는다. 연산부(205)는, 그 재구성 화상을 루프 필터(206)에 공급한다.
루프 필터(206)는, 공급된 재구성 화상에 대하여 디블록 필터 처리나 적응 루프 필터 처리 등을 포함하는 루프 필터 처리를 적절히 실시하여 복호 화상을 생성한다. 예를 들어, 루프 필터(206)는, 재구성 화상에 대하여 디블록 필터 처리를 행함으로써, 블록 왜곡을 제거한다. 또한, 예를 들어, 루프 필터(206)는, 그 디블록 필터 처리 결과(블록 왜곡의 제거가 행하여진 재구성 화상)에 대하여, 위너 필터(Wiener Filter)를 사용하여 루프 필터 처리를 행함으로써 화질 개선을 행한다.
또한, 루프 필터(206)가 행하는 필터 처리의 종류는 임의이며, 상술한 것 이외의 필터 처리를 행해도 된다. 또한, 루프 필터(206)가, 화상 부호화 장치(100)로부터 공급된 필터 계수를 사용하여 필터 처리를 행하도록 해도 된다.
루프 필터(206)는, 필터 처리 결과인 복호 화상을 화면 재배열 버퍼(207) 및 디코드 픽처 버퍼(209)에 공급한다. 또한, 루프 필터(206)는, 연산부(205)의 출력(재구성 화상)을, 필터 처리하지 않고, 화면 내 예측부(210)에 공급한다. 예를 들어, 화면 내 예측부(210)는, 이 화상에 포함되는 화소의 화소값을 주변 화소의 화소값으로서 이용한다.
화면 재배열 버퍼(207)는, 공급된 복호 화상의 재배열을 행한다. 즉, 화면 재배열 버퍼(102)에 의해 부호화의 순서를 위해 재배열된 프레임의 순서가, 원래의 표시의 순서대로 재배열된다. D/A 변환부(208)는, 화면 재배열 버퍼(207)로부터 공급된 복호 화상을 D/A 변환하여, 도시하지 않은 디스플레이에 출력해서 표시시킨다.
디코드 픽처 버퍼(209)는, 공급되는 복호 화상(및 그 화상의 뷰 ID 및 POC)을 기억한다. 또한, 디코드 픽처 버퍼(209)는, 소정의 타이밍에 있어서, 또는, 움직임 보상부(211) 등의 외부의 요구에 기초하여, 기억하고 있는 복호 화상(및 그 화상의 뷰 ID 및 POC)을 움직임 보상부(211)에 공급한다.
화면 내 예측부(210)는, 화면 내 예측부(113)와 기본적으로 마찬가지의 처리를 행한다. 단, 화면 내 예측부(210)는, 부호화 시에 인트라 예측에 의해 예측 화상이 생성된 영역에 대하여만 인트라 예측을 행한다. 화면 내 예측부(210)는, 예측 처리 단위의 영역마다, 생성한 예측 화상을, 선택부(212)를 통해 연산부(205)에 공급한다.
움직임 보상부(211)는, 가역 복호부(202)로부터 공급되는 인터 예측 정보에 기초하여, 부호화 시에 인터 예측이 행하여진 영역에 대하여 부호화 시에 채용된 인터 예측 모드에서 움직임 보상을 행하고, 예측 화상을 생성한다. 움직임 보상부(211)는, 예측 처리 단위의 영역마다, 생성한 예측 화상을, 선택부(212)를 통해 연산부(205)에 공급한다.
움직임 보상부(211)는, 디코드 픽처 버퍼(209)로부터 취득한 디코드 화상을 사용하여, 이상과 같은 움직임 보상 처리를 행한다.
최초로 처리되는 뷰의 경우, 움직임 보상부(211)는, 당해 뷰의 화상을 기억하는 디코드 픽처 버퍼(209)로부터 취득한 디코드 화상을 사용하여, 움직임 보상 처리를 행한다. 예를 들어, 움직임 보상부(211-0)는, 디코드 픽처 버퍼(209-0)로부터 취득한 디코드 화상을 사용하여, 움직임 보상 처리를 행한다.
2번째 이후에 처리되는 뷰의 경우, 움직임 보상부(211)는, 당해 뷰의 화상을 기억하는 디코드 픽처 버퍼(209), 및 하나 전에 처리된 뷰의 화상을 기억하는 디코드 픽처 버퍼(209)로부터 취득한 디코드 화상을 사용하여, 움직임 보상 처리를 행한다. 예를 들어, 움직임 보상부(211-1)는, 디코드 픽처 버퍼(209-0) 및 디코드 픽처 버퍼(209-1)로부터 취득한 디코드 화상을 사용하여, 움직임 보상 처리를 행한다. 또한, 예를 들어, 움직임 보상부(211-2)는, 디코드 픽처 버퍼(209-1) 및 디코드 픽처 버퍼(209-2)로부터 취득한 디코드 화상을 사용하여, 움직임 보상 처리를 행한다.
움직임 보상부(211)는, 인터 예측 정보로서 부호화측으로부터 전송된 차분 움직임 벡터로부터, 커런트 블록의 움직임 벡터를 재구축한다. 그때, 움직임 보상부(211)는, 가역 복호부(202)로부터 공급되는 인터 예측 정보에 기초하여, 움직임 예측·보상부(114)와 마찬가지의 방법(모드)으로 커런트 블록의 움직임 벡터 예측을 행하고, 예측 움직임 벡터를 생성한다. 움직임 보상부(211)는, 차분 움직임 벡터에 예측 움직임 벡터를 가산함으로써, 커런트 블록의 움직임 벡터를 재구축한다.
즉, 움직임 보상부(211)는, 커런트 블록의, 공간적, 시간적, 또는 뷰간적으로 주변의 블록의 움직임 벡터를 참조하여, 커런트 블록의 예측 움직임 벡터를 생성한다.
공간적으로 주변의 블록의 움직임 벡터는, 움직임 보상부(211)에 의해 유지되어 있다. 또한, 시간적으로 주변의 블록의 움직임 벡터를 참조하는 경우, 움직임 보상부(211)는, 당해 뷰에 대응하는 움직임 벡터 메모리로부터 움직임 벡터를 취득한다. 예를 들어, 움직임 보상부(211-0)는, V0 움직임 벡터 메모리(222-0)로부터 시간적으로 주변의 블록의 움직임 벡터를 취득한다. 또한, 예를 들어, 움직임 보상부(211-1)는, V1 움직임 벡터 메모리(222-1)로부터 시간적으로 주변의 블록의 움직임 벡터를 취득한다. 또한, 예를 들어, 움직임 보상부(211-2)는, V2 움직임 벡터 메모리(222-2)로부터 시간적으로 주변의 블록의 움직임 벡터를 취득한다.
또한, 뷰적으로 주변의 블록의 움직임 벡터를 참조하는 경우, 움직임 보상부(211)는, 과거에 처리된 뷰에 대응하는 움직임 벡터 메모리로부터 움직임 벡터를 취득한다. 예를 들어, 움직임 보상부(211-1)는, V0 움직임 벡터 메모리(222-0)로부터 뷰간적으로 주변의 블록의 움직임 벡터를 취득한다. 또한, 예를 들어, 움직임 보상부(211-2)는, V1 움직임 벡터 메모리(222-1)로부터 뷰간적으로 주변의 블록의 움직임 벡터를 취득한다.
이러한 움직임 벡터 메모리로부터 취득하는 움직임 벡터는, 1/16 압축되어 있다. 즉, 다른 레이어의 복호에서의 움직임 보상에 있어서 재구축되어 압축된 움직임 벡터를 사용하여, 커런트 레이어의 복호에서의 움직임 보상이 행하여진다. 즉, 복호에 필요한 기억 용량의 증대를 억제할 수 있다.
움직임 보상부(211)는, 움직임 예측·보상 처리에서 생성한 커런트 블록의 움직임 벡터(최적 모드의 움직임 벡터)를 V0 움직임 벡터 압축부(221-0)에 공급한다. 또한, 움직임 보상부(211-1)는, 생성한 커런트 블록의 움직임 벡터를, V1 움직임 벡터 압축부(221-1)에 공급한다. 또한, 움직임 보상부(211-2)는, 생성한 커런트 블록의 움직임 벡터를, V2 움직임 벡터 압축부(221-2)에 공급한다.
선택부(212)는, 화면 내 예측부(210)로부터 공급되는 예측 화상, 또는, 움직임 보상부(211)로부터 공급되는 예측 화상을 연산부(205)에 공급한다.
V0 움직임 벡터 압축부(221-0)는, 움직임 보상부(211-0)로부터 취득한, 최고 4x4 정밀도의 압축 전 V0 움직임 벡터를, 16x16 정밀도로 1/16 압축하여, 얻어진 1/16 압축 후 V0 움직임 벡터를 V0 움직임 벡터 메모리(222-0)에 공급한다.
이 움직임 벡터의 압축 방법은, V0 움직임 벡터 압축부(121-0)와 동일한 방법인 한 임의이다. 예를 들어, 복수의 블록의 움직임 벡터 중에서 그것들의 대표치로 하는 움직임 벡터를 선택함으로써, 움직임 벡터를 압축하는 경우, 이 움직임 벡터의 선택 방법은, V0 움직임 벡터 압축부(121-0)와 동일한 방법인 한 임의이다. 또한, 선택하는 움직임 벡터의 수도, V0 움직임 벡터 압축부(121-0)와 동일한 방법인 한 임의이며, 2개 이상이어도 된다.
또한, 예를 들어, 복수의 블록의 움직임 벡터를 사용하여 소정의 연산을 행하고, 그것들의 대표치를 산출함으로써, 움직임 벡터를 압축하는 경우, 이 대표치의 산출 방법은, V0 움직임 벡터 압축부(121-0)와 동일한 방법인 한 임의이다.
이상과 같이 구해진 1/16 압축 후 V0 움직임 벡터(움직임 벡터의 대표치)는, V0 움직임 벡터 메모리(222-0)에 공급되어 기억된다. V0 움직임 벡터 메모리(222-0)는, 적절히, 기억하고 있는 1/16 압축 후 V0 움직임 벡터를, 시간적으로 주변의 블록의 움직임 벡터로서 움직임 보상부(211-0)에 공급한다. 또한, V0 움직임 벡터 메모리(222-0)는, 적절히, 기억하고 있는 1/16 압축 후 V0 움직임 벡터를, 뷰간적으로 주변의 블록의 움직임 벡터로서 움직임 보상부(211-1)에 공급한다.
V1 움직임 벡터 압축부(221-1)는, 움직임 보상부(211-1)로부터 취득한 압축 전 V1 움직임 벡터를 1/16 압축하여, 얻어진 1/16 압축 후 V1 움직임 벡터를 V1 움직임 벡터 메모리(222-1)에 공급하고 기억시킨다. V1 움직임 벡터 메모리(222-1)는, 적절히, 기억하고 있는 1/16 압축 후 V1 움직임 벡터를, 시간적으로 주변의 블록의 움직임 벡터로서 움직임 보상부(211-1)에 공급한다. 또한, V1 움직임 벡터 메모리(222-1)는, 적절히, 기억하고 있는 1/16 압축 후 V1 움직임 벡터를, 뷰간적으로 주변의 블록의 움직임 벡터로서 움직임 보상부(211-2)에 공급한다.
V2 움직임 벡터 압축부(221-2)는, 움직임 보상부(211-2)로부터 취득한 압축 전 V2 움직임 벡터를 1/16 압축하여, 얻어진 1/16 압축 후 V2 움직임 벡터를 V2 움직임 벡터 메모리(222-2)에 공급하고 기억시킨다. V2 움직임 벡터 메모리(222-2)는, 적절히, 기억하고 있는 1/16 압축 후 V2 움직임 벡터를, 시간적으로 주변의 블록의 움직임 벡터로서 움직임 보상부(211-2)에 공급한다.
또한, V1 움직임 벡터 압축부(221-1) 및 V2 움직임 벡터 압축부(221-2)에 의한 움직임 벡터의 압축 방법은, V0 움직임 벡터 압축부(221-0)의 경우와 마찬가지이므로, 그 설명은 생략한다.
V0 움직임 벡터 압축부(221-0), V1 움직임 벡터 압축부(221-1), 및 V2 움직임 벡터 압축부(221-2)는, 소정의 단위마다, 이상과 같은 움직임 벡터의 압축을 행한다. 예를 들어, V0 움직임 벡터 압축부(221-0), V1 움직임 벡터 압축부(221-1), 및 V2 움직임 벡터 압축부(221-2)가, LCU마다, 이상과 같은 움직임 벡터의 압축을 행하도록 해도 된다. 또한, 이 처리 단위는, V0 움직임 벡터 압축부(221-0), V1 움직임 벡터 압축부(221-1), 및 V2 움직임 벡터 압축부(221-2)에서 통일되어 있어도 되고, 통일되어 있지 않아도 된다. 또한, 이 처리 단위가 시퀀스 중에 있어서 가변일 수도 있다.
또한, V0 움직임 벡터 압축부(221-0), V1 움직임 벡터 압축부(221-1), 및 V2 움직임 벡터 압축부(221-2) 각각에 의한 움직임 벡터의 압축 방법은, 서로 동일해도 되고, 동일하지 않아도 된다.
이상과 같이, V0 움직임 벡터 압축부(221-0), V1 움직임 벡터 압축부(221-1), 및 V2 움직임 벡터 압축부(221-2)가, 움직임 벡터의 수를 저감시킴으로써, 움직임 벡터의 정보량을 저감시킬(즉 압축할) 수 있다. 이에 의해, V0 움직임 벡터 메모리(222-0), V1 움직임 벡터 메모리(222-1), 및 V2 움직임 벡터 메모리(222-2)의 용량을 저감시킬 수 있다.
또한, 상술한 바와 같이, 움직임 보상부(211)는, V0 움직임 벡터 메모리(222-0), V1 움직임 벡터 메모리(222-1), 및 V2 움직임 벡터 메모리(222-2)에 저장된 움직임 벡터를, TMVP용의 움직임 벡터로서 참조할 뿐만 아니라, IVMP용의 움직임 벡터로서 참조할 수 있다. 이렇게 TMVP용의 움직임 벡터와 IVMP용의 움직임 벡터를 공통화함으로써, 부호화에 필요한 기억 용량을 저감시킬 수 있다. 또한, 움직임 벡터의 압축에 의한 부하의 증대를 억제할 수 있다. 이에 의해, 화상 복호 장치(200)의, 제조나 개발의 비용 저감, 장치의 소형화, 및 소비 전력의 저감 등을 실현할 수 있다.
<복호 처리의 흐름>
이어서, 이상과 같은 화상 복호 장치(200)에 의해 실행되는 처리의 흐름에 대하여 설명한다. 도 19의 흐름도를 참조하여, 화상 복호 장치(200)에 의한 복호 처리의 흐름의 예를 설명한다.
복호 처리가 개시되면, 커런트 픽처에 대해서, V0 화상 복호 장치(200-0)는, 스텝 S1401에서 V0 복호 처리를 행하고, V1 화상 복호 장치(200-1)는, 스텝 S1402에서 V1 복호 처리를 행하고, V2 화상 복호 장치(200-2)는, 스텝 S1403에서 V2 복호 처리를 행한다.
스텝 S1404에서, 화상 복호 장치(200)는, 모든 픽처를 처리했는지 여부를 판정하고, 미처리의 픽처가 존재한다고 판정한 경우, 처리를 스텝 S1401로 되돌려서, 그 이후의 처리를 반복한다.
각 픽처에 대해서, 스텝 S1401 내지 스텝 S1404의 처리가 반복되어, 스텝 S1404에서 모든 픽처가 처리되었다고 판정된 경우, 화상 복호 장치(200)는 복호 처리를 종료한다.
<V0 복호 처리의 흐름>
이어서, 도 20의 흐름도를 참조하여, 도 19의 스텝 S1401에서 실행되는, 뷰 0의 부호화 데이터를 복호하는 V0 복호 처리의 흐름의 예를 설명한다.
V0 복호 처리가 개시되면, 스텝 S1501에서, 축적 버퍼(201-0)는, 전송되어 온 뷰 0의 비트 스트림을 축적한다. 스텝 S1502에서, 가역 복호부(202-0)는, 축적 버퍼(201-0)로부터 공급되는 뷰 0의 비트 스트림(부호화된 차분 화상 정보)을 복호한다. 즉, 가역 부호화부(106-0)에 의해 부호화된 뷰 0의 각 픽처(I 픽처, P 픽처, 및 B 픽처)가 복호된다. 이때, 헤더 정보 등의 비트 스트림에 포함된 차분 화상 정보 이외의 각종 정보도 복호된다.
스텝 S1503에서, 역양자화부(203-0)는, 스텝 S1503의 처리에 의해 얻어진, 양자화된 계수를 역양자화한다.
스텝 S1504에서, 역직교 변환부(204-0)는, 스텝 S1503의 처리에 의해 역양자화된 계수를 필요에 따라서 역직교 변환한다.
스텝 S1505에서, 가역 복호부(202-0)는, 부호화 시에 적용된 예측 모드가 인터 예측인지 아닌지를 판정한다. 인터 예측이라고 판정된 경우, 처리는 스텝 S1506으로 진행된다.
스텝 S1506에서, 움직임 보상부(211-0)는, V0 움직임 보상 처리를 행하여, 예측 화상을 생성한다. 스텝 S1506의 처리가 종료되면, 처리는 스텝 S1508로 진행된다. 또한, 스텝 S1505에서 인트라 예측이라고 판정된 경우, 처리는 스텝 S1507로 진행된다. 스텝 S1507에서, 화면 내 예측부(210-0)는, 인트라 예측 처리를 행하여, 예측 화상을 생성한다. 스텝 S1507의 처리가 종료되면, 처리는 스텝 S1508로 진행된다.
스텝 S1508에서, 연산부(205-0)는, 스텝 S1504의 처리에서 역직교 변환되어서 얻어진 차분 화상 정보에, 스텝 S1506의 처리 또는 스텝 S1507의 처리에 의해 생성된 예측 화상을 가산한다. 이에 의해 재구성 화상이 생성된다.
스텝 S1509에서, V0 움직임 벡터 압축부(221-0)는, V0 움직임 벡터 압축부(121-0)의 경우와 마찬가지로, 스텝 S1506의 처리에 의해 생성된 압축 전 V0 움직임 벡터를 1/16 압축한다. 스텝 S1510에서, V0 움직임 벡터 메모리(222-0)는, V0 움직임 벡터 메모리(122-0)의 경우와 마찬가지로, 스텝 S1509의 처리에 의해 생성된 1/16 압축 후 V0 움직임 벡터를 기억한다.
V0 화상 복호 장치(200-0)는, 처리 대상인 커런트 LCU 내의 각 블록에 대해서, 스텝 S1501 내지 스텝 S1510의 각 처리를 행한다. 스텝 S1511에서, V0 화상 복호 장치(200-0)는, 모든 LCU를 처리했는지 여부를 판정한다. 미처리의 LCU가 존재한다고 판정한 경우, 처리는 스텝 S1501로 복귀되어, 그 이후의 처리를 반복한다. 커런트 픽처의 뷰 0의 화상 각 LCU에 대해서, 스텝 S1501 내지 스텝 S1510의 각 처리가 실행되고, 스텝 S1511에서, 모든 LCU가 처리되었다고 판정된 경우, 처리는 스텝 S1512로 진행된다.
스텝 S1512에서, 루프 필터(206-0)는, 스텝 S1508에서 얻어진 재구성 화상에 대하여 디블록 필터 처리나 적응 루프 필터 처리 등을 포함하는 루프 필터 처리를 적절히 행한다.
스텝 S1513에서, 화면 재배열 버퍼(207-0)는, 스텝 S1512에서 필터 처리되어서 생성된 복호 화상의 재배열을 행한다. 즉 화면 재배열 버퍼(102-0)에 의해 부호화를 위해 재배열된 프레임의 순서가, 원래의 표시의 순서로 재배열된다.
스텝 S1514에서, D/A 변환부(208-0)는, 프레임의 순서가 재배열된 뷰 0의 복호 화상을 D/A 변환한다. 이 복호 화상이 도시하지 않은 디스플레이에 출력되어 표시된다.
스텝 S1515에서, 디코드 픽처 버퍼(209-0)는, 스텝 S1512에서 필터 처리되어서 얻어진 복호 화상을 기억한다. 이 복호 화상은, 인터 예측 처리에서 참조 화상으로서 이용된다.
스텝 S1515의 처리가 종료되면, 복호 처리가 종료되고, 처리는 도 19로 복귀된다.
<V0 움직임 보상 처리의 흐름>
이어서, 도 20의 스텝 S1506에서 실행되는 V0 움직임 보상 처리의 흐름의 예를, 도 21의 흐름도를 참조하여 설명한다.
V0 움직임 보상 처리가 개시되면, 스텝 S1531에서, 움직임 보상부(211-0)는, 차분 움직임 정보(차분 움직임 벡터)를 취득한다. 스텝 S1532에서, 움직임 보상부(211-0)는, 인터 예측 정보에 기초하여, 예측 움직임 벡터의 모드가 공간 예측인지 여부를 판정한다. 공간 예측이라고 판정된 경우, 처리는 스텝 S1533으로 진행된다.
스텝 S1533에서, 움직임 보상부(211-0)는, 픽처 내의 압축 전 V0 움직임 벡터(커런트 블록에 대하여 공간적으로 주변의 블록의 움직임 벡터)를 사용하여 예측 움직임 벡터를 생성한다. 예측 움직임 벡터가 생성되면, 처리는 스텝 S1535로 진행된다.
또한, 스텝 S1532에서, 공간 예측이 아니라고 판정된 경우, 처리는 스텝 S1534로 진행된다.
스텝 S1534에서, 움직임 보상부(211-0)는, 다른 픽처 내의 1/16 압축 후 V0 움직임 벡터(커런트 블록에 대하여 공간적으로 주변의 블록의 움직임 벡터)를 사용하여 예측 움직임 벡터를 생성한다. 예측 움직임 벡터가 생성되면, 처리는 스텝 S1535로 진행된다.
스텝 S1535에서, 움직임 보상부(211-0)는, 스텝 S1533 또는 스텝 S1534의 처리에 의해 생성된 예측 움직임 벡터를 사용하여 움직임 벡터를 재구축한다.
스텝 S1536에서, 움직임 보상부(211-0)는, 움직임 보상을 행하여, 예측 화상을 생성한다. 또한, 움직임 보상부(211-0)는, 재구축된 움직임 벡터를 기억한다. 스텝 S1536의 처리가 종료되면, V0 움직임 보상 처리가 종료되고, 처리는, 도 20으로 복귀된다.
<V1 복호 처리의 흐름>
이어서, 도 22의 흐름도를 참조하여, 도 19의 스텝 S1402에서 실행되는, 뷰 1의 부호화 데이터를 복호하는 V1 복호 처리의 흐름의 예를 설명한다.
뷰 0에 대한 처리와, 뷰 1에 대한 처리의 차이는, 주로, 움직임 보상 처리에 있다. 따라서, 도 22에 도시된 바와 같이, V1 복호 처리는, V1 화상 복호 장치(200-1)에 의해, 뷰 0에 대한 복호 처리(도 20의 V0 복호 처리)의 경우와 기본적으로 마찬가지로 실행된다. 즉, 도 22의 스텝 S1601 내지 스텝 S1615의 각 처리는, 도 20의 스텝 S1501 내지 스텝 S1515의 각 처리와 기본적으로 마찬가지로 실행된다. 따라서, 도 22의 설명은, 도 20의 설명에서의 V0 화상 복호 장치(200-0)의 각 부를 V1 화상 복호 장치(200-1)의 각 부로 치환하고, 도 20에서의 뷰 0에 대한 처리와의 설명을, 뷰 1에 대한 처리로 바꾸기만 하면 되므로, 그 설명은 생략한다.
<V1 움직임 보상 처리의 흐름>
이어서, 도 22의 스텝 S1606에서 실행되는 V1 움직임 보상 처리의 흐름의 예를, 도 23의 흐름도를 참조하여 설명한다.
V1 움직임 보상 처리가 개시되면, 스텝 S1631에서, 움직임 보상부(211-1)는, 차분 움직임 정보(차분 움직임 벡터)를 취득한다. 스텝 S1632에서, 움직임 보상부(211-1)는, 인터 예측 정보에 기초하여, 예측 움직임 벡터의 모드가 공간 예측인지 여부를 판정한다. 공간 예측이라고 판정된 경우, 처리는 스텝 S1633으로 진행된다.
스텝 S1633에서, 움직임 보상부(211-1)는, 픽처 내의 압축 전 V1 움직임 벡터(커런트 블록에 대하여 공간적으로 주변의 블록의 움직임 벡터)를 사용하여 예측 움직임 벡터를 생성한다. 예측 움직임 벡터가 생성되면, 처리는 스텝 S1635로 진행된다.
또한, 스텝 S1632에서, 공간 예측이 아니라고 판정된 경우, 처리는 스텝 S1634로 진행된다.
뷰 1의 경우, 최초로 처리되는 뷰가 아니므로, 예측 움직임 벡터의 모드가 뷰간 예측(IVMP)일 가능성도 있다.
스텝 S1634에서, 움직임 보상부(211-1)는, 인터 예측 정보에 기초하여, 예측 움직임 벡터의 모드가 시간 예측인지 여부를 판정한다. 시간 예측이라고 판정된 경우, 처리는 스텝 S1635로 진행된다.
스텝 S1635에서, 움직임 보상부(211-1)는, 다른 픽처 내의 1/16 압축 후 V1 움직임 벡터(커런트 블록에 대하여 공간적으로 주변의 블록의 움직임 벡터)를 사용하여 예측 움직임 벡터를 생성한다. 예측 움직임 벡터가 생성되면, 처리는 스텝 S1637로 진행된다.
또한, 스텝 S1634에서, 시간 예측이 아니라고 판정된 경우, 처리는 스텝 S1636으로 진행된다.
스텝 S1636에서, 움직임 보상부(211-1)는, 1/16 압축 후 V0 움직임 벡터(뷰 0의 화상의 콜로케이티드 블록의 움직임 벡터)를 사용하여 예측 움직임 벡터를 생성한다. 예측 움직임 벡터가 생성되면, 처리는 스텝 S1637로 진행된다.
스텝 S1637에서, 움직임 보상부(211-1)는, 스텝 S1633, 스텝 S1635, 또는 스텝 S1636에서 생성된 예측 움직임 벡터를 사용하여, 움직임 벡터를 재구축한다.
스텝 S1638에서, 움직임 보상부(211-1)는, 움직임 보상을 행하여, 예측 화상을 생성한다. 또한, 움직임 보상부(211-1)는, 스텝 S1637에서 재구축된 움직임 벡터를 기억한다. 스텝 S1638의 처리가 종료되면, V1 움직임 보상 처리가 종료되고, 처리는 도 22로 복귀된다.
<V2 복호 처리의 흐름>
이어서, 도 24의 흐름도를 참조하여, 도 19의 스텝 S1403에서 실행되는, 뷰 2의 부호화 데이터를 복호하는 V2 복호 처리의 흐름의 예를 설명한다.
뷰 1에 대한 처리와, 뷰 2에 대한 처리의 차이는, 주로, 움직임 보상 처리에 있다. 따라서, 도 24에 도시된 바와 같이, V2 복호 처리는, V2 화상 복호 장치(200-2)에 의해, 뷰 1에 대한 복호 처리(도 22의 V1 복호 처리)의 경우와 기본적으로 마찬가지로 실행된다. 즉, 도 24의 스텝 S1701 내지 스텝 S1715의 각 처리는, 도 22의 스텝 S1601 내지 스텝 S1615의 각 처리와 기본적으로 마찬가지로 실행된다. 따라서, 도 24의 설명은, 도 22의 설명에서의 V1 화상 복호 장치(200-1)의 각 부를 V2 화상 복호 장치(200-2)의 각 부로 치환하고, 도 22에서의 뷰 1에 대한 처리와의 설명을, 뷰 2에 대한 처리로 바꾸기만 하면 되므로, 그 설명은 생략한다.
<V2 움직임 보상 처리의 흐름>
이어서, 도 24의 스텝 S1706에서 실행되는 V2 움직임 보상 처리의 흐름의 예를, 도 25의 흐름도를 참조하여 설명한다.
도 25에 도시된 바와 같이, V2 움직임 보상 처리는, V1 움직임 보상 처리(도 23)와 기본적으로 마찬가지로 행하여진다. 즉, 도 25의 스텝 S1731 내지 스텝 S1738의 각 처리는, 각각 도 23의 스텝 S1631 내지 스텝 S1638의 각 처리와 기본적으로 마찬가지로 실행된다. 단, V1 움직임 보상 처리는, 움직임 보상부(211-1)가 실행하는 것에 반해, V2 움직임 보상 처리는, 움직임 보상부(211-2)가 실행한다.
또한, V2 움직임 보상 처리의 처리 대상은, 뷰 1의 화상이 아니라 뷰 2의 화상이다. 따라서, 스텝 S1733에서, 움직임 보상부(211-2)는, 픽처 내의 압축 전 V2 움직임 벡터(커런트 블록에 대하여 공간적으로 주변의 블록의 움직임 벡터)를 사용하여 예측 움직임 벡터를 생성한다.
또한, 스텝 S1735에서, 움직임 보상부(211-2)는, 다른 픽처의 1/16 압축 후 V2 움직임 벡터(커런트 블록에 대하여 시간적으로 주변의 블록의 움직임 벡터)를 사용하여 예측 움직임 벡터를 생성한다.
또한, 스텝 S1736에서, 움직임 보상부(211-2)는, 1/16 압축 후 V1 움직임 벡터(커런트 블록에 대하여 뷰간적으로 주변의 블록의 움직임 벡터)를 사용하여 예측 움직임 벡터를 생성한다.
또한, 스텝 S1731, 스텝 S1732, 스텝 S1734, 스텝 S1737, 및 스텝 S1738의 각 처리는, 도 23의 스텝 S1631, 스텝 S1632, 스텝 S1634, 스텝 S1637, 및 스텝 S1638의 각 처리와 마찬가지로 실행된다.
스텝 S1738의 처리가 종료되면, V2 움직임 보상 처리가 종료되고, 처리는 도 24로 복귀된다.
이상과 같이 각 처리를 실행함으로써, 화상 복호 장치(200)는, IVMP용의 움직임 벡터를 위해 필요한 메모리 용량을 저감시킬 수 있어, 부호화·복호에 필요한 기억 용량의 증대를 억제할 수 있다.
또한, 이상에서는, 움직임 벡터의 정밀도가, 비압축의 상태에서 최고 4x4 정밀도이며, 압축 후, 16x16 정밀도로 되도록 설명했지만, 이것은 일례이며, 움직임 벡터의 정밀도는 임의이다. 또한, 움직임 벡터의 압축률도 임의이다. 즉, 각 뷰의, 공간 예측 움직임 벡터 후보, 시간 예측 움직임 벡터 후보, IVMP 예측 움직임 벡터 후보, 및 예측 움직임 벡터의 정밀도도 임의이다. 정밀도나 압축률이 모든 뷰에서 통일되어 있어도 되고, 되어 있지 않아도 된다.
<2. 제2 실시 형태>
<IVMP용의 움직임 벡터의 압축>
이상과 같은 움직임 벡터의 압축에 있어서, 도 26에 도시된 바와 같이, IVMP용의 움직임 벡터와 TMVP용의 움직임 벡터를 각각 압축(예를 들어 씨닝)하도록 해도 된다. 즉, IVMP용의 움직임 벡터의 정밀도와 TMVP용의 움직임 벡터의 정밀도가 서로 상이하도록 해도 된다.
보다 구체적으로는, 예를 들어, 4x4 정밀도의 움직임 벡터를, 다음 뷰의 처리(부호화·복호)가 개시될 때까지 IVMP용으로 8x8 정밀도로 압축하고(예를 들어 씨닝), 다음 픽처의 처리(부호화·복호)가 개시될 때까지 TMVP용으로 16x16 정밀도로 압축한다(예를 들어 씨닝함). 즉, IVMP는 8x8 정밀도의 움직임 벡터를 참조하고, TMVP는, 16x16 정밀도의 움직임 벡터를 참조한다. 이와 같이 함으로써, 종래의 방법과 비교하여, 필요한 메모리의 용량 증대를 억제할 수 있다. 또한, 제1 실시 형태에서 설명한 방법과 비교하여, IVMP의 움직임 벡터의 정밀도를 높게 할 수 있다.
예를 들어, 도 26에 나타내는 예와 같이, IVMP용의 움직임 벡터는, 움직임 벡터 압축부((V0 내지 V2) MV Compressor A)에 의해 8x8 정밀도로 압축하여(예를 들어 씨닝), 템포럴 움직임 벡터 메모리((V0 내지 V2) Temporal MV Memory)에 기억한다. IVMP는, 이 템포럴 움직임 벡터 메모리의 움직임 벡터를 참조하도록 한다. 이 압축(예를 들어 씨닝)에 의해, 템포럴 움직임 벡터 메모리의 용량 증대를 억제할 수 있다.
그리고, TMVP용의 움직임 벡터는, 템포럴 움직임 벡터 메모리의 움직임 벡터를, 다시, 움직임 벡터 압축부((V0 내지 V2) MV Compressor B)에 의해 16x16 정밀도로 압축하여(예를 들어 씨닝), 움직임 벡터 메모리((V0 내지 V2) MV Memory)에 기억한다. TMVP는, 이 움직임 벡터 메모리의 움직임 벡터를 참조하도록 한다. 이와 같이 함으로써, 압축 처리의 압축률(예를 들어 씨닝 처리의 씨닝률)을 모두 1/4로 할 수 있다. 즉, 동일한 압축 처리(예를 들어 씨닝 처리)를 2회 행하기만 해도 되서, 실현이 용이하다.
이하에, 이 압축 방법에 대해서 보다 구체적으로 설명한다. 또한, 이하에서는, 움직임 벡터의 정밀도가, 비압축의 상태에서 최고 4x4 정밀도인 것으로 한다. 또한, 그 압축 전의 움직임 벡터가, IVMP용으로, 8x8 정밀도로 압축(1/4 압축)되는 것으로 한다. 또한, 그 1/4 압축 후의 움직임 벡터(8x8 정밀도의 움직임 벡터)가, TMVP용으로 16x16 정밀도로 압축(1/4 압축)되는 것으로 한다.
<화상 부호화 장치>
도 27은, V0 화상 부호화 장치의 주된 구성예를 도시하는 블록도이다. 도 28은, V1 화상 부호화 장치의 주된 구성예를 도시하는 블록도이다. 도 29는, V2 화상 부호화 장치의 주된 구성예를 도시하는 블록도이다.
도시하지 않은 화상 부호화 장치(300)는, 도 2에 도시되는 다시점 화상과 같은 복수 레이어를 포함하는 동화상을 부호화한다. 이 화상 부호화 장치(300)는, 다시점 화상의 각 뷰를 부호화하기 위해서, 도 27의 V0 화상 부호화 장치(300-0), 도 28의 V1 화상 부호화 장치(300-1), 및 도 29의 V2 화상 부호화 장치(300-3)를 갖는다. V0 화상 부호화 장치(300-0)는, 뷰 0의 화상을 부호화한다. V1 화상 부호화 장치(300-1)는, 뷰 1의 화상을 부호화한다. V2 화상 부호화 장치(300-2)는, 뷰 2의 화상을 부호화한다.
도 27에 도시된 바와 같이, V0 화상 부호화 장치(300-0)는, A/D 변환부(301-0), 화면 재배열 버퍼(302-0), 연산부(303-0), 직교 변환부(304-0), 양자화부(305-0), 가역 부호화부(306-0), 축적 버퍼(307-0), 역양자화부(308-0), 및 역직교 변환부(309-0)를 갖는다. 또한, V0 화상 부호화 장치(300-0)는, 연산부(310-0), 루프 필터(311-0), 디코드 픽처 버퍼(312-0), 화면 내 예측부(313-0), 움직임 예측·보상부(314-0), 예측 화상 선택부(315-0), 및 레이트 제어부(316-0)를 갖는다.
또한, 도 28에 도시된 바와 같이, V1 화상 부호화 장치(300-1)는, A/D 변환부(301-1), 화면 재배열 버퍼(302-1), 연산부(303-1), 직교 변환부(304-1), 양자화부(305-1), 가역 부호화부(306-1), 축적 버퍼(307-1), 역양자화부(308-1), 및 역직교 변환부(309-1)를 갖는다. 또한, V1 화상 부호화 장치(300-1)는, 연산부(310-1), 루프 필터(311-1), 디코드 픽처 버퍼(312-1), 화면 내 예측부(313-1), 움직임 예측·보상부(314-1), 예측 화상 선택부(315-1), 및 레이트 제어부(316-1)를 갖는다.
또한, 도 29에 도시된 바와 같이, V2 화상 부호화 장치(300-2)는, A/D 변환부(301-2), 화면 재배열 버퍼(302-2), 연산부(303-2), 직교 변환부(304-2), 양자화부(305-2), 가역 부호화부(306-2), 축적 버퍼(307-2), 역양자화부(308-2), 및 역직교 변환부(309-2)를 갖는다. 또한, V2 화상 부호화 장치(300-2)는, 연산부(310-2), 루프 필터(311-2), 디코드 픽처 버퍼(312-2), 화면 내 예측부(313-2), 움직임 예측·보상부(314-2), 예측 화상 선택부(315-2), 및 레이트 제어부(316-2)를 갖는다.
이하에서, A/D 변환부(301-0) 내지 A/D 변환부(301-2)를 서로 구별하여 설명할 필요가 없을 경우, 간단히 A/D 변환부(301)라고 칭한다. 또한, 화면 재배열 버퍼(302-0) 내지 화면 재배열 버퍼(302-2)를 서로 구별하여 설명할 필요가 없을 경우, 간단히 화면 재배열 버퍼(302)라고 칭한다. 또한, 연산부(303-0) 내지 연산부(303-2)를 서로 구별하여 설명할 필요가 없을 경우, 간단히 연산부(303)라고 칭한다. 또한, 직교 변환부(304-0) 내지 직교 변환부(304-2)를 서로 구별하여 설명할 필요가 없을 경우, 간단히 직교 변환부(304)라고 칭한다. 또한, 양자화부(305-0) 내지 양자화부(305-2)를 서로 구별하여 설명할 필요가 없을 경우, 간단히 양자화부(305)라고 칭한다. 또한, 가역 부호화부(306-0) 내지 가역 부호화부(306-2)를 서로 구별하여 설명할 필요가 없을 경우, 간단히 가역 부호화부(306)라고 칭한다. 또한, 축적 버퍼(307-0) 내지 축적 버퍼(307-2)를 서로 구별하여 설명할 필요가 없을 경우, 간단히 축적 버퍼(307)라고 칭한다. 또한, 역양자화부(308-0) 내지 역양자화부(308-2)를 서로 구별하여 설명할 필요가 없을 경우, 간단히 역양자화부(308)라고 칭한다. 또한, 역직교 변환부(309-0) 내지 역직교 변환부(309-2)를 서로 구별하여 설명할 필요가 없을 경우, 간단히 역직교 변환부(309)라고 칭한다.
또한, 연산부(310-0) 내지 연산부(310-2)를 서로 구별하여 설명할 필요가 없을 경우, 간단히 연산부(310)라고 칭한다. 또한, 루프 필터(311-0) 내지 루프 필터(311-2)를 서로 구별하여 설명할 필요가 없을 경우, 간단히 루프 필터(311)라고 칭한다. 또한, 디코드 픽처 버퍼(312-0) 내지 디코드 픽처 버퍼(312-2)를 서로 구별하여 설명할 필요가 없을 경우, 간단히 디코드 픽처 버퍼(312)라고 칭한다. 또한, 화면 내 예측부(313-0) 내지 화면 내 예측부(313-2)를 서로 구별하여 설명할 필요가 없을 경우, 간단히 화면 내 예측부(313)라고 칭한다. 또한, 움직임 예측·보상부(314-0) 내지 움직임 예측·보상부(314-2)를 서로 구별하여 설명할 필요가 없을 경우, 간단히 움직임 예측·보상부(314)라고 칭한다. 또한, 예측 화상 선택부(315-0) 내지 예측 화상 선택부(315-2)를 서로 구별하여 설명할 필요가 없을 경우, 간단히 예측 화상 선택부(315)라고 칭한다. 또한, 레이트 제어부(316-0) 내지 레이트 제어부(316-2)를 서로 구별하여 설명할 필요가 없을 경우, 간단히 레이트 제어부(316)라고 칭한다.
A/D 변환부(301)는 A/D 변환부(101)에 대응하며, 기본적으로 A/D 변환부(101)와 마찬가지의 처리를 행한다. 화면 재배열 버퍼(302)는 화면 재배열 버퍼(102)에 대응하며, 기본적으로 화면 재배열 버퍼(102)와 마찬가지의 처리를 행한다. 연산부(303)는 연산부(103)에 대응하며, 기본적으로 연산부(103)와 마찬가지의 처리를 행한다. 직교 변환부(304)는 직교 변환부(104)에 대응하며, 기본적으로 직교 변환부(104)와 마찬가지의 처리를 행한다. 양자화부(305)는 양자화부(105)에 대응하며, 기본적으로 양자화부(105)와 마찬가지의 처리를 행한다. 가역 부호화부(306)는 가역 부호화부(106)에 대응하며, 기본적으로 가역 부호화부(106)와 마찬가지의 처리를 행한다. 축적 버퍼(307)는 축적 버퍼(107)에 대응하며, 기본적으로 축적 버퍼(107)와 마찬가지의 처리를 행한다.
역양자화부(308)는 역양자화부(108)에 대응하며, 기본적으로 역양자화부(108)와 마찬가지의 처리를 행한다. 역직교 변환부(309)는 역직교 변환부(109)에 대응하며, 기본적으로 역직교 변환부(109)와 마찬가지의 처리를 행한다. 연산부(310)는 연산부(110)에 대응하며, 기본적으로 연산부(110)와 마찬가지의 처리를 행한다. 루프 필터(311)는 루프 필터(111)에 대응하며, 기본적으로 루프 필터(111)와 마찬가지의 처리를 행한다. 디코드 픽처 버퍼(312)는, 디코드 픽처 버퍼(112)에 대응하며, 기본적으로 디코드 픽처 버퍼(112)와 마찬가지의 처리를 행한다.
화면 내 예측부(313)는 화면 내 예측부(113)에 대응하며, 기본적으로 화면 내 예측부(113)와 마찬가지의 처리를 행한다. 움직임 예측·보상부(314)는 움직임 예측·보상부(114)에 대응하며, 기본적으로 움직임 예측·보상부(114)와 마찬가지의 처리를 행한다. 예측 화상 선택부(315)는 예측 화상 선택부(115)에 대응하며, 기본적으로 예측 화상 선택부(115)와 마찬가지의 처리를 행한다.
V0 화상 부호화 장치(300-0)는, 또한, V0 움직임 벡터 압축부(321-0), V0 템포럴 메모리(322-0), V0 움직임 벡터 압축부(323-0), 및 V0 움직임 벡터 메모리(324-0)를 갖는다.
V1 화상 부호화 장치(300-1)는, 또한, V1 움직임 벡터 압축부(321-1), V1 템포럴 메모리(322-1), V1 움직임 벡터 압축부(323-1), 및 V1 움직임 벡터 메모리(324-1)를 갖는다.
V2 화상 부호화 장치(300-2)는, 또한, V2 움직임 벡터 압축부(321-2), V2 템포럴 메모리(322-2), V2 움직임 벡터 압축부(323-2), 및 V2 움직임 벡터 메모리(324-2)를 갖는다.
또한, 움직임 예측·보상부(314-0)는, 움직임 예측에 의해 생성한 커런트 블록의 압축 전 V0 움직임 벡터(최고 4x4 정밀도)를 V0 움직임 벡터 압축부(321-0)에 공급한다. 또한, 움직임 예측·보상부(314-0)는, 커런트 블록의 시간적으로 주변의 블록의 움직임 벡터로서, V0 움직임 벡터 메모리(324-0)에 기억되어 있는 1/16 압축 후 V0 움직임 벡터를 취득한다.
또한, 움직임 예측·보상부(314-1)는, 움직임 예측에 의해 생성한 커런트 블록의 압축 전 V1 움직임 벡터(최고 4x4 정밀도)를 V1 움직임 벡터 압축부(321-1)에 공급한다. 또한, 움직임 예측·보상부(314-1)는, 커런트 블록의 시간적으로 주변의 블록의 움직임 벡터로서, V1 움직임 벡터 메모리(324-1)에 기억되어 있는 1/16 압축 후 V1 움직임 벡터를 취득한다. 또한, 움직임 예측·보상부(314-1)는, 커런트 블록의 뷰간적으로 주변의 블록의 움직임 벡터로서, V0 움직임 벡터 메모리(324-0)에 기억되어 있는 1/16 압축 후 V0 움직임 벡터를 취득한다.
또한, 움직임 예측·보상부(314-2)는, 움직임 예측에 의해 생성한 커런트 블록의 압축 전 V2 움직임 벡터(최고 4x4 정밀도)를 V2 움직임 벡터 압축부(321-2)에 공급한다. 또한, 움직임 예측·보상부(314-2)는, 커런트 블록의 시간적으로 주변의 블록의 움직임 벡터로서, V2 움직임 벡터 메모리(324-2)에 기억되어 있는 1/16 압축 후 V2 움직임 벡터를 취득한다. 또한, 움직임 예측·보상부(314-2)는, 커런트 블록의 뷰간적으로 주변의 블록의 움직임 벡터로서, V1 움직임 벡터 메모리(324-1)에 기억되어 있는 1/16 압축 후 V1 움직임 벡터를 취득한다.
V0 움직임 벡터 압축부(321-0)는, 움직임 예측·보상부(314-0)로부터 공급된 압축 전 V0 움직임 벡터를 8x8 정밀도로 압축하고(1/4 압축이라고도 함), 그 압축 후의 움직임 벡터(1/4 압축 후 V0 움직임 벡터라고도 함)를 V0 템포럴 메모리(322-0)에 공급한다. 즉, V0 움직임 벡터 압축부(321-0)는, 압축률이 상이할 뿐, V0 움직임 벡터 압축부(121-0)와 마찬가지의 압축을 행한다. 따라서, 이 움직임 벡터의 압축 방법은, V0 움직임 벡터 압축부(121-0)의 경우와 마찬가지로 임의이다.
V0 템포럴 메모리(322-0)는, 공급된 1/4 압축 후 V0 움직임 벡터를 기억한다. V0 템포럴 메모리(322-0)는, 적절히, 기억하고 있는 1/4 압축 후 V0 움직임 벡터를, 뷰간적으로 주변의 블록의 움직임 벡터로서, 움직임 예측·보상부(314-1)에 공급한다. 또한, V0 템포럴 메모리(322-0)는, 적절히, 기억하고 있는 1/4 압축 후 V0 움직임 벡터를, V0 움직임 벡터 압축부(323-0)에 공급한다.
V0 움직임 벡터 압축부(323-0)는, V0 템포럴 메모리(322-0)로부터 1/4 압축 후 V0 움직임 벡터를 판독하고, 16x16 정밀도로 압축하여(1/4 압축이라고도 함), 그 압축 후의 움직임 벡터(즉, 1/16 압축 후 V0 움직임 벡터)를 V0 움직임 벡터 메모리(324-0)에 공급한다. 이 V0 움직임 벡터 압축부(323-0)는, V0 움직임 벡터 압축부(321-0)와 마찬가지의 처리를 행한다. 즉, 2회로 나누어, 동일한 1/4 압축이 행하여진다. 따라서, V0 움직임 벡터 압축부(121-0)가 생성하는 것과 마찬가지의 1/16 압축 후 V0 움직임 벡터가 생성된다.
또한, V0 움직임 벡터 압축부(321-0)와 V0 움직임 벡터 압축부(323-0)에서 압축 방법을 서로 상이하게 해도 물론 된다. 또한, V0 움직임 벡터 압축부(323-0)는, V0 움직임 벡터 압축부(121-0)와 같이, 움직임 예측·보상부(314-0)에 의해 생성되는 압축 전 V0 움직임 벡터를 1/16 압축하도록 해도 된다.
V0 움직임 벡터 메모리(324-0)는, 공급된 1/16 압축 후 V0 움직임 벡터를 기억한다. V0 움직임 벡터 메모리(324-0)는, 적절히, 기억하고 있는 1/16 압축 후 V0 움직임 벡터를, 시간적으로 주변의 블록의 움직임 벡터로서, 움직임 예측·보상부(314-0)에 공급한다.
V1 움직임 벡터 압축부(321-1)는, V0 움직임 벡터 압축부(321-0)와 마찬가지의 처리부이다. V1 움직임 벡터 압축부(321-1)는, 움직임 예측·보상부(314-1)로부터 공급된 압축 전 V1 움직임 벡터를 1/4 압축하고, 그 압축 후의 움직임 벡터(1/4 압축 후 V1 움직임 벡터라고도 함)를 V1 템포럴 메모리(322-1)에 공급한다.
V1 템포럴 메모리(322-1)는, V0 템포럴 메모리(322-0)와 마찬가지의 처리부이다. V1 템포럴 메모리(322-1)는, 공급된 1/4 압축 후 V1 움직임 벡터를 기억한다. V1 템포럴 메모리(322-1)는, 적절히, 기억하고 있는 1/4 압축 후 V1 움직임 벡터를, 뷰간적으로 주변의 블록의 움직임 벡터로서, 움직임 예측·보상부(314-2)에 공급한다. 또한, V1 템포럴 메모리(322-1)는, 적절히, 기억하고 있는 1/4 압축 후 V1 움직임 벡터를, V1 움직임 벡터 압축부(323-1)에 공급한다.
V1 움직임 벡터 압축부(323-1)는, V0 움직임 벡터 압축부(323-0)와 마찬가지의 처리부이다. V1 움직임 벡터 압축부(323-1)는, V1 템포럴 메모리(322-1)로부터1/4 압축 후 V1 움직임 벡터를 판독하고, 1/4 압축하여, 그 압축 후의 움직임 벡터(즉, 1/16 압축 후 V1 움직임 벡터)를 V1 움직임 벡터 메모리(324-1)에 공급한다.
V1 움직임 벡터 메모리(324-1)는, 공급된 1/16 압축 후 V1 움직임 벡터를 기억한다. V1 움직임 벡터 메모리(324-1)는, 적절히, 기억하고 있는 1/16 압축 후 V1 움직임 벡터를, 시간적으로 주변의 블록의 움직임 벡터로서, 움직임 예측·보상부(314-1)에 공급한다.
V2 움직임 벡터 압축부(321-2)는, V0 움직임 벡터 압축부(321-0)와 마찬가지의 처리부이다. V2 움직임 벡터 압축부(321-2)는, 움직임 예측·보상부(314-2)로부터 공급된 압축 전 V2 움직임 벡터를 1/4 압축하고, 그 압축 후의 움직임 벡터(1/4 압축 후 V2 움직임 벡터라고도 함)를 V2 템포럴 메모리(322-2)에 공급한다.
V2 템포럴 메모리(322-2)는, V0 템포럴 메모리(322-0)와 마찬가지의 처리부이다. V2 템포럴 메모리(322-2)는, 공급된 1/4 압축 후 V2 움직임 벡터를 기억한다. V2 템포럴 메모리(322-2)는, 적절히, 기억하고 있는 1/4 압축 후 V2 움직임 벡터를, V2 움직임 벡터 압축부(323-2)에 공급한다.
V2 움직임 벡터 압축부(323-2)는, V0 움직임 벡터 압축부(323-0)와 마찬가지의 처리부이다. V2 움직임 벡터 압축부(323-2)는, V2 템포럴 메모리(322-2)로부터 1/4 압축 후 V2 움직임 벡터를 판독하여 1/4 압축하고, 그 압축 후의 움직임 벡터(즉, 1/16 압축 후 V2 움직임 벡터)를 V2 움직임 벡터 메모리(324-2)에 공급한다.
V2 움직임 벡터 메모리(324-2)는, 공급된 1/16 압축 후 V2 움직임 벡터를 기억한다. V2 움직임 벡터 메모리(324-2)는, 적절히, 기억하고 있는 1/16 압축 후 V2 움직임 벡터를, 시간적으로 주변의 블록의 움직임 벡터로서, 움직임 예측·보상부(314-2)에 공급한다.
또한, V2 화상 부호화 장치(300-2)는, 마지막으로 처리되는 뷰 2의 화상을 부호화하므로, 움직임 예측·보상부(314-2)에서 얻어진 움직임 벡터는, 다른 뷰에서 이용되지 않는다. 따라서, V2 움직임 벡터 압축부(321-2) 내지 V2 움직임 벡터 메모리(324-2) 대신에 V2 화상 부호화 장치(100-2)와 같이, V2 움직임 벡터 압축부(121-2) 및 V2 움직임 벡터 메모리(122-2)를 적용하도록 해도 된다.
이상과 같이, V0 움직임 벡터 압축부(321-0), V1 움직임 벡터 압축부(321-1), 및 V2 움직임 벡터 압축부(321-2)가, 움직임 벡터의 수를 저감시킴으로써, 움직임 벡터의 정보량을 저감시킬(즉 압축할) 수 있다. 이에 의해, V0 템포럴 메모리(322-0), V1 템포럴 메모리(322-1), 및 V2 템포럴 메모리(322-2)의 용량을 저감시킬 수 있다.
또한, 그때, IVMP용의 움직임 벡터의 정밀도를 TMVP용의 움직임 벡터의 정밀도보다 높게 하도록 압축률을 억제함으로써, IVMP용의 움직임 벡터의 정밀도를 TMVP용의 움직임 벡터의 정밀도와 동등한 것으로 하는 경우보다, IVMP의 예측 정밀도를 향상시킬 수 있다.
이에 의해, 화상 부호화 장치(300)의, 제조나 개발의 비용 저감, 장치의 소형화, 및 소비 전력의 저감 등을 실현할 수 있다.
<V0 부호화 처리의 흐름>
이어서, 이상과 같은 화상 부호화 장치(100)에 의해 실행되는 처리의 흐름에 대하여 설명한다. 또한, 화상 부호화 장치(300)에 의한 부호화 처리의 흐름은, 제1 실시 형태의 경우(도 9)와 마찬가지이므로 그 설명을 생략한다.
이어서, 도 30의 흐름도를 참조하여, 도 9의 스텝 S1001에서 실행되는, 뷰 0의 부호화를 행하는 V0 부호화 처리의 흐름의 예를 설명한다.
스텝 S2101 내지 스텝 S2105의 각 처리는, V0 화상 부호화 장치(300-0)의 각 처리부에 의해, 도 10의 스텝 S1101 내지 스텝 S1105의 각 처리와 마찬가지로 행하여진다.
스텝 S2106에서, V0 움직임 벡터 압축부(321-0)는, 스텝 S2104의 처리에 의해 생성된 뷰 0의 커런트 픽처의 움직임 벡터이며, 최고 4x4 정밀도의 압축 전 V0 움직임 벡터를, 8x8 정밀도로 압축한다(1/4 압축). 이 1/4 압축은, 예를 들어, LCU(예를 들어 16x16 화소)마다 행해진다.
스텝 S2107에서, V0 템포럴 메모리(322-0)는, 스텝 S2106의 처리에 의해 생성된 1/4 압축 후 V0 움직임 벡터를 기억한다.
스텝 S2108 내지 스텝 S2119의 각 처리는, V0 화상 부호화 장치(300-0)의 각 처리부에 의해, 도 10의 스텝 S1108 내지 스텝 S1119의 각 처리와 마찬가지로 행하여진다.
스텝 S2120에서, V0 움직임 벡터 압축부(323-0)는, 스텝 S2107의 처리에 의해 기억된 1/4 압축 후 V0 움직임 벡터를, V0 템포럴 메모리(322-0)로부터 판독하고, 다시 1/4 압축한다.
스텝 S2121에서, V0 움직임 벡터 메모리(324-0)는, 스텝 S2106의 처리에 의해 생성된 1/16 압축 후 V0 움직임 벡터를 기억한다.
스텝 S2121의 처리가 종료되면, V0 부호화 처리가 종료되고, 처리는 도 9로 복귀된다. 또한, 도 30의 스텝 S2104에서 실행되는 V0 인터 움직임 예측 처리는, 움직임 예측·보상부(314-0)에 의해, 제1 실시 형태의 경우(도 11)와 마찬가지로 행하여지므로 그 설명을 생략한다.
<V1 부호화 처리의 흐름>
이어서, 도 31의 흐름도를 참조하여, 도 9의 스텝 S1002에서 실행되는, 뷰 1의 부호화를 행하는 V1 부호화 처리의 흐름의 예를 설명한다.
뷰 0에 대한 처리와, 뷰 1에 대한 처리의 차이는, 주로, 인터 움직임 예측 처리에 있다. 따라서, 도 31에 도시된 바와 같이, 뷰 1에 대한 V1 부호화 처리는, V1 화상 부호화 장치(300-1)에 의해, 뷰 0에 대한 V0 부호화 처리(도 30)의 경우와 기본적으로 마찬가지로 실행된다. 즉, 도 31의 스텝 S2201 내지 스텝 S2221의 각 처리는, 도 30의 스텝 S2101 내지 스텝 S2121의 각 처리와 기본적으로 마찬가지로 실행된다. 따라서, 도 31의 설명은, 도 30의 설명에서의 V0 화상 부호화 장치(300-0)의 각 부를 V1 화상 부호화 장치(300-1)의 각 부로 치환하고, 도 30에서 뷰 0에 대한 처리로서 한 설명을, 뷰 1에 대한 처리에 대한 것으로서 바꾸기만 하면 되므로, 그 설명은 생략한다.
<V1 인터 움직임 예측 처리의 흐름>
이어서, 도 31의 스텝 S2204에서 실행되는 V1 인터 움직임 예측 처리의 흐름의 예를, 도 32의 흐름도를 참조하여 설명한다.
스텝 S2241 내지 스텝 S2243의 각 처리는, 움직임 예측·보상부(314-1)에 의해, 도 13의 스텝 S1231 내지 스텝 S1233의 각 처리와 마찬가지로 행하여진다.
스텝 S2244에서, 움직임 예측·보상부(114-1)는, V0 템포럴 메모리(322-0)로부터 1/4 압축 후 V0 움직임 벡터를 취득하고, 그것을 사용하여 IVMP 예측 움직임 벡터 후보를 결정한다.
스텝 S2245 내지 스텝 S2248의 각 처리는, 움직임 예측·보상부(314-1)에 의해, 도 13의 스텝 S1235 내지 스텝 S1238의 각 처리와 마찬가지로 행하여진다. 스텝 S2248의 처리가 종료되면, V1 인터 움직임 예측 처리가 종료되고, 처리는, 도 31로 복귀된다.
<V2 부호화 처리의 흐름>
이어서, 도 33의 흐름도를 참조하여, 도 9의 스텝 S1003에서 실행되는, 뷰 2의 부호화를 행하는 V2 부호화 처리의 흐름의 예를 설명한다.
뷰 2에 대한 처리는, 뷰 1에 대한 처리와 마찬가지로 실행된다. 따라서, 도 33에 도시된 바와 같이, V2 부호화 처리는, V2 화상 부호화 장치(300-2)에 의해, 뷰 1에 대한 V1 부호화 처리(도 31)의 경우와 기본적으로 마찬가지로 실행된다. 즉, 도 33의 스텝 S2301 내지 스텝 S2321의 각 처리는, 도 31의 스텝 S2201 내지 스텝 S2221의 각 처리와 기본적으로 마찬가지로 실행된다. 따라서, 도 33의 설명은, 도 31의 설명에서의 V1 화상 부호화 장치(300-1)의 각 부를 V2 화상 부호화 장치(300-2)의 각 부로 치환하고, 도 31에서 뷰 1에 대한 처리로서 한 설명을, 뷰 2에 대한 처리에 대한 것으로서 바꾸기만 하면 되므로, 그 설명은 생략한다.
또한, 스텝 S2306에서, 압축 전 V2 움직임 벡터를 1/16 압축하고, 얻어진 1/16 압축 후 V2 움직임 벡터를, 스텝 S2307에서 기억하도록 하여, 스텝 S2320 및 스텝 S2321의 처리를 생략하도록 해도 된다. 이와 같이 함으로써, 압축 처리의 횟수가 저감되므로, 압축에 의한 부하의 증대를 억제할 수 있다. 단, 도 33에 도시된 바와 같이, 1/4 압축을 2회 행함으로써, 다른 뷰와 마찬가지로 압축을 행할 수 있어, 제어가 용이해진다.
<V2 인터 움직임 예측 처리의 흐름>
이어서, 도 33의 스텝 S2304에서 실행되는 V2 인터 움직임 예측 처리의 흐름의 예를, 도 34의 흐름도를 참조하여 설명한다.
도 34에 도시된 바와 같이, V2 인터 움직임 예측 처리는, 움직임 예측·보상부(314-2)에 의해, 뷰 1에 대한 V1 인터 움직임 예측 처리(도 32)의 경우와 기본적으로 마찬가지로 실행된다. 즉, 도 34의 스텝 S2341 내지 스텝 S2348의 각 처리는, 도 32의 스텝 S2241 내지 스텝 S2248의 각 처리와 기본적으로 마찬가지로 실행된다.
단, 스텝 S2342에서는, 비압축의 뷰 2의 움직임 벡터인 압축 전 V2 움직임 벡터가 사용된다. 또한, 스텝 S2343에서는, 1/16 압축된 1/16 압축 후 V2 움직임 벡터가 사용된다. 또한, 스텝 S2344에서는, 1/4 압축된 1/4 압축 후 V1 움직임 벡터가 사용된다.
스텝 S2348의 처리가 종료되면, V2 인터 움직임 예측 처리가 종료되고, 처리는 도 33으로 복귀된다.
이상과 같이 각 처리를 실행함으로써, 화상 부호화 장치(300)는, IVMP용의 움직임 벡터를 위해 필요한 메모리 용량을 저감시킬 수 있어, 부호화·복호에 필요한 기억 용량의 증대를 억제할 수 있다.
<화상 복호 장치>
이어서, 이상과 같이 부호화된 부호화 데이터(부호화 스트림)의 복호에 대하여 설명한다. 도 35는, V0 화상 복호 장치의 주된 구성예를 도시하는 블록도이다. 도 36은, V1 화상 복호 장치의 주된 구성예를 도시하는 블록도이다. 도 37은, V2 화상 복호 장치의 주된 구성예를 도시하는 블록도이다.
도시하지 않은 화상 복호 장치(400)는, 화상 부호화 장치(300)에 의해 부호화된, 도 2에 도시되는 다시점 화상과 같은 복수 레이어를 포함하는 동화상의 부호화 데이터를, 그 부호화 방법에 대응하는 복호 방법으로 복호한다. 이 화상 복호 장치(400)는, 다시점 화상의 각 뷰의 부호화 데이터를 복호하기 위해서, 도 35의 V0 화상 복호 장치(400-0), 도 36의 V1 화상 복호 장치(400-1), 및 도 37의 V2 화상 복호 장치(400-2)를 갖는다. V0 화상 복호 장치(400-0)는, V0 화상 부호화 장치(300-0)에 의해 부호화된 뷰 0의 화상 부호화 데이터를 복호한다. V1 화상 복호 장치(400-1)는, V1 화상 부호화 장치(300-1)에 의해 부호화된 뷰 1의 화상 부호화 데이터를 복호한다. V2 화상 복호 장치(400-2)는, V2 화상 부호화 장치(300-2)에 의해 부호화된 뷰 2의 화상 부호화 데이터를 복호한다.
도 35에 도시된 바와 같이, V0 화상 복호 장치(400-0)는, 축적 버퍼(401-0), 가역 복호부(402-0), 역양자화부(403-0), 역직교 변환부(404-0), 연산부(405-0), 루프 필터(406-0), 화면 재배열 버퍼(407-0), 및 D/A 변환부(408-0)를 갖는다. 또한, V0 화상 복호 장치(400-0)는, 디코드 픽처 버퍼(409-0), 화면 내 예측부(410-0), 움직임 보상부(411-0), 및 선택부(412-0)를 갖는다.
또한, 도 36에 도시된 바와 같이, V1 화상 복호 장치(400-1)는, 축적 버퍼(401-1), 가역 복호부(402-1), 역양자화부(403-1), 역직교 변환부(404-1), 연산부(405-1), 루프 필터(406-1), 화면 재배열 버퍼(407-1), 및 D/A 변환부(408-1)를 갖는다. 또한, V1 화상 복호 장치(400-1)는, 디코드 픽처 버퍼(409-1), 화면 내 예측부(410-1), 움직임 보상부(411-1), 및 선택부(412-1)를 갖는다.
또한, 도 37에 도시된 바와 같이, V2 화상 복호 장치(400-2)는, 축적 버퍼(401-2), 가역 복호부(402-2), 역양자화부(403-2), 역직교 변환부(404-2), 연산부(405-2), 루프 필터(406-2), 화면 재배열 버퍼(407-2), 및 D/A 변환부(408-2)를 갖는다. 또한, V2 화상 복호 장치(400-2)는, 디코드 픽처 버퍼(409-2), 화면 내 예측부(410-2), 움직임 보상부(411-2), 및 선택부(412-2)를 갖는다.
이하에서, 축적 버퍼(401-0) 내지 축적 버퍼(401-2)를 서로 구별하여 설명할 필요가 없을 경우, 간단히 축적 버퍼(401)라고 칭한다. 또한, 가역 복호부(402-0) 내지 가역 복호부(402-2)를 서로 구별하여 설명할 필요가 없을 경우, 간단히 가역 복호부(402)라고 칭한다. 또한, 역양자화부(403-0) 내지 역양자화부(403-2)를 서로 구별하여 설명할 필요가 없을 경우, 간단히 역양자화부(403)라고 칭한다. 또한, 역직교 변환부(404-0) 내지 역직교 변환부(404-2)를 서로 구별하여 설명할 필요가 없을 경우, 간단히 역직교 변환부(404)라고 칭한다. 또한, 연산부(405-0) 내지 연산부(405-2)를 서로 구별하여 설명할 필요가 없을 경우, 간단히 연산부(405)라고 칭한다.
또한, 루프 필터(406-0) 내지 루프 필터(406-2)를 서로 구별하여 설명할 필요가 없을 경우, 간단히 루프 필터(406)라고 칭한다. 또한, 화면 재배열 버퍼(407-0) 내지 화면 재배열 버퍼(407-2)를 서로 구별하여 설명할 필요가 없을 경우, 간단히 화면 재배열 버퍼(407)라고 칭한다. 또한, D/A 변환부(408-0) 내지 D/A 변환부(408-2)를 서로 구별하여 설명할 필요가 없을 경우, 간단히 D/A 변환부(408)라고 칭한다. 또한, 디코드 픽처 버퍼(409-0) 내지 디코드 픽처 버퍼(409-2)를 서로 구별하여 설명할 필요가 없을 경우, 간단히 디코드 픽처 버퍼(409)라고 칭한다.
또한, 화면 내 예측부(410-0) 내지 화면 내 예측부(410-2)를 서로 구별하여 설명할 필요가 없을 경우, 간단히 화면 내 예측부(410)라고 칭한다. 또한, 움직임 보상부(411-0) 내지 움직임 보상부(411-2)를 서로 구별하여 설명할 필요가 없을 경우, 간단히 움직임 보상부(411)라고 칭한다. 또한, 선택부(412-0) 내지 선택부(412-2)를 서로 구별하여 설명할 필요가 없을 경우, 간단히 선택부(412)라고 칭한다.
축적 버퍼(401)는 축적 버퍼(201)에 대응하며, 기본적으로 축적 버퍼(201)와 마찬가지의 처리를 행한다. 가역 복호부(402)는 가역 복호부(202)에 대응하며, 기본적으로 가역 복호부(202)와 마찬가지의 처리를 행한다. 역양자화부(403)는 역양자화부(203)에 대응하며, 기본적으로 역양자화부(203)와 마찬가지의 처리를 행한다. 역직교 변환부(404)는 역직교 변환부(204)에 대응하며, 기본적으로 역직교 변환부(204)와 마찬가지의 처리를 행한다. 연산부(405)는 연산부(205)에 대응하며, 기본적으로 연산부(205)와 마찬가지의 처리를 행한다.
루프 필터(406)는 루프 필터(206)에 대응하며, 기본적으로 루프 필터(206)와 마찬가지의 처리를 행한다. 화면 재배열 버퍼(407)는 화면 재배열 버퍼(207)에 대응하며, 기본적으로 화면 재배열 버퍼(207)와 마찬가지의 처리를 행한다. D/A 변환부(408)는 D/A 변환부(208)에 대응하며, 기본적으로 D/A 변환부(208)와 마찬가지의 처리를 행한다. 디코드 픽처 버퍼(409)는, 디코드 픽처 버퍼(209)에 대응하며, 기본적으로 디코드 픽처 버퍼(209)와 마찬가지의 처리를 행한다.
화면 내 예측부(410)는 화면 내 예측부(210)에 대응하며, 기본적으로 화면 내 예측부(210)와 마찬가지의 처리를 행한다. 움직임 보상부(411)는 움직임 보상부(211)에 대응하며, 기본적으로 움직임 보상부(211)와 마찬가지의 처리를 행한다. 선택부(412)는 선택부(212)에 대응하며, 기본적으로 선택부(212)와 마찬가지의 처리를 행한다.
V0 화상 복호 장치(400-0)는, 또한, V0 움직임 벡터 압축부(421-0), V0 템포럴 메모리(422-0), V0 움직임 벡터 압축부(423-0), 및 V0 움직임 벡터 메모리(424-0)를 갖는다.
V1 화상 복호 장치(400-1)는, 또한, V1 움직임 벡터 압축부(421-1), V1 템포럴 메모리(422-1), V1 움직임 벡터 압축부(423-1), 및 V1 움직임 벡터 메모리(424-1)를 갖는다.
V2 화상 복호 장치(400-2)는, 또한, V2 움직임 벡터 압축부(421-2), V2 템포럴 메모리(422-2), V2 움직임 벡터 압축부(423-2), 및 V2 움직임 벡터 메모리(424-2)를 갖는다.
또한, 움직임 보상부(411-0)는, 움직임 예측에 의해 생성한 커런트 블록의 압축 전 V0 움직임 벡터(최고 4x4 정밀도)를 V0 움직임 벡터 압축부(421-0)에 공급한다. 또한, 움직임 보상부(411-0)는, 커런트 블록의 시간적으로 주변의 블록의 움직임 벡터로서, V0 움직임 벡터 메모리(424-0)에 기억되어 있는 1/16 압축 후 V0 움직임 벡터를 취득한다.
또한, 움직임 보상부(411-1)는, 움직임 예측에 의해 생성한 커런트 블록의 압축 전 V1 움직임 벡터(4x4 정밀도)를 V1 움직임 벡터 압축부(421-1)에 공급한다. 또한, 움직임 보상부(411-1)는, 커런트 블록의 시간적으로 주변의 블록의 움직임 벡터로서, V1 움직임 벡터 메모리(424-1)에 기억되어 있는 1/16 압축 후 V1 움직임 벡터를 취득한다. 또한, 움직임 보상부(411-1)는, 커런트 블록의 뷰간적으로 주변의 블록의 움직임 벡터로서, V0 템포럴 메모리(422-0)에 기억되어 있는 1/4 압축 후 V0 움직임 벡터를 취득한다.
또한, 움직임 보상부(411-2)는, 움직임 예측에 의해 생성한 커런트 블록의 압축 전 V2 움직임 벡터(4x4 정밀도)를 V2 움직임 벡터 압축부(421-2)에 공급한다. 또한, 움직임 보상부(411-2)는, 커런트 블록의 시간적으로 주변의 블록의 움직임 벡터로서, V2 움직임 벡터 메모리(424-2)에 기억되어 있는 1/16 압축 후 V2 움직임 벡터를 취득한다. 또한, 움직임 보상부(411-2)는, 커런트 블록의 뷰간적으로 주변의 블록의 움직임 벡터로서, V1 템포럴 메모리(422-1)에 기억되어 있는 1/4 압축 후 V1 움직임 벡터를 취득한다.
V0 움직임 벡터 압축부(421-0)는, 움직임 보상부(411-0)로부터 공급된 압축 전 V0 움직임 벡터를 1/4 압축하고, 얻어진 1/4 압축 후 V0 움직임 벡터를 V0 템포럴 메모리(422-0)에 공급한다. 이 움직임 벡터의 압축 방법은, V0 움직임 벡터 압축부(321-0)와 동일한 방법인 한 임의이다.
V0 템포럴 메모리(422-0)는, 공급된 1/4 압축 후 V0 움직임 벡터를 기억한다. V0 템포럴 메모리(422-0)는, 적절히, 기억하고 있는 1/4 압축 후 V0 움직임 벡터를, 뷰간적으로 주변의 블록의 움직임 벡터로서 움직임 보상부(411-1)에 공급한다. 또한, V0 템포럴 메모리(422-0)는, 적절히, 기억하고 있는 1/4 압축 후 V0 움직임 벡터를, V0 움직임 벡터 압축부(423-0)에 공급한다.
V0 움직임 벡터 압축부(423-0)는, V0 템포럴 메모리(422-0)로부터 1/4 압축 후 V0 움직임 벡터를 판독해서 1/4 압축하고, 얻어진 1/16 압축 후 V0 움직임 벡터를 V0 움직임 벡터 메모리(424-0)에 공급한다. 이 움직임 벡터의 압축 방법은, V0 움직임 벡터 압축부(323-0)와 동일한 방법인 한 임의이다.
예를 들어, V0 움직임 벡터 압축부(421-0)와 V0 움직임 벡터 압축부(423-0)에서 압축 방법을 서로 상이하게 해도 물론 좋다. 또한, V0 움직임 벡터 압축부(423-0)는, V0 움직임 벡터 압축부(221-0)와 같이, 움직임 보상부(411-0)에 의해 생성되는 압축 전 V0 움직임 벡터를 1/16 압축하도록 해도 된다.
V0 움직임 벡터 메모리(424-0)는, 공급된 1/16 압축 후 V0 움직임 벡터를 기억한다. V0 움직임 벡터 메모리(424-0)는, 적절히, 기억하고 있는 1/16 압축 후 V0 움직임 벡터를, 시간적으로 주변의 블록의 움직임 벡터로서 움직임 보상부(411-0)에 공급한다.
V1 움직임 벡터 압축부(421-1)는, V0 움직임 벡터 압축부(421-0)와 마찬가지의 처리부이다. V1 움직임 벡터 압축부(421-1)는, 움직임 보상부(411-1)로부터 공급된 압축 전 V1 움직임 벡터를 1/4 압축하고, 얻어진 1/4 압축 후 V1 움직임 벡터를 V1 템포럴 메모리(422-1)에 공급한다.
V1 템포럴 메모리(422-1)는, V0 템포럴 메모리(422-0)와 마찬가지의 처리부이다. V1 템포럴 메모리(422-1)는, 공급된 1/4 압축 후 V1 움직임 벡터를 기억한다. V1 템포럴 메모리(422-1)는, 적절히, 기억하고 있는 1/4 압축 후 V1 움직임 벡터를, 뷰간적으로 주변의 블록의 움직임 벡터로서 움직임 보상부(411-2)에 공급한다. 또한, V1 템포럴 메모리(422-1)는, 적절히, 기억하고 있는 1/4 압축 후 V1 움직임 벡터를 V1 움직임 벡터 압축부(423-1)에 공급한다.
V1 움직임 벡터 압축부(423-1)는, V0 움직임 벡터 압축부(423-0)와 마찬가지의 처리부이다. V1 움직임 벡터 압축부(423-1)는, V1 템포럴 메모리(422-1)로부터 1/4 압축 후 V1 움직임 벡터를 판독해서 1/4 압축하고, 얻어진 1/16 압축 후 V1 움직임 벡터를 V1 움직임 벡터 메모리(424-1)에 공급한다.
V1 움직임 벡터 메모리(424-1)는, 공급된 1/16 압축 후 V1 움직임 벡터를 기억한다. V1 움직임 벡터 메모리(424-1)는, 적절히, 기억하고 있는 1/16 압축 후 V1 움직임 벡터를, 시간적으로 주변의 블록의 움직임 벡터로서 움직임 보상부(411-1)에 공급한다.
V2 움직임 벡터 압축부(421-2)는, V0 움직임 벡터 압축부(421-0)와 마찬가지의 처리부이다. V2 움직임 벡터 압축부(421-2)는, 움직임 보상부(411-2)로부터 공급된 압축 전 V2 움직임 벡터를 1/4 압축하고, 얻어진 1/4 압축 후 V2 움직임 벡터를 V2 템포럴 메모리(422-2)에 공급한다.
V2 템포럴 메모리(422-2)는, V0 템포럴 메모리(422-0)와 마찬가지의 처리부이다. V2 템포럴 메모리(422-2)는, 공급된 1/4 압축 후 V2 움직임 벡터를 기억한다. V2 템포럴 메모리(422-2)는, 적절히, 기억하고 있는 1/4 압축 후 V2 움직임 벡터를 V2 움직임 벡터 압축부(423-2)에 공급한다.
V2 움직임 벡터 압축부(423-2)는, V0 움직임 벡터 압축부(423-0)와 마찬가지의 처리부이다. V2 움직임 벡터 압축부(423-2)는, V2 템포럴 메모리(422-2)로부터 1/4 압축 후 V2 움직임 벡터를 판독해서 1/4 압축하고, 얻어진 1/16 압축 후 V2 움직임 벡터를 V2 움직임 벡터 메모리(424-2)에 공급한다.
V2 움직임 벡터 메모리(424-2)는, 공급된 1/16 압축 후 V2 움직임 벡터를 기억한다. V2 움직임 벡터 메모리(424-2)는, 적절히, 기억하고 있는 1/16 압축 후 V2 움직임 벡터를, 시간적으로 주변의 블록의 움직임 벡터로서 움직임 보상부(411-2)에 공급한다.
또한, V2 화상 복호 장치(400-2)는, 마지막으로 처리되는 뷰 2의 화상 부호화 데이터를 복호하므로, 움직임 보상부(411-2)에서 얻어진 움직임 벡터는, 다른 뷰에서 이용되지 않는다. 따라서, V2 움직임 벡터 압축부(421-2) 내지 V2 움직임 벡터 메모리(424-2) 대신에, V2 화상 복호 장치(200-2)와 같이, V2 움직임 벡터 압축부(221-2) 및 V2 움직임 벡터 메모리(222-2)를 적용하도록 해도 된다.
이상과 같이, V0 움직임 벡터 압축부(421-0), V1 움직임 벡터 압축부(421-1), 및 V2 움직임 벡터 압축부(421-2)가, 움직임 벡터의 수를 저감시킴으로써, 움직임 벡터의 정보량을 저감시킬(즉 압축할) 수 있다. 이에 의해, V0 템포럴 메모리(422-0), V1 템포럴 메모리(422-1), 및 V2 템포럴 메모리(422-2)의 용량을 저감시킬 수 있다.
또한, 그때, IVMP용의 움직임 벡터의 정밀도를 TMVP용의 움직임 벡터의 정밀도보다 높게 하도록 압축률을 억제함으로써, IVMP용의 움직임 벡터의 정밀도를 TMVP용의 움직임 벡터의 정밀도와 동등하게 하는 경우보다, IVMP의 예측 정밀도를 향상시킬 수 있다.
이에 의해, 화상 복호 장치(400)의, 제조나 개발의 비용 저감, 장치의 소형화, 및 소비 전력의 저감 등을 실현할 수 있다.
<V0 복호 처리의 흐름>
이어서, 이상과 같은 화상 복호 장치(400)에 의해 실행되는 처리의 흐름에 대하여 설명한다. 또한, 화상 복호 장치(400)에 의한 복호 처리의 흐름은, 제1 실시 형태의 경우(도 19)와 마찬가지이므로 그 설명을 생략한다.
이어서, 도 38의 흐름도를 참조하여, 도 19의 스텝 S1401에서 실행되는, 뷰 0의 복호를 행하는 V0 복호 처리의 흐름의 예를 설명한다.
스텝 S2501 내지 스텝 S2508의 각 처리는, V0 화상 복호 장치(400-0)의 각 처리부에 의해, 도 20의 스텝 S1501 내지 스텝 S1508의 각 처리와 마찬가지로 행하여진다.
스텝 S2509에서, V0 움직임 벡터 압축부(421-0)는, 스텝 S2506의 처리에 의해 생성된 뷰 0의 커런트 픽처의 움직임 벡터이며, 최고 4x4 정밀도의 압축 전 V0 움직임 벡터를, 8x8 정밀도로 압축한다(1/4 압축). 이 1/4 압축은, 예를 들어, LCU(예를 들어 16x16 화소)마다 행해진다.
스텝 S2510에서, V0 템포럴 메모리(422-0)는, 스텝 S2509의 처리에 의해 생성된 1/4 압축 후 V0 움직임 벡터를 기억한다.
스텝 S2511 내지 스텝 S2515의 각 처리는, V0 화상 복호 장치(400-0)의 각 처리부에 의해, 도 20의 스텝 S1511 내지 스텝 S1515의 각 처리와 마찬가지로 행하여진다.
스텝 S2516에서, V0 움직임 벡터 압축부(423-0)는, 스텝 S2510의 처리에 의해 기억된 1/4 압축 후 V0 움직임 벡터를, V0 템포럴 메모리(422-0)로부터 판독하고, 또한 1/4 압축한다.
스텝 S2517에서, V0 움직임 벡터 메모리(424-0)는, 스텝 S2516의 처리에 의해 생성된 1/16 압축 후 V0 움직임 벡터를 기억한다.
스텝 S2517의 처리가 종료되면, V0 부호화 처리가 종료되고, 처리는 도 19로 복귀된다. 또한, 도 38의 스텝 S2506에서 실행되는 V0 움직임 보상 처리는, 움직임 보상부(411-0)에 의해, 제1 실시 형태의 경우(도 21)와 마찬가지로 행하여지므로 그 설명을 생략한다.
<V1 복호 처리의 흐름>
이어서, 도 39의 흐름도를 참조하여, 도 19의 스텝 S1402에서 실행되는, 뷰 1의 부호화 데이터를 복호하는 V1 복호 처리의 흐름의 예를 설명한다.
뷰 0에 대한 처리와, 뷰 1에 대한 처리의 차이는, 주로, 움직임 보상 처리에 있다. 따라서, 도 39에 도시된 바와 같이, 뷰 1에 대한 V1 복호 처리는, V1 화상 복호 장치(400-1)에 의해, 뷰 0에 대한 V0 복호 처리(도 38)의 경우와 기본적으로 마찬가지로 실행된다. 즉, 도 39의 스텝 S2601 내지 스텝 S2617의 각 처리는, 도 38의 스텝 S2501 내지 스텝 S2517의 각 처리와 기본적으로 마찬가지로 실행된다. 따라서, 도 39의 설명은, 도 38의 설명에서의 V0 화상 복호 장치(400-0)의 각 부를 V1 화상 복호 장치(400-1)의 각 부로 치환하고, 도 38에서 뷰 0에 대한 처리로서 한 설명을, 뷰 1에 대한 처리에 대한 것으로서 바꾸기만 하면 되므로, 그 설명은 생략한다.
<V1 움직임 보상 처리의 흐름>
이어서, 도 39의 스텝 S2606에서 실행되는 V1 움직임 보상 처리의 흐름의 예를, 도 40의 흐름도를 참조하여 설명한다.
스텝 S2631 내지 스텝 S2635의 각 처리는, 움직임 보상부(411-1)에 의해, 도 23의 스텝 S1631 내지 스텝 S1635의 각 처리와 마찬가지로 행하여진다.
스텝 S2636에서, 움직임 보상부(411-1)는, 1/4 압축 후 V0 움직임 벡터(뷰 0의 화상의 콜로케이티드 블록의 움직임 벡터)를 사용하여 예측 움직임 벡터를 생성한다. 예측 움직임 벡터가 생성되면, 처리는 스텝 S2637로 진행된다.
스텝 S2637 및 스텝 S2638의 각 처리는, 움직임 보상부(411-1)에 의해, 도 23의 스텝 S1637 및 스텝 S1638의 각 처리와 마찬가지로 행하여진다. 스텝 S2638의 처리가 종료되면, V1 움직임 보상 처리가 종료되고, 처리는 도 22로 복귀된다.
<V2 복호 처리의 흐름>
이어서, 도 41의 흐름도를 참조하여, 도 19의 스텝 S1403에서 실행되는, 뷰 2의 부호화 데이터를 복호하는 V2 복호 처리의 흐름의 예를 설명한다.
뷰 1에 대한 처리와, 뷰 2에 대한 처리의 차이는, 주로, 움직임 보상 처리에 있다. 따라서, 도 41에 도시된 바와 같이, V2 복호 처리는, V2 화상 복호 장치(400-2)에 의해, 뷰 1에 대한 V1 복호 처리(도 39)의 경우와 기본적으로 마찬가지로 실행된다. 즉, 도 41의 스텝 S2701 내지 스텝 S2717의 각 처리는, 도 39의 스텝 S2601 내지 스텝 S2617의 각 처리와 기본적으로 마찬가지로 실행된다. 따라서, 도 41의 설명은, 도 39의 설명에서의 V1 화상 복호 장치(400-1)의 각 부를 V2 화상 복호 장치(400-2)의 각 부로 치환하고, 도 39에서의 뷰 1에 대한 처리와의 설명을, 뷰 2에 대한 처리로 바꾸기만 하면 되므로, 그 설명은 생략한다.
<V2 움직임 보상 처리의 흐름>
이어서, 도 41의 스텝 S2706에서 실행되는 V2 움직임 보상 처리의 흐름의 예를, 도 42의 흐름도를 참조하여 설명한다.
스텝 S2731 내지 스텝 S2735의 각 처리는, 움직임 보상부(411-2)에 의해, 도 25의 스텝 S1731 내지 스텝 S1735의 각 처리와 마찬가지로 행하여진다.
스텝 S2736에서, 움직임 보상부(411-2)는, 1/4 압축 후 V1 움직임 벡터(뷰 1의 화상의 콜로케이티드 블록의 움직임 벡터)를 사용하여 예측 움직임 벡터를 생성한다. 예측 움직임 벡터가 생성되면, 처리는 스텝 S2737로 진행된다.
스텝 S2737 및 스텝 S2738의 각 처리는, 움직임 보상부(411-2)에 의해, 도 25의 스텝 S1737 및 스텝 S1738의 각 처리와 마찬가지로 행하여진다. 스텝 S2738의 처리가 종료되면, V1 움직임 보상 처리가 종료되고, 처리는 도 41로 복귀된다.
이상과 같이 각 처리를 실행함으로써, 화상 복호 장치(400)는, IVMP용의 움직임 벡터를 위해 필요한 메모리 용량을 저감시킬 수 있어, 부호화·복호에 필요한 기억 용량의 증대를 억제할 수 있다.
또한, 이상에서는, 움직임 벡터의 정밀도가, 비압축의 상태에서 최고 4x4 정밀도이며, IVMP용으로 8x8 정밀도로 압축하고, 또한, TMVP용으로 16x16 정밀도로 압축하도록 설명했지만, 이것은 일례이며, 움직임 벡터의 정밀도는 임의이다. 또한, 각 압축의 압축률도 임의이다. 즉, 각 뷰의, 공간 예측 움직임 벡터 후보, 시간 예측 움직임 벡터 후보, IVMP 예측 움직임 벡터 후보, 및 예측 움직임 벡터의 정밀도도 임의이다. 정밀도나 압축률이 모든 뷰에서 통일되어 있어도 되고, 되어 있지 않아도 된다.
<3. 제3 실시 형태>
<IVMP용의 움직임 벡터의 압축>
이상과 같은 움직임 벡터의 압축(예를 들어 씨닝)에 있어서, 도 43에 도시된 바와 같이, IVMP용의 움직임 벡터를 압축할지 여부(예를 들어 씨닝할지 여부)를 제어할 수 있도록 해도 된다. 즉, 도 4를 참조하여 설명한 종래의 방법과, 도 5를 참조하여 설명한(제1 실시 형태에서 설명한) 방법 중 어느 하나를 선택할 수 있도록 해도 된다.
보다 구체적으로는, 예를 들어, 디코더(V1 (Depend) Decorder, V2 (Depend) Decorder)는 템포럴 움직임 벡터 메모리(V0 Temporal MV Memory, V1 Temporal MV Memory)로부터 비압축의 움직임 벡터(압축 전 MV)를 취득하고, 그것을 사용하여 IVMP를 행하거나, 움직임 벡터 메모리(V0 MV Memory, V1 MV Memory)로부터 1/16 압축된(예를 들어 씨닝된) 움직임 벡터(압축 후 MV)를 취득하고, 그것을 사용하여 IVMP를 행할지를, 스위치(V0SW, V1SW)에 의해 선택할 수 있다.
이와 같이 함으로써, 메모리의 용량, CPU의 처리 능력, 현재의 부하 상황 등, 임의의 조건에 따라 보다 적절하게 처리량이나 메모리 사용량 등을 제어하면서 부호화나 복호를 행할 수 있다.
이하에, 이 압축 방법에 대해서 보다 구체적으로 설명한다. 또한, 이하에서는, 움직임 벡터의 정밀도가, 비압축의 상태에서 최고 4x4 정밀도인 것으로 한다. 또한, 그 압축 전의 움직임 벡터가, TMVP용(또는, TMVP 및 IVMP용)으로, 16x16 정밀도로 압축(1/4 압축)되는 것으로 한다.
<신택스>
이렇게 복수의 방법 중 어느 하나를 선택하는 경우, 부호화측과 복호측에서 동일한 방법을 선택할 필요가 있다. 따라서, 어느 방법을 선택할지를, 부호화측과 복호측에서 공유하기 위해서, 어떠한 방법을 선택할지를 나타내는 정보(예를 들어 플래그)를, 부호화측에서 복호측으로 전송하도록 해도 된다. 예를 들어, 도 4의 방법을 사용하는지, 도 5의 방법을 사용하는지를 나타내는 1비트의 플래그를 부호화측에서 생성하여, 복호측에 전송하도록 해도 된다. 복호측에서는, 그 플래그의 값에 기초하여 복호를 행함으로써, 부호화측에서 채용된 방법과 동일한 방법을 선택하여, 적절하게 복호할 수 있다.
그 경우, 그 플래그는, 임의의 방법으로 전송할 수 있다. 예를 들어, 도 44에 나타내는 신택스와 같이, 시퀀스 파라미터 세트(Sep_parameter_set)에 있어서 전송하도록 해도 된다.
도 44의 예의 경우, 화상 부호화 장치에 있어서, 이 플래그가 생성되어, 「sps_mv_compression_flag」로서, 시퀀스로부터 미터 세트에 저장되어 전송된다. 화상 복호 장치에서는, 비트 스트림으로부터 이 「sps_mv_compression_flag」를 추출하고, 그 값을 참조하여, 화상 부호화 장치에서 채용된 것과 동일한 방법을 선택한다.
<화상 부호화 장치>
도 45는, V0 화상 부호화 장치의 주된 구성예를 도시하는 블록도이다. 도 46은, V1 화상 부호화 장치의 주된 구성예를 도시하는 블록도이다. 도 47은, V2 화상 부호화 장치의 주된 구성예를 도시하는 블록도이다.
도시하지 않은 화상 부호화 장치(500)는, 도 2에 도시되는 다시점 화상과 같은 복수 레이어를 포함하는 동화상을 부호화한다. 이 화상 부호화 장치(500)는, 다시점 화상의 각 뷰를 부호화하기 위해서, 도 45의 V0 화상 부호화 장치(500-0), 도 46의 V1 화상 부호화 장치(500-1), 및 도 47의 V2 화상 부호화 장치(500-3)를 갖는다. V0 화상 부호화 장치(500-0)는, 뷰 0의 화상을 부호화한다. V1 화상 부호화 장치(500-1)는, 뷰 1의 화상을 부호화한다. V2 화상 부호화 장치(500-2)는, 뷰 2의 화상을 부호화한다.
도 45에 도시된 바와 같이, V0 화상 부호화 장치(500-0)는, A/D 변환부(501-0), 화면 재배열 버퍼(502-0), 연산부(503-0), 직교 변환부(504-0), 양자화부(505-0), 가역 부호화부(506-0), 축적 버퍼(507-0), 역양자화부(508-0), 및 역직교 변환부(509-0)을 갖는다. 또한, V0 화상 부호화 장치(500-0)는, 연산부(510-0), 루프 필터(511-0), 디코드 픽처 버퍼(512-0), 화면 내 예측부(513-0), 움직임 예측·보상부(514-0), 예측 화상 선택부(515-0), 및 레이트 제어부(516-0)를 갖는다.
또한, 도 46에 도시된 바와 같이, V1 화상 부호화 장치(500-1)는, A/D 변환부(501-1), 화면 재배열 버퍼(502-1), 연산부(503-1), 직교 변환부(504-1), 양자화부(505-1), 가역 부호화부(506-1), 축적 버퍼(507-1), 역양자화부(508-1), 및 역직교 변환부(509-1)를 갖는다. 또한, V1 화상 부호화 장치(500-1)는, 연산부(510-1), 루프 필터(511-1), 디코드 픽처 버퍼(512-1), 화면 내 예측부(513-1), 움직임 예측·보상부(514-1), 예측 화상 선택부(515-1), 및 레이트 제어부(516-1)를 갖는다.
또한, 도 47에 도시된 바와 같이, V2 화상 부호화 장치(500-2)는, A/D 변환부(501-2), 화면 재배열 버퍼(502-2), 연산부(503-2), 직교 변환부(504-2), 양자화부(505-2), 가역 부호화부(506-2), 축적 버퍼(507-2), 역양자화부(508-2), 및 역직교 변환부(509-2)를 갖는다. 또한, V2 화상 부호화 장치(500-2)는, 연산부(510-2), 루프 필터(511-2), 디코드 픽처 버퍼(512-2), 화면 내 예측부(513-2), 움직임 예측·보상부(514-2), 예측 화상 선택부(515-2), 및 레이트 제어부(516-2)를 갖는다.
이하에서, A/D 변환부(501-0) 내지 A/D 변환부(501-2)를 서로 구별하여 설명할 필요가 없을 경우, 간단히 A/D 변환부(501)라고 칭한다. 또한, 화면 재배열 버퍼(502-0) 내지 화면 재배열 버퍼(502-2)를 서로 구별하여 설명할 필요가 없을 경우, 간단히 화면 재배열 버퍼(502)라고 칭한다. 또한, 연산부(503-0) 내지 연산부(503-2)를 서로 구별하여 설명할 필요가 없을 경우, 간단히 연산부(503)라고 칭한다. 또한, 직교 변환부(504-0) 내지 직교 변환부(504-2)를 서로 구별하여 설명할 필요가 없을 경우, 간단히 직교 변환부(504)라고 칭한다. 또한, 양자화부(505-0) 내지 양자화부(505-2)를 서로 구별하여 설명할 필요가 없을 경우, 간단히 양자화부(505)라고 칭한다. 또한, 가역 부호화부(506-0) 내지 가역 부호화부(506-2)를 서로 구별하여 설명할 필요가 없을 경우, 간단히 가역 부호화부(506)라고 칭한다. 또한, 축적 버퍼(507-0) 내지 축적 버퍼(507-2)를 서로 구별하여 설명할 필요가 없을 경우, 간단히 축적 버퍼(507)라고 칭한다. 또한, 역양자화부(508-0) 내지 역양자화부(508-2)를 서로 구별하여 설명할 필요가 없을 경우, 간단히 역양자화부(508)라고 칭한다. 또한, 역직교 변환부(509-0) 내지 역직교 변환부(509-2)를 서로 구별하여 설명할 필요가 없을 경우, 간단히 역직교 변환부(509)라고 칭한다.
또한, 연산부(510-0) 내지 연산부(510-2)를 서로 구별하여 설명할 필요가 없을 경우, 간단히 연산부(510)라고 칭한다. 또한, 루프 필터(511-0) 내지 루프 필터(511-2)를 서로 구별하여 설명할 필요가 없을 경우, 간단히 루프 필터(511)라고 칭한다. 또한, 디코드 픽처 버퍼(512-0) 내지 디코드 픽처 버퍼(512-2)를 서로 구별하여 설명할 필요가 없을 경우, 간단히 디코드 픽처 버퍼(512)라고 칭한다. 또한, 화면 내 예측부(513-0) 내지 화면 내 예측부(513-2)를 서로 구별하여 설명할 필요가 없을 경우, 간단히 화면 내 예측부(513)라고 칭한다. 또한, 움직임 예측·보상부(514-0) 내지 움직임 예측·보상부(514-2)를 서로 구별하여 설명할 필요가 없을 경우, 간단히 움직임 예측·보상부(514)라고 칭한다. 또한, 예측 화상 선택부(515-0) 내지 예측 화상 선택부(515-2)를 서로 구별하여 설명할 필요가 없을 경우, 간단히 예측 화상 선택부(515)라고 칭한다. 또한, 레이트 제어부(516-0) 내지 레이트 제어부(516-2)를 서로 구별하여 설명할 필요가 없을 경우, 간단히 레이트 제어부(516)라고 칭한다.
A/D 변환부(501)는 A/D 변환부(101)에 대응하며, 기본적으로 A/D 변환부(101)와 마찬가지의 처리를 행한다. 화면 재배열 버퍼(502)는 화면 재배열 버퍼(102)에 대응하며, 기본적으로 화면 재배열 버퍼(102)와 마찬가지의 처리를 행한다. 연산부(503)는 연산부(103)에 대응하며, 기본적으로 연산부(103)와 마찬가지의 처리를 행한다. 직교 변환부(504)는 직교 변환부(104)에 대응하며, 기본적으로 직교 변환부(104)와 마찬가지의 처리를 행한다. 양자화부(505)는 양자화부(105)에 대응하며, 기본적으로 양자화부(105)와 마찬가지의 처리를 행한다. 가역 부호화부(506)는 가역 부호화부(106)에 대응하며, 기본적으로 가역 부호화부(106)와 마찬가지의 처리를 행한다. 축적 버퍼(507)는 축적 버퍼(107)에 대응하며, 기본적으로 축적 버퍼(107)와 마찬가지의 처리를 행한다.
역양자화부(508)는 역양자화부(108)에 대응하며, 기본적으로 역양자화부(108)와 마찬가지의 처리를 행한다. 역직교 변환부(509)는 역직교 변환부(109)에 대응하며, 기본적으로 역직교 변환부(109)와 마찬가지의 처리를 행한다. 연산부(510)는 연산부(110)에 대응하며, 기본적으로 연산부(110)와 마찬가지의 처리를 행한다. 루프 필터(511)는 루프 필터(111)에 대응하며, 기본적으로 루프 필터(111)와 마찬가지의 처리를 행한다. 디코드 픽처 버퍼(512)는, 디코드 픽처 버퍼(112)에 대응하며, 기본적으로 디코드 픽처 버퍼(112)와 마찬가지의 처리를 행한다.
화면 내 예측부(513)는 화면 내 예측부(113)에 대응하며, 기본적으로 화면 내 예측부(113)와 마찬가지의 처리를 행한다. 움직임 예측·보상부(514)는 움직임 예측·보상부(114)에 대응하며, 기본적으로 움직임 예측·보상부(114)와 마찬가지의 처리를 행한다. 예측 화상 선택부(515)는 예측 화상 선택부(115)에 대응하며, 기본적으로 예측 화상 선택부(115)와 마찬가지의 처리를 행한다.
V0 화상 부호화 장치(500-0)는, 또한, 제어부(521), 플래그 생성부(522), V0 선택부(531-0), V0 템포럴 메모리(532-0), V0 움직임 벡터 압축부(533-0), V0 움직임 벡터 메모리(534-0), 및 V0 선택부(535-0)를 갖는다.
V1 화상 부호화 장치(500-1)는, 또한, V1 선택부(531-1), V1 템포럴 메모리(532-1), V1 움직임 벡터 압축부(533-1), V1 움직임 벡터 메모리(534-1), 및 V1 선택부(535-1)를 갖는다.
V2 화상 부호화 장치(500-2)는, 또한, V2 선택부(531-2), V2 템포럴 메모리(532-2), V2 움직임 벡터 압축부(533-2), 및 V2 움직임 벡터 메모리(534-2)를 갖는다.
제어부(521)는, 유저나 다른 장치 등의 외부로부터의 지시나, 소정의 조건 판정 결과 등에 기초하여, IVMP용의 움직임 벡터를 압축할지 여부를 결정한다. 즉, 제어부(521)는, 도 4에 도시되는 방법을 선택할지, 도 5에 도시되는 방법을 선택할지를 결정한다. 압축할지 여부를 결정하면, 제어부(521)는 그 취지를 플래그 생성부(522)에 공급한다.
플래그 생성부(522)는, 제어부(521)로부터 통지된 방법을 나타내는 플래그를 생성한다. 플래그 생성부(522)는, 생성한 플래그를 가역 부호화부(506-0)에 공급한다. 가역 부호화부(506-0)는, 공급된 플래그를 시퀀스 파라미터 세트에 포함시켜, 복호측에 전송시킨다.
또한, 제어부(521)는, 결정한 방법에 따라, V0 선택부(531-0), V0 선택부(535-0), V1 선택부(531-1), V1 선택부(535-1), 및 V2 선택부(531-2)의 선택(스위칭)을 제어한다.
제어부(521)가, IVMP용의 움직임 벡터를 압축하는 방법을 선택한 경우, V0 선택부(531-0)는, 제어부(521)의 제어에 따라, V0 움직임 벡터 압축부(533-0)를 선택하고, V0 선택부(535-0)는, 제어부(521)의 제어에 따라, V0 움직임 벡터 메모리(534-0)를 선택한다. 또한, V1 선택부(531-1)는, 제어부(521)의 제어에 따라, V1 움직임 벡터 압축부(533-1)를 선택하고, V1 선택부(535-1)는, 제어부(521)의 제어에 따라, V1 움직임 벡터 메모리(534-1)를 선택한다. 또한, V2 선택부(531-2)는, 제어부(521)의 제어에 따라, V2 움직임 벡터 압축부(533-2)를 선택한다.
이 경우, 움직임 예측·보상부(514-0)는, 움직임 예측에 의해 생성한 커런트 블록의 압축 전 V0 움직임 벡터(최고 4x4 정밀도)를, V0 선택부(531-0)를 통해, V0 움직임 벡터 압축부(533-0)에 공급한다. V0 움직임 벡터 압축부(533-0)는, 움직임 예측·보상부(514-0)로부터 공급된 압축 전 V0 움직임 벡터를 1/16 압축하고, 얻어진 1/16 압축 후 V0 움직임 벡터를 V0 움직임 벡터 메모리(534-0)에 공급한다. V0 움직임 벡터 메모리(534-0)는, 공급된 1/16 압축 후 V0 움직임 벡터를 기억한다. V0 움직임 벡터 메모리(534-0)는, 적절히, 기억하고 있는 1/16 압축 후 V0 움직임 벡터를, 시간적으로 주변의 블록의 움직임 벡터로서, 움직임 예측·보상부(514-0)에 공급한다. 또한, V0 움직임 벡터 메모리(534-0)는, 적절히, 기억하고 있는 1/16 압축 후 V0 움직임 벡터를, 뷰간적으로 주변의 블록의 움직임 벡터로서, V0 선택부(535-0)를 통해 움직임 예측·보상부(514-1)에 공급한다.
또한, 움직임 예측·보상부(514-1)는, 움직임 예측에 의해 생성한 커런트 블록의 압축 전 V1 움직임 벡터(최고 4x4 정밀도)를, V1 선택부(531-1)를 통해, V1 움직임 벡터 압축부(533-1)에 공급한다. V1 움직임 벡터 압축부(533-1)는, 움직임 예측·보상부(514-1)로부터 공급된 압축 전 V1 움직임 벡터를 1/16 압축하고, 얻어진 1/16 압축 후 V1 움직임 벡터를 V1 움직임 벡터 메모리(534-1)에 공급한다. V1 움직임 벡터 메모리(534-1)는, 공급된 1/16 압축 후 V1 움직임 벡터를 기억한다. V1 움직임 벡터 메모리(534-1)는, 적절히, 기억하고 있는 1/16 압축 후 V1 움직임 벡터를, 시간적으로 주변의 블록의 움직임 벡터로서, 움직임 예측·보상부(514-1)에 공급한다. 또한, V1 움직임 벡터 메모리(534-1)는, 적절히, 기억하고 있는 1/16 압축 후 V1 움직임 벡터를, 뷰간적으로 주변의 블록의 움직임 벡터로서, V1 선택부(535-1)를 통해 움직임 예측·보상부(514-2)에 공급한다.
또한, 움직임 예측·보상부(514-2)는, 움직임 예측에 의해 생성한 커런트 블록의 압축 전 V2 움직임 벡터(최고 4x4 정밀도)를, V2 선택부(531-2)를 통해, V2 움직임 벡터 압축부(533-2)에 공급한다. V2 움직임 벡터 압축부(533-2)는, 움직임 예측·보상부(514-2)로부터 공급된 압축 전 V2 움직임 벡터를 1/16 압축하고, 얻어진 1/16 압축 후 V2 움직임 벡터를 V2 움직임 벡터 메모리(534-2)에 공급한다. V2 움직임 벡터 메모리(534-2)는, 공급된 1/16 압축 후 V2 움직임 벡터를 기억한다. V2 움직임 벡터 메모리(534-2)는, 적절히, 기억하고 있는 1/16 압축 후 V2 움직임 벡터를, 시간적으로 주변의 블록의 움직임 벡터로서, 움직임 예측·보상부(514-2)에 공급한다.
즉, 이 경우, 화상 부호화 장치(500)는, 제1 실시 형태에서 설명한 방법의 경우(예를 들어 도 5)와 마찬가지의 구성이 된다.
제어부(521)가 IVMP용의 움직임 벡터를 압축하지 않는 방법을 선택한 경우, V0 선택부(531-0) 및 V0 선택부(535-0)는, 제어부(521)의 제어에 따라, V0 템포럴 메모리(532-0)를 선택한다. 또한, V1 선택부(531-1) 및 V1 선택부(535-1)는, 제어부(521)의 제어에 따라, V1 템포럴 메모리(532-0)를 선택한다. 또한, V2 선택부(531-2)는, 제어부(521)의 제어에 따라, V2 템포럴 메모리(532-2)를 선택한다.
이 경우, 움직임 예측·보상부(514-0)는, 움직임 예측에 의해 생성한 커런트 블록의 압축 전 V0 움직임 벡터(최고 4x4 정밀도)를, V0 선택부(531-0)를 통해, V0 템포럴 메모리(532-0)에 공급한다. V0 템포럴 메모리(532-0)는, 적절히, 기억하고 있는 압축 전 V0 움직임 벡터를, 뷰간적으로 주변의 블록의 움직임 벡터로서, V0 선택부(535-0)를 통해 움직임 예측·보상부(514-1)에 공급한다. 또한, V0 템포럴 메모리(532-0)는, 적절히, 기억하고 있는 압축 전 V0 움직임 벡터를, V0 움직임 벡터 압축부(533-0)에 공급한다. V0 움직임 벡터 압축부(533-0)는, V0 템포럴 메모리(532-0)로부터 압축 전 V0 움직임 벡터를 판독해서 1/16 압축하고, 얻어진 1/16 압축 후 V0 움직임 벡터를 V0 움직임 벡터 메모리(534-0)에 공급한다. V0 움직임 벡터 메모리(534-0)는, 공급된 1/16 압축 후 V0 움직임 벡터를 기억한다. V0 움직임 벡터 메모리(534-0)는, 적절히, 기억하고 있는 1/16 압축 후 V0 움직임 벡터를, 시간적으로 주변의 블록의 움직임 벡터로서, 움직임 예측·보상부(514-0)에 공급한다.
또한, 움직임 예측·보상부(514-1)는, 움직임 예측에 의해 생성한 커런트 블록의 압축 전 V1 움직임 벡터(최고 4x4 정밀도)를, V1 선택부(531-1)를 통해, V1 템포럴 메모리(532-1)에 공급한다. V1 템포럴 메모리(532-1)는, 적절히, 기억하고 있는 압축 전 V1 움직임 벡터를, 뷰간적으로 주변의 블록의 움직임 벡터로서, V1 선택부(535-1)를 통해, 움직임 예측·보상부(514-2)에 공급한다. 또한, V1 템포럴 메모리(532-1)는, 적절히, 기억하고 있는 압축 전 V1 움직임 벡터를, V1 움직임 벡터 압축부(533-1)에 공급한다. V1 움직임 벡터 압축부(533-1)는, V1 템포럴 메모리(532-1)로부터 공급된 압축 전 V1 움직임 벡터를 1/16 압축하고, 얻어진 1/16 압축 후 V1 움직임 벡터를 V1 움직임 벡터 메모리(534-1)에 공급한다. V1 움직임 벡터 메모리(534-1)는, 공급된 1/16 압축 후 V1 움직임 벡터를 기억한다. V1 움직임 벡터 메모리(534-1)는, 적절히, 기억하고 있는 1/16 압축 후 V1 움직임 벡터를, 시간적으로 주변의 블록의 움직임 벡터로서, 움직임 예측·보상부(514-1)에 공급한다.
또한, 움직임 예측·보상부(514-2)는, 움직임 예측에 의해 생성한 커런트 블록의 압축 전 V2 움직임 벡터(최고 4x4 정밀도)를, V2 선택부(531-2)를 통해, V2 템포럴 메모리(532-2)에 공급한다. V2 템포럴 메모리(532-2)는, 적절히, 기억하고 있는 압축 전 V2 움직임 벡터를, V2 움직임 벡터 압축부(533-2)에 공급한다. V2 움직임 벡터 압축부(533-2)는, V2 템포럴 메모리(532-2)로부터 공급된 압축 전 V2 움직임 벡터를 1/16 압축하고, 얻어진 1/16 압축 후 V2 움직임 벡터를 V2 움직임 벡터 메모리(534-2)에 공급한다. V2 움직임 벡터 메모리(534-2)는, 공급된 1/16 압축 후 V2 움직임 벡터를 기억한다. V2 움직임 벡터 메모리(534-2)는, 적절히, 기억하고 있는 1/16 압축 후 V2 움직임 벡터를, 시간적으로 주변의 블록의 움직임 벡터로서, 움직임 예측·보상부(514-2)에 공급한다.
즉, 이 경우, 화상 부호화 장치(500)는, 종래의 방법의 경우(예를 들어 도 4)와 마찬가지의 구성이 된다.
이상과 같이, 움직임 벡터의 압축 방법을 제어할 수 있도록 함으로써, 부호화·복호에 필요한 기억 용량의 증대를 적절하게 억제할 수 있다.
<부호화 처리의 흐름>
이어서, 이상과 같은 화상 부호화 장치(500)에 의해 실행되는 처리의 흐름에 대하여 설명한다. 도 48의 흐름도를 참조하여, 화상 부호화 장치(500)에 의한 부호화 처리의 흐름의 예를 설명한다.
부호화 처리가 개시되면, V0 화상 부호화 장치(500-0)의 제어부(521)는, 스텝 S3001에서, IVMP의 움직임 벡터의 압축의 설정(IVMP용의 움직임 벡터를 압축할지 여부의 설정)을 행한다. 스텝 S3002에서, 플래그 생성부(522)는, 스텝 S3001의 설정에 따라, IVMP용의 움직임 벡터를 압축할지 여부를 나타내는 움직임 벡터 압축 플래그를 생성한다. 이 움직임 벡터 압축 플래그는, 가역 부호화부(506-0)에서 부호화된다. 스텝 S3003에서, 움직임 벡터 압축 플래그의 부호화 데이터는, 축적 버퍼(507-0)에 공급되어 유지되고, 소정의 타이밍에 있어서, 복호측에 전송된다.
커런트 픽처에 대해서, V0 화상 부호화 장치(500-0)는, 스텝 S3004에서 V0 부호화 처리를 행하고, V1 화상 부호화 장치(500-1)는, 스텝 S3005에서 V1 부호화 처리를 행하고, V2 화상 부호화 장치(500-2)는, 스텝 S3006에서 V2 부호화 처리를 행한다.
스텝 S3007에서, 화상 부호화 장치(500)는, 모든 픽처를 처리했는지 여부를 판정한다. 미처리의 픽처가 존재한다고 판정한 경우, 처리는 스텝 S3004로 복귀되고, 그 이후의 처리를 반복한다.
각 픽처에 대해서, 스텝 S3004 내지 스텝 S3007의 처리가 반복되어, 스텝 S3007에서 모든 픽처가 처리되었다고 판정된 경우, 부호화 처리가 종료된다.
<V0 부호화 처리의 흐름>
이어서, 도 49 및 도 50의 흐름도를 참조하여, 도 48의 스텝 S3004에서 실행되는, 뷰 0의 부호화를 행하는 V0 부호화 처리의 흐름의 예를 설명한다.
도 49의 스텝 S3101 내지 스텝 S3105의 각 처리는, V0 화상 부호화 장치(500-0)의 각 처리부에 의해, 도 10의 스텝 S1101 내지 스텝 S1105의 각 처리와 마찬가지로 실행된다.
스텝 S3106에서, V0 선택부(531-0)는, 제어부(521)의 제어에 따라, 압축 전 V0 움직임 벡터를 압축할지 여부를 판정한다. 압축한다고 판정된 경우, 처리는 스텝 S3107로 진행된다.
스텝 S3107에서, V0 움직임 벡터 압축부(533-0)는, 압축 전 V0 움직임 벡터를 1/16 압축한다. 스텝 S3108에서, V0 움직임 벡터 메모리(534-0)는, 스텝 S3107의 처리에 의해 생성된 1/16 압축 후 V0 움직임 벡터를 기억한다. 스텝 S3108의 처리가 종료되면, 처리는 스텝 S3110으로 진행된다.
또한, 스텝 S3106에서, 압축 전 V0 움직임 벡터를 압축하지 않는다고 판정된 경우, 처리는 스텝 S3109로 진행된다. 스텝 S3109에서, V0 템포럴 메모리(532-0)는, 압축 전 V0 움직임 벡터를 기억한다. 스텝 S3109의 처리가 종료되면, 처리는 스텝 S3110으로 진행된다.
도 49의 스텝 S3110 내지 스텝 S3112, 도 50의 스텝 S3121 내지 스텝 S3129의 각 처리는, 화상 부호화 장치(500-0)의 각 처리부에 의해, 도 10의 스텝 S1108 내지 스텝 S1119의 각 처리와 마찬가지로 행하여진다.
이어서, 도 50의 스텝 S3130에서, V0 선택부(535-0)는, 제어부(521)의 제어에 따라, IVMP의 움직임 벡터를 압축할지 여부를 판정한다. 이 판정은, 도 49의 스텝 S3106과 마찬가지로 행하여진다. 압축하지 않는다고 판정된 경우, 즉, 도 49의 스텝 S3106에서도, 움직임 벡터를 압축한다고 판정되지 않은 경우, 처리는 스텝 S3131로 진행된다.
이 경우, 도 49의 스텝 S3109의 처리에 의해 압축 전 V0 움직임 벡터가 V0 템포럴 메모리(532-0)에 기억되어 있다. 따라서, 스텝 S3131에서, V0 움직임 벡터 압축부(533-0)는, V0 템포럴 메모리(532-0)로부터 그 압축 전 V0 움직임 벡터를 판독하고, 1/16 압축을 행한다. 스텝 S3132에서, V0 움직임 벡터 메모리(534-0)는, 스텝 S3131에서 산출된 1/16 압축 후 V0 움직임 벡터를 기억한다.
이 경우, V0 템포럴 메모리(532-0)에 기억된 압축 전 V0 움직임 벡터는, 움직임 예측·보상부(514-1)에서, IVMP에 이용된다. 또한, V0 움직임 벡터 메모리(534-0)에 기억된 1/16 압축 후 V0 움직임 벡터는, 움직임 예측·보상부(514-0)에서, TMVP에 이용된다.
스텝 S3132의 처리가 종료되면, V0 부호화 처리가 종료되고, 처리는 도 48로 복귀된다.
또한, 도 50의 스텝 S3130에서, 움직임 벡터를 압축한다고 판정된 경우, 즉, 도 49의 스텝 S3106에서도, 움직임 벡터를 압축한다고 판정된 경우, V0 부호화 처리가 종료되고, 처리는 도 48로 복귀된다.
이 경우, V0 움직임 벡터 메모리(534-0)에 기억된 1/16 압축 후 V0 움직임 벡터는, 움직임 예측·보상부(514-0)에서, TMVP에 이용됨과 함께, 움직임 예측·보상부(514-1)에서, IVMP에 이용된다.
또한, 도 49의 스텝 S3104에서 실행되는 V0 인터 움직임 예측 처리는, 움직임 예측·보상부(514-0)에 의해, 제1 실시 형태의 경우(도 11)와 마찬가지로 행하여지므로 그 설명을 생략한다.
<V1 부호화 처리의 흐름>
이어서, 도 51 및 도 52의 흐름도를 참조하여, 도 48의 스텝 S3005에서 실행되는, 뷰 1의 부호화를 행하는 V1 부호화 처리의 흐름의 예를 설명한다.
뷰 0에 대한 처리와, 뷰 1에 대한 처리의 차이는, 주로, 인터 움직임 예측 처리에 있다. 따라서, 도 51에 도시된 바와 같이, 뷰 1에 대한 V1 부호화 처리는, V1 화상 부호화 장치(500-1)에 의해, 뷰 0에 대한 V0 부호화 처리(도 49 및 도 50)의 경우와 기본적으로 마찬가지로 실행된다. 즉, 도 51의 스텝 S3201 내지 스텝 S3212, 및 도 52의 스텝 S3221 내지 스텝 S3232의 각 처리는, 도 49의 스텝 S3101 내지 스텝 S3112, 및 도 50의 스텝 S3121 내지 스텝 S3132의 각 처리와 기본적으로 마찬가지로 실행된다. 따라서, 도 51 및 도 52의 설명은, 도 49 및 도 50의 설명에서의 V0 화상 부호화 장치(500-0)의 각 부를 V1 화상 부호화 장치(500-1)의 각 부로 치환하고, 도 49 및 도 50에서 뷰 0에 대한 처리로서 한 설명을, 뷰 1에 대한 처리에 대한 것으로서 바꾸기만 하면 되므로, 그 설명은 생략한다.
<V1 인터 움직임 예측 처리의 흐름>
이어서, 도 51의 스텝 S3204에서 실행되는 V1 인터 움직임 예측 처리의 흐름의 예를, 도 53의 흐름도를 참조하여 설명한다.
V1 인터 움직임 예측 처리가 개시되면, 스텝 S3251 내지 스텝 S3253의 각 처리는, 도 13의 스텝 S1231 내지 스텝 S1233의 각 처리와 기본적으로 마찬가지로 실행된다. 단, 이 경우의 V1 인터 움직임 예측 처리는, 움직임 예측·보상부(514-1)가 실행한다.
또한, 이 경우, IVMP용의 움직임 벡터를 압축할지 여부가 선택된다. 즉, 도 53의 스텝 S3254에서, 움직임 예측·보상부(514-1)는, 제어부(521)의 제어(즉, 제어부(521)에 의해 제어되는 V0 선택부(535-0)의 선택)에 따라, 움직임 벡터를 압축할지 여부를 판정한다. 압축한다고 판정된 경우, 처리는 스텝 S3255로 진행된다.
스텝 S3255에서, 움직임 예측·보상부(514-1)는, V0 움직임 벡터 메모리(534-0)로부터 취득한 1/16 압축 후 V0 움직임 벡터를 사용하여, IVMP 예측 움직임 벡터 후보를 결정한다. 후보가 결정되면, 처리는 스텝 S3257로 진행된다.
또한, 스텝 S3254에서, 움직임 벡터를 압축하지 않는다고 판정된 경우, 처리는 스텝 S3256으로 진행된다.
스텝 S3256에서, 움직임 예측·보상부(514-1)는, V0 템포럴 메모리(532-0)로부터 취득한 압축 전 V0 움직임 벡터를 사용하여, IVMP 예측 움직임 벡터 후보를 결정한다. 후보가 결정되면, 처리는 스텝 S3257로 진행된다.
도 53의 스텝 S3257 내지 스텝 S3260의 각 처리는, 도 13의 스텝 S1235 내지 스텝 S1238의 각 처리와 마찬가지로 실행된다. 스텝 S3260의 처리가 종료되면, V1 인터 움직임 예측 처리가 종료되고, 처리는 도 51로 복귀된다.
<V2 부호화 처리의 흐름>
이어서, 도 54 및 도 55의 흐름도를 참조하여, 도 48의 스텝 S3006에서 실행되는, 뷰 2의 부호화를 행하는 V2 부호화 처리의 흐름의 예를 설명한다.
뷰 2에 대한 처리는, 뷰 1에 대한 처리와 마찬가지로 실행된다. 따라서, 도 54 및 도 55에 도시된 바와 같이, V2 부호화 처리는, V2 화상 부호화 장치(500-2)에 의해, 뷰 1에 대한 V1 부호화 처리(도 51 및 도 52)의 경우와 기본적으로 마찬가지로 실행된다. 즉, 도 54의 스텝 S3301 내지 스텝 S3312, 및 도 55의 스텝 S3321 내지 스텝 S3332의 각 처리는, 도 51의 스텝 S3201 내지 스텝 S3212, 및 도 52의 스텝 S3221 내지 스텝 S3232의 각 처리와 기본적으로 마찬가지로 실행된다. 따라서, 도 54 및 도 55의 설명은, 도 51 및 도 52의 설명에서의 V1 화상 부호화 장치(500-1)의 각 처리부를 V2 화상 부호화 장치(500-2)의 각 처리부로 치환하고, 도 51 및 도 52에서 뷰 1에 대한 처리와의 설명을, 뷰 2에 대한 처리로 바꾸기만 하면 되므로, 그 설명은 생략한다.
또한, 뷰 2는 뷰 0 내지 뷰 2 중에서 마지막으로 처리되는 뷰이므로, 생성된 V2 움직임 벡터는, IVMP에 이용되지 않는다. 따라서, 도 54의 스텝 S3307 및 스텝 S3308, 또는, 도 55의 스텝 S3331 및 스텝 S3338 중 어느 한쪽을 행하면 된다. 따라서, 그 다른 쪽과, 도 54의 스텝 S3306 및 스텝 S3330의 판정 처리는, 생략할 수 있다.
<V2 인터 움직임 예측 처리의 흐름>
이어서, 도 54의 스텝 S3304에서 실행되는 V2 인터 움직임 예측 처리의 흐름의 예를, 도 56의 흐름도를 참조하여 설명한다.
V2 인터 움직임 예측 처리가 개시되면, 스텝 S3351 내지 스텝 S3353의 각 처리는, 도 15의 스텝 S1331 내지 스텝 S1333의 각 처리와 기본적으로 마찬가지로 실행된다. 단, 이 경우의 V2 인터 움직임 예측 처리는, 움직임 예측·보상부(514-2)가 실행한다.
또한, 이 경우, IVMP용의 움직임 벡터를 압축할지 여부가 선택된다. 즉, 도 56의 스텝 S3354에서, 움직임 예측·보상부(514-2)는, 제어부(521)의 제어(즉, 제어부(521)에 의해 제어되는 V1 선택부(535-1)의 선택)에 따라, 움직임 벡터를 압축할지 여부를 판정한다. 압축한다고 판정된 경우, 처리는 스텝 S3355로 진행된다.
스텝 S3355에서, 움직임 예측·보상부(514-2)는, V1 움직임 벡터 메모리(534-1)로부터 취득한 1/16 압축 후 V1 움직임 벡터를 사용하여, IVMP 예측 움직임 벡터 후보를 결정한다. 후보가 결정되면, 처리는 스텝 S3357로 진행된다.
또한, 스텝 S3354에서, 움직임 벡터를 압축하지 않는다고 판정된 경우, 처리는 스텝 S3356으로 진행된다.
스텝 S3356에서, 움직임 예측·보상부(514-2)는, V1 템포럴 메모리(532-1)로부터 취득한 압축 전 V1 움직임 벡터를 사용하여, IVMP 예측 움직임 벡터 후보를 결정한다. 후보가 결정되면, 처리는 스텝 S3357로 진행된다.
도 56의 스텝 S3357 내지 스텝 S3360의 각 처리는, 도 15의 스텝 S1335 내지 스텝 S1338의 각 처리와 마찬가지로 실행된다. 스텝 S3360의 처리가 종료되면, V2 인터 움직임 예측 처리가 종료되고, 처리는 도 54로 복귀된다.
이상과 같이 각 처리를 실행함으로써, 화상 부호화 장치(500)는, 보다 적절하게, IVMP용의 움직임 벡터를 위해 필요한 메모리 용량을 저감시킬 수 있어, 부호화·복호에 필요한 기억 용량의 증대를 보다 적절하게 억제할 수 있다.
<화상 복호 장치>
이어서, 이상과 같이 부호화된 부호화 데이터(부호화 스트림)의 복호에 대하여 설명한다. 도 57은, V0 화상 복호 장치의 주된 구성예를 도시하는 블록도이다. 도 58은, V1 화상 복호 장치의 주된 구성예를 도시하는 블록도이다. 도 59는, V2 화상 복호 장치의 주된 구성예를 도시하는 블록도이다.
도시하지 않은 화상 복호 장치(600)는, 화상 부호화 장치(500)에 의해 부호화된, 도 2에 도시되는 다시점 화상과 같은 복수 레이어를 포함하는 동화상의 부호화 데이터를, 그 부호화 방법에 대응하는 복호 방법으로 복호한다. 이 화상 복호 장치(600)는, 다시점 화상의 각 뷰의 부호화 데이터를 복호하기 위해서, 도 57의 V0 화상 복호 장치(600-0), 도 58의 V1 화상 복호 장치(600-1), 및 도 59의 V2 화상 복호 장치(600-2)를 갖는다. V0 화상 복호 장치(600-0)는, V0 화상 부호화 장치(500-0)에 의해 부호화된 뷰 0의 화상 부호화 데이터를 복호한다. V1 화상 복호 장치(600-1)는, V1 화상 부호화 장치(500-1)에 의해 부호화된 뷰 1의 화상 부호화 데이터를 복호한다. V2 화상 복호 장치(600-2)는, V2 화상 부호화 장치(500-2)에 의해 부호화된 뷰 2의 화상 부호화 데이터를 복호한다.
도 57에 도시된 바와 같이, V0 화상 복호 장치(600-0)는, 축적 버퍼(601-0), 가역 복호부(602-0), 역양자화부(603-0), 역직교 변환부(604-0), 연산부(605-0), 루프 필터(606-0), 화면 재배열 버퍼(607-0), 및 D/A 변환부(608-0)를 갖는다. 또한, V0 화상 복호 장치(600-0)는, 디코드 픽처 버퍼(609-0), 화면 내 예측부(610-0), 움직임 보상부(611-0), 및 선택부(612-0)를 갖는다.
또한, 도 58에 도시된 바와 같이, V1 화상 복호 장치(600-1)는, 축적 버퍼(601-1), 가역 복호부(602-1), 역양자화부(603-1), 역직교 변환부(604-1), 연산부(605-1), 루프 필터(606-1), 화면 재배열 버퍼(607-1), 및 D/A 변환부(608-1)를 갖는다. 또한, V1 화상 복호 장치(600-1)는, 디코드 픽처 버퍼(609-1), 화면 내 예측부(610-1), 움직임 보상부(611-1), 및 선택부(612-1)를 갖는다.
또한, 도 59에 도시된 바와 같이, V2 화상 복호 장치(600-2)는, 축적 버퍼(601-2), 가역 복호부(602-2), 역양자화부(603-2), 역직교 변환부(604-2), 연산부(605-2), 루프 필터(606-2), 화면 재배열 버퍼(607-2), 및 D/A 변환부(608-2)를 갖는다. 또한, V2 화상 복호 장치(600-2)는, 디코드 픽처 버퍼(609-2), 화면 내 예측부(610-2), 움직임 보상부(611-2), 및 선택부(612-2)를 갖는다.
이하에서, 축적 버퍼(601-0) 내지 축적 버퍼(601-2)를 서로 구별하여 설명할 필요가 없을 경우, 간단히 축적 버퍼(601)라고 칭한다. 또한, 가역 복호부(602-0) 내지 가역 복호부(602-2)를 서로 구별하여 설명할 필요가 없을 경우, 간단히 가역 복호부(602)라고 칭한다. 또한, 역양자화부(603-0) 내지 역양자화부(603-2)를 서로 구별하여 설명할 필요가 없을 경우, 간단히 역양자화부(603)라고 칭한다. 또한, 역직교 변환부(604-0) 내지 역직교 변환부(604-2)를 서로 구별하여 설명할 필요가 없을 경우, 간단히 역직교 변환부(604)라고 칭한다. 또한, 연산부(605-0) 내지 연산부(605-2)를 서로 구별하여 설명할 필요가 없을 경우, 간단히 연산부(605)라고 칭한다.
또한, 루프 필터(606-0) 내지 루프 필터(606-2)를 서로 구별하여 설명할 필요가 없을 경우, 간단히 루프 필터(606)라고 칭한다. 또한, 화면 재배열 버퍼(607-0) 내지 화면 재배열 버퍼(607-2)를 서로 구별하여 설명할 필요가 없을 경우, 간단히 화면 재배열 버퍼(607)라고 칭한다. 또한, D/A 변환부(608-0) 내지 D/A 변환부(608-2)를 서로 구별하여 설명할 필요가 없을 경우, 간단히 D/A 변환부(608)라고 칭한다. 또한, 디코드 픽처 버퍼(609-0) 내지 디코드 픽처 버퍼(609-2)를 서로 구별하여 설명할 필요가 없을 경우, 간단히 디코드 픽처 버퍼(609)라고 칭한다.
또한, 화면 내 예측부(610-0) 내지 화면 내 예측부(610-2)를 서로 구별하여 설명할 필요가 없을 경우, 간단히 화면 내 예측부(610)라고 칭한다. 또한, 움직임 보상부(611-0) 내지 움직임 보상부(611-2)를 서로 구별하여 설명할 필요가 없을 경우, 간단히 움직임 보상부(611)라고 칭한다. 또한, 선택부(612-0) 내지 선택부(612-2)를 서로 구별하여 설명할 필요가 없을 경우, 간단히 선택부(612)라고 칭한다.
축적 버퍼(601)는 축적 버퍼(201)에 대응하며, 기본적으로 축적 버퍼(201)와 마찬가지의 처리를 행한다. 가역 복호부(602)는 가역 복호부(202)에 대응하며, 기본적으로 가역 복호부(202)와 마찬가지의 처리를 행한다. 역양자화부(603)는 역양자화부(203)에 대응하며, 기본적으로 역양자화부(203)와 마찬가지의 처리를 행한다. 역직교 변환부(604)는 역직교 변환부(204)에 대응하며, 기본적으로 역직교 변환부(204)와 마찬가지의 처리를 행한다. 연산부(605)는 연산부(205)에 대응하며, 기본적으로 연산부(205)와 마찬가지의 처리를 행한다.
루프 필터(606)는 루프 필터(206)에 대응하며, 기본적으로 루프 필터(206)와 마찬가지의 처리를 행한다. 화면 재배열 버퍼(607)는 화면 재배열 버퍼(207)에 대응하며, 기본적으로 화면 재배열 버퍼(207)와 마찬가지의 처리를 행한다. D/A 변환부(608)는 D/A 변환부(208)에 대응하며, 기본적으로 D/A 변환부(208)와 마찬가지의 처리를 행한다. 디코드 픽처 버퍼(609)는, 디코드 픽처 버퍼(209)에 대응하며, 기본적으로 디코드 픽처 버퍼(209)와 마찬가지의 처리를 행한다.
화면 내 예측부(610)는 화면 내 예측부(210)에 대응하며, 기본적으로 화면 내 예측부(210)와 마찬가지의 처리를 행한다. 움직임 보상부(611)는 움직임 보상부(211)에 대응하며, 기본적으로 움직임 보상부(211)와 마찬가지의 처리를 행한다. 선택부(612)는 선택부(212)에 대응하며, 기본적으로 선택부(212)와 마찬가지의 처리를 행한다.
V0 화상 복호 장치(600-0)는, 또한, 제어부(621), V0 선택부(631-0), V0 템포럴 메모리(632-0), V0 움직임 벡터 압축부(633-0), V0 움직임 벡터 메모리(634-0), 및 V0 선택부(635-0)를 갖는다.
V1 화상 복호 장치(600-1)는, 또한, V1 선택부(631-1), V1 템포럴 메모리(632-1), V1 움직임 벡터 압축부(633-1), V1 움직임 벡터 메모리(634-1), 및 V1 선택부(635-1)를 갖는다.
V2 화상 복호 장치(600-2)는, 또한, V2 선택부(631-2), V2 템포럴 메모리(632-2), V2 움직임 벡터 압축부(633-2), 및 V2 움직임 벡터 메모리(634-2)를 갖는다.
가역 복호부(602-0)는, 부호화측으로부터 공급된, IVMP용의 움직임 벡터를 압축할지 여부를 나타내는 플래그를, 예를 들어 시퀀스 파라미터 세트로부터 추출하여, 제어부(621)에 공급한다.
제어부(621)는 가역 복호부(602)로부터 취득한 플래그의 값에 기초하여, 즉, 부호화측에서 채용된 방법(제어부(521)에 의해 결정된 방법)에 따라, V0 선택부(631-0), V0 선택부(635-0), V1 선택부(631-1), V1 선택부(635-1), 및 V2 선택부(631-2)의 선택(스위칭)을 제어한다.
IVMP용의 움직임 벡터를 압축하는 경우, V0 선택부(631-0)는, 제어부(621)의 제어에 따라, V0 움직임 벡터 압축부(633-0)를 선택하고, V0 선택부(635-0)는, 제어부(621)의 제어에 따라, V0 움직임 벡터 메모리(634-0)를 선택한다. 또한, V1 선택부(631-1)는, 제어부(621)의 제어에 따라, V1 움직임 벡터 압축부(633-1)를 선택하고, V1 선택부(635-1)는, 제어부(621)의 제어에 따라, V1 움직임 벡터 메모리(634-1)를 선택한다. 또한, V2 선택부(631-2)는, 제어부(621)의 제어에 따라, V2 움직임 벡터 압축부(633-2)를 선택한다.
이 경우, 움직임 보상부(611-0)는, 재구축한 커런트 블록의 압축 전 V0 움직임 벡터(최고 4x4 정밀도)를, V0 선택부(631-0)를 통해, V0 움직임 벡터 압축부(633-0)에 공급한다. V0 움직임 벡터 압축부(633-0)는, 움직임 보상부(611-0)로부터 공급된 압축 전 V0 움직임 벡터를 1/16 압축하고, 얻어진 1/16 압축 후 V0 움직임 벡터를 V0 움직임 벡터 메모리(634-0)에 공급한다. V0 움직임 벡터 메모리(634-0)는, 공급된 1/16 압축 후 V0 움직임 벡터를 기억한다. V0 움직임 벡터 메모리(634-0)는, 적절히, 기억하고 있는 1/16 압축 후 V0 움직임 벡터를, 시간적으로 주변의 블록의 움직임 벡터로서, 움직임 보상부(611-0)에 공급한다. 또한, V0 움직임 벡터 메모리(634-0)는, 적절히, 기억하고 있는 1/16 압축 후 V0 움직임 벡터를, 뷰간적으로 주변의 블록의 움직임 벡터로서, V0 선택부(635-0)를 통해, 움직임 보상부(611-1)에 공급한다.
또한, 움직임 보상부(611-1)는, 재구축한 커런트 블록의 압축 전 V1 움직임 벡터(최고 4x4 정밀도)를, V1 선택부(631-1)를 통해, V1 움직임 벡터 압축부(633-1)에 공급한다. V1 움직임 벡터 압축부(633-1)는, 움직임 보상부(611-1)로부터 공급된 압축 전 V1 움직임 벡터를 1/16 압축하고, 얻어진 1/16 압축 후 V1 움직임 벡터를 V1 움직임 벡터 메모리(634-1)에 공급한다. V1 움직임 벡터 메모리(634-1)는, 공급된 1/16 압축 후 V1 움직임 벡터를 기억한다. V1 움직임 벡터 메모리(634-1)는, 적절히, 기억하고 있는 1/16 압축 후 V1 움직임 벡터를, 시간적으로 주변의 블록의 움직임 벡터로서, 움직임 보상부(611-1)에 공급한다. 또한, V1 움직임 벡터 메모리(634-1)는, 적절히, 기억하고 있는 1/16 압축 후 V1 움직임 벡터를, 뷰간적으로 주변의 블록의 움직임 벡터로서, V1 선택부(635-1)를 통해, 움직임 보상부(611-2)에 공급한다.
또한, 움직임 보상부(611-2)는, 움직임 예측에 의해 생성한 커런트 블록의 압축 전 V2 움직임 벡터(최고 4x4 정밀도)를, V2 선택부(631-2)를 통해, V2 움직임 벡터 압축부(633-2)에 공급한다. V2 움직임 벡터 압축부(633-2)는, 움직임 보상부(611-2)로부터 공급된 압축 전 V2 움직임 벡터를 1/16 압축하고, 얻어진 1/16 압축 후 V2 움직임 벡터를 V2 움직임 벡터 메모리(634-2)에 공급한다. V2 움직임 벡터 메모리(634-2)는, 공급된 1/16 압축 후 V2 움직임 벡터를 기억한다. V2 움직임 벡터 메모리(634-2)는, 적절히, 기억하고 있는 1/16 압축 후 V2 움직임 벡터를, 시간적으로 주변의 블록의 움직임 벡터로서, 움직임 보상부(611-2)에 공급한다.
즉, 이 경우, 화상 복호 장치(600)는, 제1 실시 형태에서 설명한 방법의 경우(예를 들어 도 5)와 마찬가지의 구성이 된다.
IVMP용의 움직임 벡터가 압축되지 않을 경우, V0 선택부(631-0) 및 V0 선택부(635-0)는, 제어부(621)의 제어에 따라, V0 템포럴 메모리(632-0)를 선택한다. 또한, V1 선택부(631-1) 및 V1 선택부(635-1)는, 제어부(621)의 제어에 따라, V1 템포럴 메모리(632-0)를 선택한다. 또한, V2 선택부(631-2)는, 제어부(621)의 제어에 따라, V2 템포럴 메모리(632-2)를 선택한다.
이 경우, 움직임 보상부(611-0)는, 움직임 예측에 의해 생성한 커런트 블록의 압축 전 V0 움직임 벡터(최고 4x4 정밀도)를, V0 선택부(631-0)를 통해, V0 템포럴 메모리(632-0)에 공급한다. V0 템포럴 메모리(632-0)는, 적절히, 기억하고 있는 압축 전 V0 움직임 벡터를, 뷰간적으로 주변의 블록의 움직임 벡터로서, V0 선택부(635-0)를 통해, 움직임 보상부(611-1)에 공급한다. 또한, V0 템포럴 메모리(632-0)는, 적절히, 기억하고 있는 압축 전 V0 움직임 벡터를, V0 움직임 벡터 압축부(633-0)에 공급한다. V0 움직임 벡터 압축부(633-0)는, V0 템포럴 메모리(632-0)으로부터 압축 전 V0 움직임 벡터를 판독해서 1/16 압축하고, 얻어진 1/16 압축 후 V0 움직임 벡터를 V0 움직임 벡터 메모리(634-0)에 공급한다. V0 움직임 벡터 메모리(634-0)는, 공급된 1/16 압축 후 V0 움직임 벡터를 기억한다. V0 움직임 벡터 메모리(634-0)는, 적절히, 기억하고 있는 1/16 압축 후 V0 움직임 벡터를, 시간적으로 주변의 블록의 움직임 벡터로서, 움직임 보상부(611-0)에 공급한다.
또한, 움직임 보상부(611-1)는, 움직임 예측에 의해 생성한 커런트 블록의 압축 전 V1 움직임 벡터(최고 4x4 정밀도)를, V1 선택부(631-1)를 통해, V1 템포럴 메모리(632-1)에 공급한다. V1 템포럴 메모리(632-1)는, 적절히, 기억하고 있는 압축 전 V1 움직임 벡터를, 뷰간적으로 주변의 블록의 움직임 벡터로서, V1 선택부(635-1)를 통해 움직임 보상부(611-2)에 공급한다. 또한, V1 템포럴 메모리(632-1)는, 적절히, 기억하고 있는 압축 전 V1 움직임 벡터를, V1 움직임 벡터 압축부(633-1)에 공급한다. V1 움직임 벡터 압축부(633-1)는, V1 템포럴 메모리(632-1)로부터 공급된 압축 전 V1 움직임 벡터를 1/16 압축하고, 얻어진 1/16 압축 후 V1 움직임 벡터를 V1 움직임 벡터 메모리(634-1)에 공급한다. V1 움직임 벡터 메모리(634-1)는, 공급된 1/16 압축 후 V1 움직임 벡터를 기억한다. V1 움직임 벡터 메모리(634-1)는, 적절히, 기억하고 있는 1/16 압축 후 V1 움직임 벡터를, 시간적으로 주변의 블록의 움직임 벡터로서, 움직임 보상부(611-1)에 공급한다.
또한, 움직임 보상부(611-2)는, 움직임 예측에 의해 생성한 커런트 블록의 압축 전 V2 움직임 벡터(최고 4x4 정밀도)를, V2 선택부(631-2)를 통해, V2 템포럴 메모리(632-2)에 공급한다. V2 템포럴 메모리(632-2)는, 적절히, 기억하고 있는 압축 전 V2 움직임 벡터를, V2 움직임 벡터 압축부(633-2)에 공급한다. V2 움직임 벡터 압축부(633-2)는, V2 템포럴 메모리(632-2)로부터 공급된 압축 전 V2 움직임 벡터를 1/16 압축하고, 얻어진 1/16 압축 후 V2 움직임 벡터를 V2 움직임 벡터 메모리(634-2)에 공급한다. V2 움직임 벡터 메모리(634-2)는, 공급된 1/16 압축 후 V2 움직임 벡터를 기억한다. V2 움직임 벡터 메모리(634-2)는, 적절히, 기억하고 있는 1/16 압축 후 V2 움직임 벡터를, 시간적으로 주변의 블록의 움직임 벡터로서, 움직임 보상부(611-2)에 공급한다.
즉, 이 경우, 화상 복호 장치(600)는, 종래의 방법의 경우(예를 들어 도 4)와 마찬가지의 구성이 된다.
이상과 같이, 움직임 벡터의 압축 방법을 제어할 수 있도록 함으로써, 부호화·복호에 필요한 기억 용량의 증대를 적절하게 억제할 수 있다.
<복호 처리의 흐름>
이어서, 이상과 같은 화상 복호 장치(600)에 의해 실행되는 처리의 흐름에 대하여 설명한다. 도 60의 흐름도를 참조하여, 화상 복호 장치(600)에 의한 복호 처리의 흐름의 예를 설명한다.
복호 처리가 개시되면, 제어부(621)는, 스텝 S3401에서, 부호화측으로부터 전송된, IVMP용의 움직임 벡터를 압축할지 여부를 나타내는 움직임 벡터 압축 플래그를 수취한다.
커런트 픽처에 대해서, V0 화상 복호 장치(600-0)는, 스텝 S3402에서 V0 복호 처리를 행하고, V1 화상 복호 장치(600-1)는, 스텝 S3403에서 V1 복호 처리를 행하고, V2 화상 복호 장치(600-2)는, 스텝 S3404에서 V2 복호 처리를 행한다.
스텝 S3405에서, 화상 복호 장치(600)는 모든 픽처를 처리했는지 여부를 판정하고, 미처리의 픽처가 존재한다고 판정한 경우, 처리를 스텝 S3402로 되돌려서, 그 이후의 처리를 반복한다.
각 픽처에 대해서, 스텝 S3402 내지 스텝 S3405의 처리가 반복되어, 스텝 S3405에서, 모든 픽처가 처리되었다고 판정된 경우, 화상 복호 장치(600)는 복호 처리를 종료한다.
<V0 복호 처리의 흐름>
이어서, 도 61 및 도 62의 흐름도를 참조하여, 도 60의 스텝 S3402에서 실행되는, 뷰 0의 복호를 행하는 V0 복호 처리의 흐름의 예를 설명한다.
스텝 S3501 내지 스텝 S3508의 각 처리는, V0 화상 복호 장치(600-0)의 각 처리부에 의해, 도 20의 스텝 S1501 내지 스텝 S1508의 각 처리와 마찬가지로 행하여진다.
스텝 S3509에서, V0 선택부(631-0)는, 제어부(621)의 제어에 따라, 압축 전 V0 움직임 벡터를 압축할지 여부를 판정한다. 압축한다고 판정된 경우, 처리는 스텝 S3510으로 진행된다.
스텝 S3510에서, V0 움직임 벡터 압축부(633-0)는, 압축 전 V0 움직임 벡터를 1/16 압축한다. 스텝 S3511에서, V0 움직임 벡터 메모리(634-0)는, 스텝 S3510의 처리에 의해 생성된 1/16 압축 후 V0 움직임 벡터를 기억한다. 스텝 S3511의 처리가 종료되면, 처리는 도 62의 스텝 S3521로 진행된다.
또한, 도 61의 스텝 S3509에서, 압축 전 V0 움직임 벡터를 압축하지 않는다고 판정된 경우, 처리는 스텝 S3512로 진행된다. 스텝 S3512에서, V0 템포럴 메모리(632-0)는, 압축 전 V0 움직임 벡터를 기억한다. 스텝 S3512의 처리가 종료되면, 처리는 도 62의 스텝 S3521로 진행된다.
도 62의 스텝 S3521 내지 스텝 S3525의 각 처리는, 화상 복호 장치(600-0)의 각 처리부에 의해, 도 20의 스텝 S1511 내지 스텝 S1515의 각 처리와 마찬가지로 행하여진다.
도 62의 스텝 S3509에서, V0 선택부(635-0)는, 제어부(621)의 제어에 따라, IVMP의 움직임 벡터를 압축할지 여부를 판정한다. 이 판정은, 도 61의 스텝 S3509와 마찬가지로 행하여진다. 압축하지 않는다고 판정된 경우, 즉, 도 61의 스텝 S3509에서도, 움직임 벡터를 압축한다고 판정되지 않은 경우, 처리는 도 62의 스텝 S3527로 진행된다.
이 경우, 도 61의 스텝 S3512의 처리에 의해 압축 전 V0 움직임 벡터가 V0 템포럴 메모리(632-0)에 기억되어 있다. 따라서, 스텝 S3527에서, V0 움직임 벡터 압축부(633-0)는, V0 템포럴 메모리(632-0)로부터 그 압축 전 V0 움직임 벡터를 판독하고, 1/16 압축을 행한다. 스텝 S3528에서, V0 움직임 벡터 메모리(634-0)는, 스텝 S3527에서 산출된 1/16 압축 후 V0 움직임 벡터를 기억한다.
이 경우, V0 템포럴 메모리(632-0)에 기억된 압축 전 V0 움직임 벡터는, 움직임 보상부(611-1)에서, IVMP에 이용된다. 또한, V0 움직임 벡터 메모리(634-0)에 기억된 1/16 압축 후 V0 움직임 벡터는, 움직임 보상부(611-0)에서, TMVP에 이용된다.
스텝 S3528의 처리가 종료되면, V0 복호 처리가 종료되고, 처리는 도 60으로 복귀된다.
또한, 도 62의 스텝 S3526에서, 움직임 벡터를 압축한다고 판정된 경우, 즉, 도 61의 스텝 S3509에서도, 움직임 벡터를 압축한다고 판정된 경우, V0 부호화 처리가 종료되고, 처리는 도 60으로 복귀된다.
이 경우, V0 움직임 벡터 메모리(634-0)에 기억된 1/16 압축 후 V0 움직임 벡터는, 움직임 보상부(611-0)에서, TMVP에 이용됨과 함께, 움직임 보상부(611-1)에서, IVMP에 이용된다.
또한, 도 61의 스텝 S3506에서 실행되는 V0 움직임 보상 처리는, 움직임 보상부(611-0)에 의해, 제1 실시 형태의 경우(도 21)와 마찬가지로 행하여지므로 그 설명을 생략한다.
<V1 복호 처리의 흐름>
이어서, 도 63 및 도 64의 흐름도를 참조하여, 도 60의 스텝 S3403에서 실행되는, 뷰 1의 부호화 데이터를 복호하는 V1 복호 처리의 흐름의 예를 설명한다.
뷰 0에 대한 처리와, 뷰 1에 대한 처리의 차이는, 주로, 움직임 보상 처리에 있다. 따라서, 도 63 및 도 64에 도시된 바와 같이, 뷰 1에 대한 V1 복호 처리는, V1 화상 복호 장치(600-1)에 의해, 뷰 0에 대한 V0 복호 처리(도 61 및 도 62)의 경우와 기본적으로 마찬가지로 실행된다. 즉, 도 63의 스텝 S3601 내지 스텝 S3612, 및 도 64의 스텝 S3621 내지 스텝 S3628의 각 처리는, 도 61의 스텝 S3501 내지 스텝 S3512, 및 도 62의 스텝 S3521 내지 스텝 S3528의 각 처리와 기본적으로 마찬가지로 실행된다. 따라서, 도 63 및 도 64의 설명은, 도 61 및 도 62의 설명에서의 V0 화상 복호 장치(600-0)의 각 부를 V1 화상 복호 장치(600-1)의 각 부로 치환하고, 도 61 및 도 62에서 뷰 0에 대한 처리로서 한 설명을, 뷰 1에 대한 처리에 대한 것으로서 바꾸기만 하면 되므로, 그 설명은 생략한다.
<V1 움직임 보상 처리의 흐름>
이어서, 도 63의 스텝 S3606에서 실행되는 V1 움직임 보상 처리의 흐름의 예를, 도 65의 흐름도를 참조하여 설명한다.
V1 움직임 보상 처리가 개시되면, 스텝 S3641에서, 움직임 보상부(611-1)는, 차분 움직임 정보(차분 움직임 벡터)를 취득한다. 스텝 S3642에서, 움직임 보상부(611-1)는, 인터 예측 정보에 기초하여, 예측 움직임 벡터의 모드가 공간 예측인지 여부를 판정한다. 공간 예측이라고 판정된 경우, 처리는 스텝 S3643으로 진행된다.
스텝 S3643에서, 움직임 보상부(611-1)는, 픽처 내의 압축 전 V1 움직임 벡터(커런트 블록에 대하여 공간적으로 주변의 블록의 움직임 벡터)를 사용하여 예측 움직임 벡터를 생성한다. 예측 움직임 벡터가 생성되면, 처리는 스텝 S3649로 진행된다.
또한, 스텝 S3642에서, 공간 예측이 아니라고 판정된 경우, 처리는 스텝 S3644로 진행된다.
뷰 1의 경우, 최초로 처리되는 뷰가 아니므로, 예측 움직임 벡터의 모드가 뷰간 예측(IVMP)일 가능성도 있다.
스텝 S3644에서, 움직임 보상부(611-1)는, 인터 예측 정보에 기초하여, 예측 움직임 벡터의 모드가 시간 예측인지 여부를 판정한다. 시간 예측이라고 판정된 경우, 처리는 스텝 S3645로 진행된다.
스텝 S3645에서, 움직임 보상부(611-1)는, 다른 픽처 내의 1/16 압축 후 V1 움직임 벡터(커런트 블록에 대하여 공간적으로 주변의 블록의 움직임 벡터)를 사용하여 예측 움직임 벡터를 생성한다. 예측 움직임 벡터가 생성되면, 처리는 스텝 S3649로 진행된다.
또한, 스텝 S3644에서, 시간 예측이 아니라고 판정된 경우, 처리는 스텝 S3646으로 진행된다.
본 실시 형태의 경우, 부호화측에서 IVMP용의 움직임 벡터가 압축되는 경우와 되지 않는 경우가 있다.
스텝 S3646에서, 움직임 보상부(611-1)는, 제어부(621)의 제어에 기초하여, 움직임 벡터를 압축할지 여부를 판정한다. 압축하지 않는다고 판정된 경우, 처리는 스텝 S3647로 진행된다.
스텝 S3647에서, 움직임 보상부(611-1)는, 압축 전 V0 움직임 벡터를 사용하여 예측 움직임 벡터를 생성한다. 예측 움직임 벡터가 생성되면, 처리는 스텝 S3649로 진행된다.
또한, 스텝 S3646에서, 압축한다고 판정된 경우, 처리는 스텝 S3648로 진행된다.
스텝 S3648에서, 움직임 보상부(611-1)는, 1/16 압축 후 V0 움직임 벡터를 사용하여 예측 움직임 벡터를 생성한다. 예측 움직임 벡터가 생성되면, 처리는 스텝 S3649로 진행된다.
스텝 S3649에서, 움직임 보상부(611-1)는, 스텝 S3643, 스텝 S3645, 스텝 S3647, 또는, 스텝 S3648에서 생성된 예측 움직임 벡터를 사용하여, 움직임 벡터를 재구축한다.
스텝 S3650에서, 움직임 보상부(611-1)는, 움직임 보상을 행하여, 예측 화상을 생성한다. 또한, 움직임 보상부(611-1)는, 스텝 S3649에서 재구축된 움직임 벡터를 기억한다. 스텝 S3650의 처리가 종료되면, V1 움직임 보상 처리가 종료되고, 처리는 도 63으로 복귀된다.
<V2 복호 처리의 흐름>
이어서, 도 66 및 도 67의 흐름도를 참조하여, 도 60의 스텝 S3404에서 실행되는, 뷰 2의 부호화 데이터를 복호하는 V2 복호 처리의 흐름의 예를 설명한다.
뷰 0에 대한 처리와, 뷰 2에 대한 처리의 차이는, 주로, 움직임 보상 처리에 있다. 따라서, 도 66 및 도 67에 도시된 바와 같이, 뷰 2에 대한 V2 복호 처리는, V2 화상 복호 장치(600-2)에 의해, 뷰 0에 대한 V0 복호 처리(도 61 및 도 62)의 경우와 기본적으로 마찬가지로 실행된다. 즉, 도 66의 스텝 S3701 내지 스텝 S3712, 및 도 67의 스텝 S3721 내지 스텝 S3728의 각 처리는, 도 61의 스텝 S3501 내지 스텝 S3512, 및 도 62의 스텝 S3521 내지 스텝 S3528의 각 처리와 기본적으로 마찬가지로 실행된다. 따라서, 도 66 및 도 67의 설명은, 도 61 및 도 62의 설명에서의 V0 화상 복호 장치(600-0)의 각 부를 V2 화상 복호 장치(600-2)의 각 부로 치환하고, 도 61 및 도 62에서 뷰 0에 대한 처리로서 한 설명을, 뷰 2에 대한 처리에 대한 것으로서 바꾸기만 하면 되므로, 그 설명은 생략한다.
<V2 움직임 보상 처리의 흐름>
이어서, 도 66의 스텝 S3706에서 실행되는 V2 움직임 보상 처리의 흐름의 예를, 도 68의 흐름도를 참조하여 설명한다.
도 68에 도시된 바와 같이, V2 움직임 보상 처리는, V1 움직임 보상 처리(도 65)와 기본적으로 마찬가지로 행하여진다. 즉, 도 68의 스텝 S3741 내지 스텝 S3750의 각 처리는, 각각, 도 65의 스텝 S3631 내지 스텝 S3650의 각 처리와 기본적으로 마찬가지로 실행된다. 단, V1 움직임 보상 처리는, 움직임 보상부(611-1)가 실행하는 것에 반해, V2 움직임 보상 처리는, 움직임 보상부(611-2)가 실행한다.
또한, V2 움직임 보상 처리의 처리 대상은, 뷰 1의 화상이 아니라 뷰 2의 화상이다. 따라서, 스텝 S3743에서, 움직임 보상부(611-2)는, 픽처 내의 압축 전 V2 움직임 벡터(커런트 블록에 대하여 공간적으로 주변의 블록의 움직임 벡터)를 사용하여 예측 움직임 벡터를 생성한다.
또한, 스텝 S3745에서, 움직임 보상부(611-2)는, 다른 픽처의 1/16 압축 후 V2 움직임 벡터(커런트 블록에 대하여 시간적으로 주변의 블록의 움직임 벡터)를 사용하여 예측 움직임 벡터를 생성한다.
또한, 스텝 S3747에서, 움직임 보상부(611-2)는, 압축 전 V1 움직임 벡터(커런트 블록에 대하여 뷰간적으로 주변의 블록의 움직임 벡터)를 사용하여 예측 움직임 벡터를 생성한다.
또한, 스텝 S3748에서, 움직임 보상부(611-2)는, 1/16 압축 후 V1 움직임 벡터(커런트 블록에 대하여 뷰간적으로 주변의 블록의 움직임 벡터)를 사용하여 예측 움직임 벡터를 생성한다.
스텝 S3750의 처리가 종료되면, V2 움직임 보상 처리가 종료되고, 처리는 도 66으로 복귀된다.
이상과 같이 각 처리를 실행함으로써, 화상 복호 장치(600)는, IVMP용의 움직임 벡터를 위해 필요한 메모리 용량을 적절하게 저감시킬 수 있어, 부호화·복호에 필요한 기억 용량의 증대를 적절하게 억제할 수 있다.
<4. 제4 실시 형태>
<계층 화상 점 부호화·계층 화상 복호에 대한 적용>
이상에서는, 다시점 화상의 부호화·복호에 대하여 설명했지만, 레이어는, 시점(뷰)에 한하지 않는다. 예를 들어, 해상도, 컴포넌트, 비트 심도 등의 스케일러블한 부호화·복호에서의 계층도, 이 레이어에 포함된다. 본 기술은, 복수 레이어의 부호화·복호라면, 어떠한 부호화·복호에도 적용할 수 있다. 예를 들어, 상술한 일련의 처리는, 계층 화상 부호화·계층 화상 복호에 적용할 수 있다. 도 69는, 계층 화상 부호화 방식의 일례를 나타낸다.
계층 화상 부호화(스케일러블 부호화)는, 화상 데이터를, 소정의 파라미터에 대하여 스케일러빌리티(scalability) 기능을 갖도록, 화상을 복수 레이어화(계층화)하여, 레이어마다 부호화하는 것이다. 계층 화상 복호는, 그 계층 화상 부호화(스케일러블 복호)는 그 계층 화상 부호화에 대응하는 복호이다.
도 69에 도시된 바와 같이, 화상의 계층화에서는, 스케일러빌리티 기능을 갖는 소정의 파라미터를 기준으로 해서 하나의 화상이 복수의 화상(레이어)으로 분할된다. 즉, 계층화된 화상(계층 화상)은, 그 소정의 파라미터의 값이 서로 상이한 복수의 계층(레이어)의 화상을 포함한다. 이 계층 화상의 복수의 레이어는, 다른 레이어의 화상을 이용하지 않고 자신의 레이어 화상만을 사용하여 부호화·복호를 행하는 베이스 레이어와, 다른 레이어의 화상을 이용하여 부호화·복호를 행하는 논베이스 레이어(인핸스먼트 레이어라고도 함)를 포함한다. 논베이스 레이어는, 베이스 레이어의 화상을 이용하도록 해도 되고, 다른 논베이스 레이어의 화상을 이용하도록 해도 된다.
일반적으로, 논베이스 레이어는, 용장성이 저감되도록, 자신의 화상과, 다른 레이어의 화상과의 차분 화상의 데이터(차분 데이터)에 의해 구성된다. 예를 들어, 하나의 화상을 베이스 레이어와 논베이스 레이어(인핸스먼트 레이어라고도 함)로 2 계층화했을 경우, 베이스 레이어의 데이터만으로 원래의 화상보다 저품질의 화상이 얻어지고, 베이스 레이어의 데이터와 논베이스 레이어의 데이터를 합성함으로써, 원래의 화상(즉 고품질의 화상)이 얻어진다.
이렇게 화상을 계층화함으로써, 상황에 따라서 다양한 품질의 화상을 용이하게 얻을 수 있다. 예를 들어 휴대 전화와 같은, 처리 능력이 낮은 단말기에 대해서는, 베이스 레이어(base layer)만의 화상 압축 정보를 전송하여, 공간 시간 해상도가 낮은, 또는, 화질이 좋지 않은 동화상을 재생하고, 텔레비전이나 퍼스널 컴퓨터와 같은, 처리 능력이 높은 단말기에 대해서는, 베이스 레이어(base layer) 외에, 인핸스먼트 레이어(enhancement layer)의 화상 압축 정보를 전송하여, 공간 시간 해상도가 높은, 또는, 화질이 높은 동화상을 재생하는 것처럼, 트랜스 코드 처리를 행하지 않고, 단말기나 네트워크의 능력에 따른 화상 압축 정보를, 서버로부터 송신하는 것이 가능하게 된다.
이러한 스케일러빌리티성을 갖게 하는 파라미터로서, 예를 들어, 도 70에 나타낸 바와 같은, 공간 해상도가 있다(spatial scalability). 이 스페셜 스케일러빌리티(spatial scalability)의 경우, 레이어마다 해상도가 상이하다. 즉, 도 70에 도시된 바와 같이, 각 픽처가, 원래의 화상보다 공간적으로 저해상도인 베이스 레이어와, 베이스 레이어의 화상과 합성함으로써 원래의 화상(원래의 공간 해상도)이 얻어지는 인핸스먼트 레이어의 2 계층으로 계층화된다. 물론, 이 계층 수는 일례이며, 임의의 계층 수로 계층화할 수 있다.
또한, 이러한 스케일러빌리티성을 갖게 하는 파라미터로서, 그 밖에는, 예를 들어 도 71에 나타낸 바와 같은, 시간 해상도가 있다(temporal scalability). 이 템포럴 스케일러빌리티(temporal scalability)의 경우, 레이어마다 프레임 레이트가 상이하다. 즉, 이 경우, 도 3에 도시된 바와 같이, 서로 다른 프레임 레이트의 레이어로 계층화되어 있어, 저프레임 레이트의 레이어에, 고프레임 레이트의 레이어를 가함으로써, 보다 고프레임 레이트의 동화상을 얻을 수 있고, 모든 레이어를 가함으로써, 원래의 동화상(원래의 프레임 레이트)을 얻을 수 있다. 이 계층 수는 일례이며, 임의의 계층 수로 계층화할 수 있다.
또한, 이러한 스케일러빌리티성을 갖게 하는 파라미터로서, 그 밖에는, 예를 들어 신호 잡음비(SNR(Signal to Noise ratio))가 있다(SNR scalability). 이 SNR 스케일러빌리티(SNR scalability)의 경우, 레이어마다 SN비가 상이하다. 즉, 도 72에 도시된 바와 같이, 각 픽처가, 원래의 화상보다 SNR이 낮은 베이스 레이어와, 베이스 레이어의 화상과 합성함으로써 원래의 화상(원래의 SNR)이 얻어지는 인핸스먼트 레이어의 2 계층으로 계층화된다. 즉, 베이스 레이어(base layer) 화상 압축 정보에 있어서는, 저PSNR의 화상에 관한 정보가 전송되어 있고, 이것에, 인핸스먼트 레이어(enhancement layer) 화상 압축 정보를 가함으로써, 고PSNR 화상을 재구축하는 것이 가능하다. 물론, 이 계층 수는 일례이며, 임의의 계층 수로 계층화할 수 있다.
스케일러빌리티성을 갖게 하는 파라미터는, 상술한 예 이외이어도 물론 좋다. 예를 들어, 베이스 레이어(base layer)가 8비트(bit) 화상을 포함하고, 이것에 인핸스먼트 레이어(enhancement layer)를 가함으로써, 10비트(bit) 화상이 얻어지는 비트 심도 스케일러빌리티(bit-depth scalability)가 있다.
또한, 베이스 레이어(base layer)가 4:2:0 포맷의 컴포넌트 화상을 포함하고, 이것에 인핸스먼트 레이어(enhancement layer)를 가함으로써, 4:2:2 포맷의 컴포넌트 화상이 얻어지는 크로마 스케일러빌리티(chroma scalability)가 있다.
이러한 계층 화상의 부호화·복호에 있어서, 각 계층의 화상을 부호화·복호할 때, 상술한 다시점 부호화·복호의 경우와 마찬가지로, 움직임 벡터의 예측에 레이어간의 상관성의 높이를 이용할 수 있다. 즉, 다른 레이어의 처리 완료(부호화 완료 또는 복호 완료)의 움직임 벡터를 사용하여 예측 움직임 벡터의 생성 또는 재구축을 행할 수 있다.
그 경우, 어떤 레이어의 부호화·복호에서 얻어진 움직임 벡터를, 다음 이후에 처리되는 레이어의 부호화·복호에서 이용할 수 있도록 유지할 필요가 있다.
따라서, 그러기 위한 메모리 용량의 증대를 억제하기 위해서, 다른 레이어의 부호화·복호에서 이용되는 커런트 레이어의 움직임 벡터를 압축하도록 해도 된다. 이 압축의 구체적인 방법은, 다시점 부호화·복호의 설명에서 상술한 것과 마찬가지이다.
예를 들어, 도 5와 같이 움직임 벡터를 압축해서(씨닝해서) 참조하도록 하기 위해서는, 화상 부호화 장치는, 도 6 내지 도 8과 같은 구성을 갖고, 도 9 내지 도 15의 흐름도와 같은 각 처리를 실행하도록 하면 된다. 또한, 화상 복호 장치는, 도 16 내지 도 18과 같은 구성을 갖고, 도 19 내지 도 25의 흐름도와 같은 각 처리를 실행하도록 하면 된다.
또한, 예를 들어, 도 26과 같이 움직임 벡터를 압축해서(씨닝해서) 참조하도록 하기 위해서는, 화상 부호화 장치는, 도 27 내지 도 29와 같은 구성을 갖고, 도 30 내지 도 34의 흐름도와 같은 각 처리를 실행하도록 하면 된다. 또한, 화상 복호 장치는, 도 35 내지 도 37과 같은 구성을 갖고, 도 38 내지 도 42의 흐름도와 같은 각 처리를 실행하도록 하면 된다.
또한, 예를 들어, 도 43과 같이 움직임 벡터를 압축해서(씨닝해서) 참조하도록 하기 위해서는, 화상 부호화 장치는, 도 45 내지 도 47과 같은 구성을 갖고, 도 48 내지 도 56의 흐름도와 같은 각 처리를 실행하도록 하면 된다. 또한, 화상 복호 장치는, 도 57 내지 도 59와 같은 구성을 갖고, 도 60 내지 도 68의 흐름도와 같은 각 처리를 실행하도록 하면 된다.
또한, 이러한 계층 화상의 부호화·복호에 있어서, 예를 들어, 레이어 1(layer_id=1)의 부호화·복호에 있어서, 레이어 0(layer_id=0)의 움직임 벡터를 이용한다. 이때, 레이어 0의 움직임 벡터 정밀도는, 압축하지 않아도, 레이어 1의 움직임 벡터 정밀도보다 낮다. 그러나, 레이어 0의 움직임 벡터를 더 압축함으로써, 그 움직임 벡터를 유지하는 데 필요한 기억 용량을 보다 저감시킬 수 있다.
또한, 이러한 레이어간의 움직임 벡터의 정밀도의 비를 고려하여 압축률을 결정하도록 해도 된다. 예를 들어, 소정의 압축률을 기준 압축률로서 정하고, 레이어간의 움직임 벡터의 정밀도의 비(레이어간의 해상도의 비)에 따라서 실제의 압축률을 정하도록 해도 된다. 예를 들어, 레이어 1의 IVMP에 사용하는 레이어 0의 움직임 벡터의 기준 압축률이 1/16이라 하자. 이때, 레이어 0의 해상도가 레이어 1의 1/4이면, 실제의 압축률은 1/4로 설정되고, 레이어 0의 해상도가 레이어 1의 1/8이면, 실제의 압축률은 1/2로 설정되도록 해도 된다. 이와 같이 함으로써, 원하는 압축률(기준 압축률)을 실현할 수 있어, 부호화·복호에 필요한 기억 용량의 증대를 충분히 억제할 수 있다.
또한, 예를 들어, 도 73의 A에 도시된 바와 같이, 베이스 레이어(BL)의 움직임 벡터를 1/4로 씨닝하도록 하면, 그 움직임 벡터의 예측 정밀도의 저감이 너무 커서, 인핸스먼트 레이어(EL)에 있어서 부호화 효율이 저감될 우려가 있다. 그러나, 반대로, 도 73의 B에 도시된 바와 같이, 베이스 레이어(BL)의 움직임 벡터를 씨닝하지 않고 인핸스먼트 레이어에 제공하도록 하면, 부호화·복호에 필요한 기억 용량이 증대되어버릴 우려가 있다.
따라서, 예를 들어, 도 74에 도시된 바와 같이, 움직임 벡터를, 베이스 레이어로부터 인핸스먼트 레이어에 제공할 때에 1/2로 씨닝하고(압축하고), 인핸스먼트 레이어로부터 베이스 레이어로 되돌릴 때에 또한 1/2로 씨닝(압축)하도록 해도 된다. 즉, 계층 화상의 부호화·복호의 경우도, 도 26 등을 참조하여 설명한 다시점 화상의 부호화·복호의 경우와 마찬가지의 방법으로 움직임 벡터를 씨닝(압축)할 수 있다.
이상과 같이, 화상의 복수 레이어화는, 임의의 파라미터에 기초하여 행할 수 있고, 본 기술은, 그 파라미터에 의하지 않고, 복수 레이어의 화상의 부호화·복호에 적용할 수 있다. 즉, 계층 화상 부호화·계층 화상 복호에 본 기술을 적용하는 경우도, 필요한 기억 용량의 증대를 억제할 수 있다.
<기타>
이상에서는, 레이어 수가 3(0 내지 2)인 경우를 예로 들어 설명했지만, 레이어 수는 임의이며, 2 레이어이어도 되고, 4 레이어 이상이어도 된다.
또한, 이상에서는, 부호화에서의 움직임 예측·움직임 보상, 또는, 복호에서의 움직임 보상에 있어서, 하나 전에 처리되는 레이어의 움직임 벡터를 이용하도록 설명했지만, 이에 한정되지 않고, 임의의 다른 레이어의 움직임 벡터를 이용할 수 있다.
예를 들어, 모든 논베이스 레이어의 부호화·복호에 있어서, 베이스 레이어의 움직임 벡터를 이용하도록 해도 된다. 또한, 복수의 논베이스 레이어가 하나의 논베이스 레이어의 움직임 벡터를 이용하도록 해도 된다.
<5. 개요 2>
<인트라 예측>
그런데, HEVC에서는, AVC 등과 마찬가지로, 커런트 블록의 주변 화소를 사용하여 예측 화상을 생성하는 인트라 예측이 규정되어 있다.
AVC에서는, 인트라 4x4 예측, 인트라 8x8 예측, 및 인트라 16x16 예측이 존재하는 것에 반해, HEVC에서는, 4x4 내지 64x64 화소 블록에 대해서, 도 75에 나타낸 바와 같은, 앵귤러(Angular) 예측이 적용된다.
즉, AVC에서는, 도 75의 A에 도시된 바와 같이, 8 방향+직류 예측에 의해 인트라 예측 처리가 행하여지는 것에 반해, HEVC에서는 도 75의 B에 도시된 바와 같이, 32 방향+직류 예측에 의해 인트라 예측이 행하여진다. 이에 의해, 예측 정밀도가 향상된다.
또한, HEVC에서는, 도 76에 나타낸 바와 같은, 플래너(Planar) 예측이 규정되어 있다.
플래너(Planar) 예측 처리에 있어서는, 처리 대상인 커런트 블록의 주변 화소(이미 부호화 완료된 화소)로부터, 바이리니어 보간(bi-linear interpolation)에 의해, 커런트 블록에 포함되는 예측 화소가 생성된다. 플래너(Planar) 예측 처리는, 그라데이션(gradation)이 있는 영역의 부호화 효율을 향상시킬 수 있다.
HEVC에서는, 도 77에 도시된 바와 같이, 3개의 모스트 프로버블 모드(MostProbableMode)를 사용한 인트라 예측 모드의 부호화 처리가 행하여진다. 즉, 커런트 블록 위에 인접하는 주변 블록의 인트라 예측 모드(Above), 커런트 블록의 좌측으로 인접하는 주변 블록의 인트라 예측 모드(Left), 및 그것들의 주변 블록(Above 및 Left)에 있어서의 인트라 예측 모드의 조합에 의해 결정되는 모드를, 인트라 예측 모드의 후보(후보 모드라고도 함)로 하고, 이 3개의 후보 모드 중에서 최적의 것을 커런트 블록의 인트라 예측 모드로서 채용한다.
커런트 블록의 예측 모드와, 모스트 프로버블 모드(MostProbableMode) 중 어느 하나가 동일한 경우에는, 그 인덱스(index) 번호를 전송한다. 그렇지 않을 경우에는, 예측 블록의 모드 정보를, 5비트의 고정 길이에 의해 전송한다.
<인트라 예측에서의 필터 처리>
도 78은, HEVC에서 규정되어 있는 MDIS(Mode Dependent Intra Smoothing)를 설명하는 도면이다.
AVC의 경우, 인트라 8x8 예측 모드에서, 커런트 블록의 주변 화소에 대하여 도 78에 도시된 바와 같이, [1 2 1]/4 필터 처리가 행하여진다. 이에 반해, HEVC에서는, 블록 사이즈와 예측 모드에 따라, 이 필터 처리의 온·오프(on/off)(즉, 이 필터 처리를 적용할지 여부)가 결정된다.
보다 구체적으로는, 커런트 블록의 블록 사이즈가 4x4인 경우, 이 필터 처리는 적용되지 않는다. 커런트 블록의 블록 사이즈가 8x8인 경우, 45도 방향의 예측 모드에 대하여 이 필터 처리가 적용된다. 커런트 블록의 블록 사이즈가 16x16인 경우, 수평(horizontal)에 가까운 3 방향, 및 수직(vertical)에 가까운 3 방향 이외의 방향의 예측 모드에 대하여 이 필터 처리가 적용된다. 커런트 블록의 블록 사이즈가 32x32인 경우, 수평(horizontal) 및 수직(vertical) 이외의 방향의 예측 모드에 대하여 이 필터 처리가 적용된다.
또한, HEVC에서는, 예측 모드가 직류(DC) 모드, 수평(Horizontal) 모드, 수직(Vertical) 모드인 경우의 블록 왜곡의 저감을 목적으로, 도 79에 나타낸 바와 같은 바운더리 밸류 스무딩(Boundary Value Smoothing) 처리가 규정되어 있다.
예를 들어, 예측 모드가 직류(DC) 모드인 예측(DC 예측)의 경우, 처리 대상인 커런트 블록의 상변(Top)에 인접하는 주변 화소, 및 커런트 블록의 좌변(Left)에 인접하는 주변 화소의 양쪽에 대해서, 도 79에 나타내는 필터 처리(스무딩(Smoothing) 처리)를 행한다. 또한, 예측 모드가 수평(Horizontal) 모드인 예측(Horizontal 예측)의 경우, 커런트 블록의 상변(Top)에 인접하는 주변 화소에 대해서, 도 79에 나타내는 필터 처리(스무딩(Smoothing) 처리)를 행한다. 예측 모드가 수직(Vertical) 모드인 예측(Vertical 예측)의 경우, 커런트 블록의 좌변(Left)에 인접하는 주변 화소에 대해서, 도 79에 나타내는 필터 처리(스무딩(Smoothing) 처리)를 행한다.
그런데, Vadim Seregin, Patrice Onno, Shan Liu, Tammy Lee, Chulkeun Kim, Haitao Yang, Haricharan Laksman, "Description of Tool Experiment C5: Inter-layer syntax prediction using HEVC base layer", JCTVC-K1105, Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 1111th Meeting: Shanghai, CN, 1019 Oct. 2012에서는, 베이스 레이어(Baselayer)의 인트라 예측 모드에 관한 정보를 사용하여, 인핸스먼트 레이어(Enhancementlayer)에 있어서의 인트라 예측 모드 정보를 부호화하는 방법이 제안되어 있다. 그러나, HEVC에서는, worst case로 4x4 블록에 대하여 하나의 인트라 예측 모드 정보를 유지해 두지 않으면 안되기 때문에, 부호화·복호에 필요한 기억 용량이 증대되어버릴 우려가 있었다.
또한, Jill Boyce, Kawamura Kei, Haricharan Lakshman, "TE6: Inter-layer syntax prediction from AVC base layer", JCTVC-K1106V2, Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 1111th Meeting: Shanghai, CN, 1019 Oct. 2012에서는, 베이스 레이어에 있어서 AVC의 부호화(Baselayer AVC)를 행하고, 인핸스먼트 레이어에 있어서 HEVC의 부호화(Enhancementlayer HEVC)를 행하는 스케일러블(scalable) 부호화를 행할 때, 베이스 레이어(Baselayer)의 움직임 정보를 사용한 인핸스먼트 레이어(Enhancementlayer)의 움직임 정보의 부호화가 제안되어 있다. 이 경우도, 상술한 것과 마찬가지로, 베이스 레이어의 인트라 예측 모드 정보를 사용한 인핸스먼트 레이어의 인트라 예측 모드 정보의 부호화를 행하는 것을 생각할 수 있다. 그 경우에도, 상술한 경우와 마찬가지로, 부호화·복호에 필요한 기억 용량이 증대되어버릴 우려가 있었다.
따라서, 본 기술은, 베이스 레이어에서의 인트라 예측 모드(를 나타내는 정보)를 메모리에 저장할 때, 그 인트라 예측 모드(를 나타내는 정보)의 씨닝 처리를 행하도록 한다. 이와 같이 함으로써, 인트라 예측 모드(를 나타내는 정보)를 저장하는 데 필요한 기억 용량의 증대를 억제할 수 있다. 즉, 부호화·복호에 필요한 기억 용량의 증대를 억제할 수 있다. 이하에서는, 설명의 편의상, 인트라 예측 모드를 나타내는 정보도 인트라 예측 모드라고 칭한다.
도 80은, 이러한 본 기술에 대하여 설명하는 도면이다.
이 인트라 예측 모드의 씨닝 처리는, 예를 들어, 소정의 영역(에리어)마다 행해지도록 해도 된다. 씨닝 처리는, 복수 인트라 예측 모드 중, 일부의 인트라 예측 모드를 남기고, 그 밖의 인트라 예측 모드를 파기하는 처리이다. 즉, 이 경우, 씨닝 처리의 처리 단위가 되는 에리어는, 인트라 예측의 처리 단위가 되는 블록의 복수개 분의 범위가 된다. 예를 들어, 도 80의 좌측에 도시된 바와 같이, 인트라 예측의 처리 단위인 블록 0 내지 블록 15의 16개의 블록을, 씨닝 처리의 처리 단위(에리어)로 한다. 이 경우, 블록 0 내지 블록 15의 각각에 인트라 예측 모드가 설정된다. 즉, 씨닝 처리의 처리 대상인 커런트 에리어에, I0 내지 I15의 16개의 인트라 예측 모드가 존재하는 것으로 한다.
씨닝 처리에서는, 커런트 에리어 내의 각 블록의 인트라 예측 모드 중, 일부의 인트라 예측 모드를 그 에리어의 대표로서 남겨서(선택해서) 버퍼 메모리에 기억하고, 그 밖의 인트라 예측 모드를 파기한다. 예를 들어, 씨닝률이 4:1인 경우, 이러한 16개의 인트라 예측 모드 중, 어느 하나의 인트라 예측 모드만이 선택되어, 버퍼에 저장된다(그 밖의 15개의 인트라 예측 모드는 파기된다).
어떤 인트라 예측 모드를 에리어의 대표로 할지는 임의이다. 예를 들어, 커런트 에리어 내의 블록 중, 최초로 인트라 예측이 행하여지는 블록(예를 들어 블록 0)의 인트라 예측 모드(예를 들어 I0)를 커런트 에리어의 대표로 하도록 해도 된다. 또한, 예를 들어, 커런트 에리어의 중앙 부근에 위치하는 블록(예를 들어, 블록 5, 6, 9, 10 등 중 어느 하나)의 인트라 예측 모드(예를 들어, I5, I6, I9, I10 중 어느 하나)를 커런트 에리어의 대표로 하도록 해도 된다.
인핸스먼트 레이어에 있어서, 이 블록 0 내지 블록 15를 콜로케이티드 블록(Collocated Block)으로 하는 블록(PU)의 부호화 처리에는, 이 버퍼에 저장된 베이스 레이어의 인트라 예측 모드(대표치)가 사용된다. 즉, 인핸스먼트 레이어의 인트라 예측에는, 커런트 블록에 대응하는 베이스 레이어의 에리어의 인트라 예측 모드(대표치)가 사용된다.
이와 같이 함으로써, 인트라 예측 모드를 기억하는 버퍼의 용량의 증대를 억제할 수 있다.
또한, 씨닝률의 값은 임의이며, 상술한 예(4:1)에 한하지 않는다. 예를 들어 2:1이어도 되고, 8:1이나 16:1 등이어도 되고, 그 이외이어도 된다. 씨닝 처리의 처리 단위인 상술한 에리어의 넓이는, 이 씨닝률에 의해 결정되는 것일 수도 있다. 또한, 하나의 에리어로부터 씨닝률에 따른 수의 인트라 예측 모드가 그 에리어의 대표로서 선택되도록 해도 된다(즉, 하나의 에리어로부터 복수의 인트라 예측 모드를 대표로서 선택할 수 있도록 해도 된다). 또한, 이 씨닝률의 설정 방법은 임의이다. 예를 들어, 미리 정해진 소정의 값으로 해도 되고, 유저 등의 외부로부터의 지시에 따라서 설정되도록 해도 되고, 인트라 예측 모드를 저장하는 버퍼 메모리로서 사용 가능한 기억 용량이나 버스 대역폭 등의, 하드웨어 등의 조건에 기초하여 설정되도록 해도 되고, 화상 데이터의 베이스 레이어와 인핸스먼트 레이어의 해상도비 등의 소프트웨어 등의 조건에 기초하여 설정되도록 해도 된다. 또한, 복수 종류의 조건을 종합적으로 고려하여 설정되도록 해도 된다. 또한, 이 씨닝률은, 출력이 되는 화상 압축 정보(비트 스트림) 중의 임의의 위치에서 전송되도록 해도 된다. 예를 들어, 비디오 파라미터 세트(VPS(Video Parameter Set))에 있어서 전송되도록 해도 된다. 또한, 예를 들어, 인핸스먼트 레이어의 시퀀스 파라미터 세트(SPS(Sequence Parameter Set)), 픽처 파라미터 세트(PPS(Picture Parameter Set)), 또는 슬라이스 헤더(SliceHeader) 등에 있어서 전송되도록 해도 된다.
또한, 스페셜 스케일러빌리티(Spatial Scalability)의 경우, 레이어마다 해상도가 상이하므로, 씨닝률을 지정하는 레이어를 미리 정해 두는 것이 바람직하다. 예를 들어, 이 씨닝률이, 베이스 레이어에서의 비율로 설정되도록 해도 된다.
예를 들어, 스페셜 스케일러빌리티(Spatial Scalability)비가 1:2인 경우, 베이스 레이어에서의 4x4 블록은, 인핸스먼트 레이어에서는 8x8 블록에 상당한다. 여기서, 씨닝률 2:1이란, 베이스 레이어 해상도에서는 8x8 블록 단위로, 인핸스먼트 레이어 해상도에서는 16x16 블록 단위로, 베이스 레이어의 인트라 예측 모드가 저장되어 있게 된다.
이상과 같은 처리를 행함으로써, 인핸스먼트 레이어에 있어서 인트라 예측 모드 부호화를 행하기 위한, 베이스 레이어의 인트라 예측 모드 정보를 저장하기 위해 필요한 기억 용량의 증대를 억제할 수 있다.
또한, 본 기술에서는, 베이스 레이어의 화상 압축 정보는, AVC에 기초하는 것이어도 된다.
이어서, 이상과 같은 본 기술에 대해서, 구체적인 장치에 대한 적용예에 대하여 설명한다.
<6. 제5 실시 형태>
<스케일러블 부호화 장치>
도 81은, 스케일러블 부호화 장치의 주된 구성예를 도시하는 블록도이다.
도 81에 나타나는 스케일러블 부호화 장치(1100)는, 화상 데이터를 스케일러블 부호화하는 화상 정보 처리 장치이며, 베이스 레이어와 인핸스먼트 레이어로 계층화된 화상 데이터의 각 레이어를 부호화한다. 이 계층화의 기준으로서 사용하는 파라미터(스케일러빌리티를 갖게 하는 파라미터)는 임의이다. 스케일러블 부호화 장치(1100)는, 공통 정보 생성부(1101), 부호화 제어부(1102), 베이스 레이어 화상 부호화부(1103), 인트라 예측 모드 제공부(1104), 및 인핸스먼트 레이어 화상 부호화부(1105)를 갖는다.
공통 정보 생성부(1101)는, 예를 들어 NAL 유닛에 저장하는 화상 데이터의 부호화에 관한 정보를 취득한다. 또한, 공통 정보 생성부(1101)는 필요에 따라, 베이스 레이어 화상 부호화부(1103), 인트라 예측 모드 제공부(1104), 및 인핸스먼트 레이어 화상 부호화부(1105) 등으로부터 필요한 정보를 취득한다. 공통 정보 생성부(1101)는, 그들 정보를 기초로 전체 레이어에 관한 정보인 공통 정보를 생성한다. 공통 정보에는, 예를 들어, 비디오 파라미터 세트 등이 포함된다. 공통 정보 생성부(1101)는, 생성한 공통 정보를, 예를 들어 NAL 유닛으로서, 스케일러블 부호화 장치(1100)의 외부로 출력한다. 또한, 공통 정보 생성부(1101)는, 생성한 공통 정보를, 부호화 제어부(1102)에도 공급한다. 또한, 공통 정보 생성부(1101)는 필요에 따라, 생성한 공통 정보의 일부 또는 전부를 베이스 레이어 화상 부호화부(1103) 내지 인핸스먼트 레이어 화상 부호화부(1105)에도 공급한다.
부호화 제어부(1102)는, 공통 정보 생성부(1101)로부터 공급되는 공통 정보에 기초하여, 베이스 레이어 화상 부호화부(1103) 내지 인핸스먼트 레이어 화상 부호화부(1105)를 제어함으로써, 각 레이어의 부호화를 제어한다.
베이스 레이어 화상 부호화부(1103)는, 베이스 레이어의 화상 정보(베이스 레이어 화상 정보)를 취득한다. 베이스 레이어 화상 부호화부(1103)는, 다른 레이어의 정보를 이용하지 않고, 그 베이스 레이어 화상 정보를 부호화하고, 베이스 레이어의 부호화 데이터(베이스 레이어 부호화 데이터)를 생성하여 출력한다. 또한, 베이스 레이어 화상 부호화부(1103)는, 부호화 시에 행하여진 인트라 예측의 인트라 예측 모드를, 베이스 레이어의 인트라 예측 모드로서, 인트라 예측 모드 제공부(1104)에 공급한다.
인트라 예측 모드 제공부(1104)는, 베이스 레이어 화상 부호화부(1103)에서의 인트라 예측에서 얻어진 인트라 예측 모드를, 인핸스먼트 레이어 화상 부호화부(1105)에서의 인트라 예측에 제공하는 처리를 행한다. 그때, 인트라 예측 모드 제공부(1104)는, 베이스 레이어 화상 부호화부(1103)로부터 취득한 베이스 레이어의 인트라 예측 모드를, 소정의 씨닝률로 씨닝하여 기억한다. 그리고, 인핸스먼트 레이어의 부호화가 행하여질 때에, 인트라 예측 모드 제공부(1104)는, 기억하고 있는 베이스 레이어의 인트라 예측 모드를, 인핸스먼트 레이어 화상 부호화부(1105)에 공급한다. 또한, 인트라 예측 모드 제공부(1104)는, 이 인트라 예측 모드의 씨닝률을 설정할 수 있도록 해도 된다.
인핸스먼트 레이어 화상 부호화부(1105)는, 인핸스먼트 레이어의 화상 정보(인핸스먼트 레이어 화상 정보)를 취득한다. 인핸스먼트 레이어 화상 부호화부(1105)는, 그 인핸스먼트 레이어 화상 정보를 부호화한다. 또한, 인핸스먼트 레이어 화상 부호화부(1105)는, 인트라 예측 모드 제공부(1104)로부터, 베이스 레이어의 인트라 예측 모드를 취득하고, 그 베이스 레이어의 인트라 예측 모드를 사용하여, 인핸스먼트 레이어의 인트라 예측을 행하여, 인핸스먼트 레이어의 화상을 부호화한다. 그리고, 인핸스먼트 레이어 화상 부호화부(1105)는, 얻어진 부호화 데이터(인핸스먼트 레이어 부호화 데이터)를 출력한다. 이렇게 베이스 레이어의 인트라 예측 모드를 사용하여 인핸스먼트 레이어의 인트라 예측을 행하도록 함으로써, 복호측에서도, 마찬가지로, 베이스 레이어의 인트라 예측 모드를 사용하여 인트라 예측을 행할 수 있다. 즉, 인트라 예측 모드에 관한 정보는, 베이스 레이어의 정보를 전송하면 되며, 인핸스먼트 레이어의 정보를 전송할 필요가 없어진다. 따라서, 그만큼, 부호화 효율의 증대를 억제할 수 있다. 그리고, 베이스 레이어의 인트라 예측 모드를, 인핸스먼트 레이어의 인트라 예측에 이용하기 위해 기억할 때에, 상술한 바와 같이, 씨닝 처리를 행함으로써, 그것을 위해 필요한 기억 용량을 저감시킬 수 있어, 부호화·복호의 부하를 저감시킬 수 있다.
<베이스 레이어 화상 부호화부>
도 82는, 도 81의 베이스 레이어 화상 부호화부(1103)의 주된 구성예를 도시하는 블록도이다. 도 82에 도시된 바와 같이, 베이스 레이어 화상 부호화부(1103)는, A/D 변환부(1111), 화면 재배열 버퍼(1112), 연산부(1113), 직교 변환부(1114), 양자화부(1115), 가역 부호화부(1116), 축적 버퍼(1117), 역양자화부(1118), 및 역직교 변환부(1119)를 갖는다. 또한, 베이스 레이어 화상 부호화부(1103)는, 연산부(1120), 루프 필터(1121), 프레임 메모리(1122), 선택부(1123), 인트라 예측부(1124), 움직임 예측·보상부(1125), 예측 화상 선택부(1126), 및 레이트 제어부(1127)를 갖는다.
A/D 변환부(1111)는, 입력된 화상 데이터(베이스 레이어 화상 정보)를 A/D 변환하고, 변환 후의 화상 데이터(디지털 데이터)를 화면 재배열 버퍼(1112)에 공급하여 기억시킨다. 화면 재배열 버퍼(1112)는, 기억한 표시의 순서의 프레임 화상을, GOP(Group Of Picture)에 따라, 부호화를 위한 프레임의 순서대로 재배열하고, 프레임의 순서를 재배열한 화상을, 연산부(1113)에 공급한다. 또한, 화면 재배열 버퍼(1112)는, 프레임의 순서를 재배열한 화상을, 인트라 예측부(1124) 및 움직임 예측·보상부(1125)에도 공급한다.
연산부(1113)는, 화면 재배열 버퍼(1112)로부터 판독된 화상으로부터, 예측 화상 선택부(1126)를 통해 인트라 예측부(1124) 또는 움직임 예측·보상부(1125)로부터 공급되는 예측 화상을 감산하여, 그 차분 정보를 직교 변환부(1114)에 출력한다. 예를 들어, 인트라 부호화가 행하여지는 화상의 경우, 연산부(1113)는, 화면 재배열 버퍼(1112)로부터 판독된 화상으로부터, 인트라 예측부(1124)로부터 공급되는 예측 화상을 감산한다. 또한, 예를 들어, 인터 부호화가 행하여지는 화상의 경우, 연산부(1113)는, 화면 재배열 버퍼(1112)로부터 판독된 화상으로부터, 움직임 예측·보상부(1125)로부터 공급되는 예측 화상을 감산한다.
직교 변환부(1114)는, 연산부(1113)로부터 공급되는 차분 정보에 대하여 이산 코사인 변환이나 카루넨 루베 변환 등의 직교 변환을 실시한다. 직교 변환부(1114)는, 그 변환 계수를 양자화부(1115)에 공급한다.
양자화부(1115)는, 직교 변환부(1114)로부터 공급되는 변환 계수를 양자화한다. 양자화부(1115)는, 레이트 제어부(1127)로부터 공급되는 부호량의 목표 값에 관한 정보에 기초하여 양자화 파라미터를 설정하고, 그 양자화를 행한다. 양자화부(1115)는, 양자화된 변환 계수를 가역 부호화부(1116)에 공급한다.
가역 부호화부(1116)는, 양자화부(1115)에서 양자화된 변환 계수를 임의의 부호화 방식으로 부호화한다. 계수 데이터는, 레이트 제어부(1127)의 제어 하에서 양자화되어 있으므로, 이 부호량은, 레이트 제어부(1127)가 설정한 목표 값이 된다(또는 목표 값에 근사함).
또한, 가역 부호화부(1116)는, 인트라 예측의 모드를 나타내는 정보 등을 인트라 예측부(1124)로부터 취득하고, 인터 예측의 모드를 나타내는 정보나 차분 움직임 벡터 정보 등을 움직임 예측·보상부(1125)로부터 취득한다. 또한, 가역 부호화부(1116)는, 시퀀스 파라미터 세트(SPS), 및 픽처 파라미터 세트(PPS) 등을 포함하는 베이스 레이어의 NAL 유닛을 적절히 생성한다.
가역 부호화부(1116)는, 이들 각종 정보를 임의의 부호화 방식으로 부호화하여, 부호화 데이터(부호화 스트림이라고도 함)의 일부로 한다(다중화함). 가역 부호화부(1116)는, 부호화하여 얻어진 부호화 데이터를 축적 버퍼(1117)에 공급하여 축적시킨다.
가역 부호화부(1116)의 부호화 방식으로서는, 예를 들어, 가변장 부호화 또는 산술 부호화 등을 들 수 있다. 가변장 부호화로서는, 예를 들어, H.264/AVC 방식으로 정해져 있는 CAVLC(Context-Adaptive Variable Length Coding) 등을 들 수 있다. 산술 부호화로서는, 예를 들어, CABAC(Context-Adaptive Binary Arithmetic Coding) 등을 들 수 있다.
축적 버퍼(1117)는, 가역 부호화부(1116)로부터 공급된 부호화 데이터(베이스 레이어 부호화 데이터)를 일시적으로 유지한다. 축적 버퍼(1117)는, 소정의 타이밍에 있어서, 유지하고 있는 베이스 레이어 부호화 데이터를, 예를 들어, 후단의 도시하지 않은 기록 장치(기록 매체)나 전송로 등에 출력한다. 즉, 축적 버퍼(1117)는, 부호화 데이터를 전송하는 전송부이기도 하다.
또한, 양자화부(1115)에서 양자화된 변환 계수는, 역양자화부(1118)에도 공급된다. 역양자화부(1118)는, 그 양자화된 변환 계수를, 양자화부(1115)에 의한 양자화에 대응하는 방법으로 역양자화한다. 역양자화부(1118)는, 얻어진 변환 계수를 역직교 변환부(1119)에 공급한다.
역직교 변환부(1119)는, 역양자화부(1118)로부터 공급된 변환 계수를, 직교 변환부(1114)에 의한 직교 변환 처리에 대응하는 방법으로 역직교 변환한다. 역직교 변환된 출력(복원된 차분 정보)은 연산부(1120)에 공급된다.
연산부(1120)는, 역직교 변환부(1119)로부터 공급된 역직교 변환 결과인, 복원된 차분 정보에, 예측 화상 선택부(1126)를 통해 인트라 예측부(1124) 또는 움직임 예측·보상부(1125)로부터의 예측 화상을 가산하여, 국부적으로 복호된 화상(복호 화상)을 얻는다. 그 복호 화상은, 루프 필터(1121) 또는 프레임 메모리(1122)에 공급된다.
루프 필터(1121)는, 디블록 필터나 적응 루프 필터 등을 포함하고, 연산부(1120)로부터 공급되는 재구성 화상에 대하여 적절히 필터 처리를 행한다. 예를 들어, 루프 필터(1121)는, 재구성 화상에 대하여 디블록 필터 처리를 행함으로써 재구성 화상의 블록 왜곡을 제거한다. 또한, 예를 들어, 루프 필터(1121)는, 그 디블록 필터 처리 결과(블록 왜곡의 제거가 행하여진 재구성 화상)에 대하여 위너 필터(Wiener Filter)를 사용하여 루프 필터 처리를 행함으로써 화질 개선을 행한다. 루프 필터(1121)는, 필터 처리 결과(이하, 복호 화상이라고 함)를 프레임 메모리(1122)에 공급한다.
또한, 루프 필터(1121)가, 재구성 화상에 대하여 또한, 다른 임의의 필터 처리를 행하도록 해도 된다. 또한, 루프 필터(1121)는 필요에 따라, 필터 처리에 사용한 필터 계수 등의 정보를 가역 부호화부(1116)에 공급하여, 그것을 부호화시키도록 할 수도 있다.
프레임 메모리(1122)는, 연산부(1120)로부터 공급되는 재구성 화상과, 루프 필터(1121)로부터 공급되는 복호 화상을 각각 기억한다. 프레임 메모리(1122)는, 소정의 타이밍에 있어서, 또는, 인트라 예측부(1124) 등의 외부로부터의 요구에 기초하여, 기억하고 있는 재구성 화상을, 선택부(1123)를 통해 인트라 예측부(1124)에 공급한다. 또한, 프레임 메모리(1122)는, 소정의 타이밍에 있어서, 또는, 움직임 예측·보상부(1125) 등의 외부로부터의 요구에 기초하여, 기억하고 있는 복호 화상을, 선택부(1123)를 통해 움직임 예측·보상부(1125)에 공급한다.
프레임 메모리(1122)는, 공급되는 복호 화상을 기억하고, 소정의 타이밍에 있어서, 기억하고 있는 복호 화상을 참조 화상으로서 선택부(1123)에 공급한다.
선택부(1123)는, 프레임 메모리(1122)로부터 공급되는 참조 화상의 공급처를 선택한다. 예를 들어, 인트라 예측의 경우, 선택부(1123)는, 프레임 메모리(1122)로부터 공급되는 참조 화상(커런트 픽처 내의 화소값)을 움직임 예측·보상부(1125)에 공급한다. 또한, 예를 들어, 인터 예측의 경우, 선택부(1123)는, 프레임 메모리(1122)로부터 공급되는 참조 화상을 움직임 예측·보상부(1125)에 공급한다.
인트라 예측부(1124)는, 선택부(1123)를 통해 프레임 메모리(1122)로부터 공급되는 참조 화상인 커런트 픽처 내의 화소값을 사용하여 예측 화상을 생성하는 인트라 예측(화면 내 예측)을 행한다. 인트라 예측부(1124)는, 미리 준비된 복수의 인트라 예측 모드에서 이 인트라 예측을 행한다.
인트라 예측부(1124)는, 후보가 되는 모든 인트라 예측 모드에서 예측 화상을 생성하고, 화면 재배열 버퍼(1112)로부터 공급되는 입력 화상을 사용하여 각 예측 화상의 비용 함수값을 평가하여, 최적의 모드를 선택한다. 인트라 예측부(1124)는, 최적의 인트라 예측 모드를 선택하면, 그 최적의 모드에서 생성된 예측 화상을, 예측 화상 선택부(1126)에 공급한다.
또한, 상술한 바와 같이, 인트라 예측부(1124)는, 채용된 인트라 예측 모드를 나타내는 인트라 예측 모드 정보 등을, 적절히 가역 부호화부(1116)에 공급하여 부호화시킨다.
움직임 예측·보상부(1125)는, 화면 재배열 버퍼(1112)로부터 공급되는 입력 화상과, 선택부(1123)를 통해 프레임 메모리(1122)로부터 공급되는 참조 화상을 사용하여 움직임 예측(인터 예측)을 행한다. 움직임 예측·보상부(1125)는, 검출된 움직임 벡터에 따라서 움직임 보상 처리를 행하여, 예측 화상(인터 예측 화상 정보)을 생성한다. 움직임 예측·보상부(1125)는, 미리 준비된 복수의 인터 예측 모드에서 이러한 인터 예측을 행한다.
움직임 예측·보상부(1125)는, 후보가 되는 모든 인터 예측 모드에서 예측 화상을 생성한다. 움직임 예측·보상부(1125)는, 화면 재배열 버퍼(1112)로부터 공급되는 입력 화상과, 생성한 차분 움직임 벡터의 정보 등을 사용하여, 각 예측 화상의 비용 함수값을 평가하여, 최적의 모드를 선택한다. 움직임 예측·보상부(1125)는, 최적의 인터 예측 모드를 선택하면, 그 최적의 모드에서 생성된 예측 화상을, 예측 화상 선택부(1126)에 공급한다.
움직임 예측·보상부(1125)는, 채용된 인터 예측 모드를 나타내는 정보나, 부호화 데이터를 복호할 때에 그 인터 예측 모드에서 처리를 행하기 위해 필요한 정보 등을 가역 부호화부(1116)에 공급하여 부호화시킨다. 필요한 정보로서는, 예를 들어, 생성된 차분 움직임 벡터의 정보나, 예측 움직임 벡터 정보로서, 예측 움직임 벡터의 인덱스를 나타내는 플래그 등이 있다.
예측 화상 선택부(1126)는, 연산부(1113)나 연산부(1120)에 공급하는 예측 화상의 공급원을 선택한다. 예를 들어, 인트라 부호화의 경우, 예측 화상 선택부(1126)는, 예측 화상의 공급원으로서 인트라 예측부(1124)를 선택하고, 그 인트라 예측부(1124)로부터 공급되는 예측 화상을 연산부(1113)나 연산부(1120)에 공급한다. 또한, 예를 들어, 인터 부호화의 경우, 예측 화상 선택부(1126)는, 예측 화상의 공급원으로서 움직임 예측·보상부(1125)를 선택하고, 그 움직임 예측·보상부(1125)로부터 공급되는 예측 화상을 연산부(1113)나 연산부(1120)에 공급한다.
레이트 제어부(1127)는, 축적 버퍼(1117)에 축적된 부호화 데이터의 부호량에 기초하여, 오버플로우 또는 언더플로우가 발생하지 않도록, 양자화부(1115)의 양자화 동작의 레이트를 제어한다.
또한, 인트라 예측부(1124)는, 채용된 인트라 예측 모드를, 베이스 레이어의 인트라 예측 모드로서, 인트라 예측 모드 제공부(1104)에 공급한다. 또한, 가역 부호화부(1116)는, 베이스 레이어의 해상도를 나타내는 정보를, 인트라 예측 모드 제공부(1104)에 공급한다.
<인핸스먼트 레이어 화상 부호화부>
도 83은, 도 81의 인핸스먼트 레이어 화상 부호화부(1105)의 주된 구성예를 도시하는 블록도이다. 도 83에 도시된 바와 같이, 인핸스먼트 레이어 화상 부호화부(1105)는, 도 82의 베이스 레이어 화상 부호화부(1103)와 기본적으로 마찬가지의 구성을 갖는다.
단, 인핸스먼트 레이어 화상 부호화부(1105)의 각 부는, 베이스 레이어가 아니라, 인핸스먼트 레이어 화상 정보의 부호화에 관한 처리를 행한다. 즉, 인핸스먼트 레이어 화상 부호화부(1105)의 A/D 변환부(1111)는, 인핸스먼트 레이어 화상 정보를 A/D 변환하고, 인핸스먼트 레이어 화상 부호화부(1105)의 축적 버퍼(1117)는, 인핸스먼트 레이어 부호화 데이터를, 예를 들어, 후단의 도시하지 않은 기록 장치(기록 매체)나 전송로 등에 출력한다.
또한, 인핸스먼트 레이어 화상 부호화부(1105)는, 인트라 예측부(1124) 대신에 인트라 예측부(1134)를 갖는다.
인트라 예측부(1134)는, 인트라 예측 모드 제공부(1104)에 기억되어 있는 베이스 레이어의 인트라 예측 모드(의 대표치) 중, 커런트 블록에 대응하는 인트라 예측 모드를 취득하고(판독하고), 그 인트라 예측 모드를 사용하여, 인핸스먼트 레이어의 인트라 예측을 행하여 예측 화상을 생성한다. 인트라 예측은, 인트라 예측부(1124)의 경우와 마찬가지로 행하여진다.
또한, 인트라 예측부(1124)의 경우와 마찬가지로, 인트라 예측부(1134)는, 채용된 인트라 예측 모드를 나타내는 인핸스먼트 레이어의 인트라 예측 모드 정보 등을, 적절히 가역 부호화부(1116)에 공급하여 부호화시킨다.
또한, 인핸스먼트 레이어 화상 부호화부(1105)의 가역 부호화부(1116)는, 인핸스먼트 레이어의 해상도를 나타내는 정보를, 인트라 예측 모드 제공부(1104)에 공급한다. 또한, 이 가역 부호화부(1116)는, 인트라 예측 모드 제공부(1104)로부터 공급되는, 베이스 레이어의 인트라 예측 모드의 씨닝률을 나타내는 정보를 취득하고, 그것을 부호화하여, 예를 들어, 인핸스먼트 레이어의 시퀀스 파라미터 세트(SPS(Sequence Parameter Set)), 픽처 파라미터 세트(PPS(Picture Parameter Set)), 또는 슬라이스 헤더(SliceHeader) 등에 있어서 복호측에 전송시킨다.
또한, 이 씨닝률을 나타내는 정보는, 예를 들어 비디오 파라미터 세트(VPS(Video Parameter Set))에 있어서 전송시키도록 해도 된다. 그 경우, 이 씨닝률을 나타내는 정보는, 공통 정보 생성부(1101)에 공급된다.
<인트라 예측 모드 제공부>
도 84는, 도 81의 인트라 예측 모드 제공부(1104)의 주된 구성예를 도시하는 블록도이다.
도 84에 도시된 바와 같이, 인트라 예측 모드 제공부(1104)는, 씨닝률 설정부(1151), 씨닝 처리부(1152), 및 인트라 예측 모드 버퍼(1153)를 갖는다.
씨닝률 설정부(1151)는, 베이스 레이어의 인트라 예측 모드의 씨닝률을 설정한다. 이 설정 방법은 임의이다. 예를 들어, 씨닝률 설정부(1151)가 유저 등의 외부의 지시에 기초하여 씨닝률을 설정하도록 해도 된다. 그때, 씨닝률은, 베이스 레이어에서의 비율로 설정되도록 해도 된다.
또한, 예를 들어, 씨닝률 설정부(1151)는, 베이스 레이어 화상 부호화부(1103)의 가역 부호화부(1116)로부터 베이스 레이어 해상도를 취득하고, 인핸스먼트 레이어 화상 부호화부(1105)의 가역 부호화부(1116)로부터 인핸스먼트 레이어 해상도를 취득하도록 해도 된다. 예를 들어, 씨닝률 설정부(1151)가 그것들의 해상도를 나타내는 정보를, 모니터 등에 표시하거나, 스피커 등으로부터 음성 출력하거나 함으로써, 유저에게 제시하도록 해도 된다. 그 경우, 유저는, 각 레이어의 해상도를 참고로 하면서 씨닝률을 설정할 수 있다.
또한, 예를 들어, 유저가, 인핸스먼트 레이어에서의 인트라 예측 모드의 블록 사이즈를 지정하고, 씨닝률 설정부(1151)가 취득한 각 레이어의 해상도에 기초하여, 그 지정된 정보를, 씨닝률로 환산하도록 해도 된다. 이와 같이 함으로써, 유저에게 있어서 이해하기 쉬운 정보로 씨닝률의 설정을 행하도록 할 수 있어, 씨닝률의 설정을 보다 용이하게 할 수 있다.
씨닝률 설정부(1151)는, 이렇게 설정한 씨닝률을 나타내는 정보를 씨닝 처리부(1152)에 공급한다. 또한, 씨닝률 설정부(1151)는, 이렇게 설정한 씨닝률을 나타내는 정보를, 인핸스먼트 레이어 화상 부호화부(1105)의 가역 부호화부(1116)(또는 공통 정보 생성부(1101))에도 공급하여, 복호측에 전송시킨다.
씨닝 처리부(1152)는, 베이스 레이어 화상 부호화부(1103)의 인트라 예측부(1124)로부터 공급되는 베이스 레이어의 인트라 예측 모드를 취득하고, 씨닝률 설정부(1151)에 의해 설정된 씨닝률로, 그 인트라 예측 모드를 씨닝한다. 예를 들어, 상술한 바와 같이, 소정의 에리어마다 인트라 예측 모드의 씨닝 처리를 행하고, 각 에리어의 대표(인트라 예측 모드)를 선택한다. 이렇게 씨닝되고 남은(선택된) 베이스 레이어의 인트라 예측 모드는, 인트라 예측 모드 버퍼(1153)에 공급된다.
인트라 예측 모드 버퍼(1153)는, 씨닝 처리부(1152)로부터 공급된, 선택된 베이스 레이어 인트라 예측 모드를 기억한다. 인트라 예측 모드 버퍼(1153)는, 기억하고 있는, 선택된 베이스 레이어 인트라 예측 모드 중에서 인핸스먼트 레이어 화상 부호화부(1105)의 인트라 예측부(1134)에서 행하여지는 인핸스먼트 레이어의 인트라 예측의 커런트 블록에 대응하는 에리어의 인트라 예측 모드를, 인트라 예측부(1134)에 공급한다.
상술한 바와 같이, 인트라 예측부(1134)는, 인트라 예측 모드 버퍼(1153)로부터 판독한 베이스 레이어의 인트라 예측 모드(선택된 베이스 레이어 인트라 예측 모드)를 사용하여, 인핸스먼트 레이어의 커런트 블록의 인트라 예측을 행하고, 예측 화상을 생성한다.
이상과 같이, 스케일러블 부호화 장치(1100)는, 인핸스먼트 레이어의 부호화에서의 인트라 예측에 있어서, 베이스 레이어의 인트라 예측 모드를 사용할 수 있으므로, 부호화 효율의 저감을 억제할 수 있다. 이에 의해, 스케일러블 부호화 장치(1100)는, 부호화·복호에 의한 화질의 저감을 억제할 수 있다. 또한, 그 베이스 레이어의 인트라 예측 모드를 인핸스먼트 레이어에 제공할 때에, 그 인트라 예측 모드를 소정의 씨닝률로 씨닝하므로, 스케일러블 부호화 장치(1100)는, 부호화·복호에 필요한 기억 용량의 증대를 억제할 수 있다.
<공통 정보 생성 처리의 흐름>
이어서, 이상과 같은 스케일러블 부호화 장치(1100)에 의해 실행되는 각 처리의 흐름에 대하여 설명한다. 최초로, 도 85의 흐름도를 참조하여, 공통 정보 생성 처리의 흐름의 예를 설명한다.
공통 정보 생성 처리가 개시되면, 인트라 예측 모드 제공부(1104)의 씨닝률 설정부(1151)는, 스텝 S4101에서, 베이스 레이어 인트라 예측 모드의 씨닝률을 설정한다.
스텝 S4102에서, 공통 정보 생성부(1101)는, 스텝 S4101에서 설정된 씨닝률을 나타내는 정보를 포함하는 비디오 파라미터 세트를 생성한다.
스텝 S4103에서, 공통 정보 생성부(1101)는, 스텝 S4102에서 생성된 비디오 파라미터 세트를 공통 정보로서 복호측에 전송(공급)한다. 스텝 S4103의 처리가 종료되면, 공통 정보 생성 처리가 종료된다.
<부호화 처리의 흐름>
이어서, 도 86의 흐름도를 참조하여, 부호화 처리의 흐름의 예를 설명한다. 스케일러블 부호화 장치(1100)는, 픽처마다 이 부호화 처리를 실행한다.
부호화 처리가 개시되면, 스텝 S4121에서, 스케일러블 부호화 장치(1100)의 부호화 제어부(1102)는, 최초의 레이어를 처리 대상으로 한다.
스텝 S4122에서, 부호화 제어부(1102)는, 처리 대상인 커런트 레이어가 베이스 레이어인지 여부를 판정한다. 커런트 레이어가 베이스 레이어라고 판정된 경우, 처리는 스텝 S4123으로 진행된다.
스텝 S4123에서, 베이스 레이어 화상 부호화부(1103) 및 인트라 예측 모드 제공부(1104)는, 베이스 레이어 부호화 처리를 행한다. 스텝 S4123의 처리가 종료되면, 처리는 스텝 S4126으로 진행된다.
또한, 스텝 S4122에서, 커런트 레이어가 인핸스먼트 레이어라고 판정된 경우, 처리는 스텝 S4124로 진행된다. 스텝 S4124에서, 부호화 제어부(1102)는 커런트 레이어에 대응하는(즉, 참조처로 하는) 베이스 레이어를 결정한다.
스텝 S4125에서, 인핸스먼트 레이어 화상 부호화부(1105)는, 인핸스먼트 레이어 부호화 처리를 행한다. 스텝 S4125의 처리가 종료되면, 처리는 스텝 S4126으로 진행된다.
스텝 S4126에서, 부호화 제어부(1102)는, 모든 레이어를 처리했는지 여부를 판정한다. 미처리의 레이어가 존재한다고 판정된 경우, 처리는 스텝 S4127로 진행된다.
스텝 S4127에서, 부호화 제어부(1102)는, 다음의 미처리의 레이어를 처리 대상(커런트 레이어)으로 한다. 스텝 S4127의 처리가 종료되면, 처리는 스텝 S4122로 복귀된다. 스텝 S4122 내지 스텝 S4127의 처리가 반복 실행되어, 각 레이어가 부호화된다.
그리고, 스텝 S4126에서, 모든 레이어가 처리되었다고 판정된 경우, 부호화 처리가 종료된다.
<베이스 레이어 부호화 처리의 흐름>
이어서, 도 87의 흐름도를 참조하여, 도 86의 스텝 S4123에서 실행되는 베이스 레이어 부호화 처리의 흐름의 예를 설명한다.
스텝 S4141에서, 베이스 레이어 화상 부호화부(1103)의 A/D 변환부(1111)는, 입력된 베이스 레이어의 화상 정보(화상 데이터)를 A/D 변환한다. 스텝 S4142에서, 화면 재배열 버퍼(1112)는, A/D 변환된 베이스 레이어의 화상 정보(디지털 데이터)를 기억하고, 각 픽처를, 표시하는 순서에서 부호화하는 순서로 재배열한다.
스텝 S4143에서, 인트라 예측부(1124)는, 인트라 예측 모드의 인트라 예측 처리를 행한다. 스텝 S4144에서, 움직임 예측·보상부(1125)는, 인터 예측 모드에서의 움직임 예측이나 움직임 보상을 행하는 움직임 예측·보상 처리를 행한다. 스텝 S4145에서, 예측 화상 선택부(1126)는, 인트라 예측부(1124) 및 움직임 예측·보상부(1125)로부터 출력된 각 비용 함수값에 기초하여, 최적의 모드를 결정한다. 즉, 예측 화상 선택부(1126)는, 인트라 예측부(1124)에 의해 생성된 예측 화상과, 움직임 예측·보상부(1125)에 의해 생성된 예측 화상 중 어느 한쪽을 선택한다. 스텝 S4146에서, 연산부(1113)는, 스텝 S4142의 처리에 의해 재배열된 화상과, 스텝 S4145의 처리에 의해 선택된 예측 화상과의 차분을 연산한다. 차분 데이터는, 원래의 화상 데이터에 비해 데이터량이 저감된다. 따라서, 화상을 그대로 부호화하는 경우에 비해 데이터량을 압축할 수 있다.
스텝 S4147에서, 직교 변환부(1114)는, 스텝 S4146의 처리에 의해 생성된 차분 정보에 대한 직교 변환 처리를 행한다. 스텝 S4148에서, 양자화부(1115)는, 레이트 제어부(1127)에 의해 산출된 양자화 파라미터를 사용하여, 스텝 S4147의 처리에 의해 얻어진 직교 변환 계수를 양자화한다.
스텝 S4148의 처리에 의해 양자화된 차분 정보는, 다음과 같이 하여 국부적으로 복호된다. 즉, 스텝 S4149에서, 역양자화부(1118)는, 스텝 S4148의 처리에 의해 생성된 양자화된 계수(양자화 계수라고도 함)를 양자화부(1115)의 특성에 대응하는 특성으로 역양자화한다. 스텝 S4150에서, 역직교 변환부(1119)는, 스텝 S4147의 처리에 의해 얻어진 직교 변환 계수를 역직교 변환한다. 스텝 S4151에서, 연산부(1120)는, 예측 화상을 국부적으로 복호된 차분 정보에 가산하여, 국부적으로 복호된 화상(연산부(1113)에 대한 입력에 대응하는 화상)을 생성한다.
스텝 S4152에서 루프 필터(1121)는, 스텝 S4151의 처리에 의해 생성된 화상을 필터링한다. 이에 의해 블록 왜곡 등이 제거된다. 스텝 S4153에서, 프레임 메모리(1122)는, 스텝 S4152의 처리에 의해 블록 왜곡의 제거 등이 행하여진 화상을 기억한다. 또한, 프레임 메모리(1122)에는, 루프 필터(1121)에 의해 필터 처리되어 있지 않은 화상도 연산부(1120)로부터 공급되어 기억된다. 이 프레임 메모리(1122)에 기억된 화상은, 스텝 S4143의 처리나 스텝 S4144의 처리에 이용된다.
스텝 S4154에서, 인트라 예측 모드 제공부(1104)의 씨닝 처리부(1152)는, 베이스 레이어의 인트라 예측 모드를, 도 85의 스텝 S4101에서 설정된 씨닝률로 씨닝한다.
스텝 S4155에서, 인트라 예측 모드 제공부(1104)의 인트라 예측 모드 버퍼(1153)는, 스텝 S4154의 처리에 의해 씨닝되어 선택된 베이스 레이어의 인트라 예측 모드를 기억한다.
스텝 S4156에서, 베이스 레이어 화상 부호화부(1103)의 가역 부호화부(1116)는, 스텝 S4148의 처리에 의해 양자화된 계수를 부호화한다. 즉, 차분 화상에 대응하는 데이터에 대하여 가변장 부호화나 산술 부호화 등의 가역 부호화가 행하여진다.
또한, 이때, 가역 부호화부(1116)는, 스텝 S4145의 처리에 의해 선택된 예측 화상의 예측 모드에 관한 정보를 부호화하여, 차분 화상을 부호화하여 얻어지는 부호화 데이터에 부가한다. 즉, 가역 부호화부(1116)는, 인트라 예측부(1124)로부터 공급되는 최적 인트라 예측 모드 정보, 또는, 움직임 예측·보상부(1125)로부터 공급되는 최적 인터 예측 모드에 따른 정보 등도 부호화하여, 부호화 데이터에 부가한다.
스텝 S4157에서 축적 버퍼(1117)는, 스텝 S4156의 처리에 의해 얻어진 베이스 레이어 부호화 데이터를 축적한다. 축적 버퍼(1117)에 축적된 베이스 레이어 부호화 데이터는, 적절히 판독되어, 전송로나 기록 매체를 통해 복호측에 전송된다.
스텝 S4158에서 레이트 제어부(1127)는, 스텝 S4157에서 축적 버퍼(1117)에 축적된 부호화 데이터의 부호량(발생 부호량)에 기초하여, 오버플로우 또는 언더플로우가 발생하지 않도록, 양자화부(1115)의 양자화 동작의 레이트를 제어한다.
스텝 S4158의 처리가 종료되면, 베이스 레이어 부호화 처리가 종료되고, 처리는 도 86으로 복귀된다. 베이스 레이어 부호화 처리는, 예를 들어, 픽처 단위로 실행된다. 즉, 커런트 레이어의 각 픽처에 대하여 베이스 레이어 부호화 처리가 실행된다. 단, 베이스 레이어 부호화 처리 내의 각 처리는, 각각의 처리 단위마다 행해진다.
<인핸스먼트 레이어 부호화 처리의 흐름>
이어서, 도 88의 흐름도를 참조하여, 도 86의 스텝 S4125에서 실행되는 인핸스먼트 레이어 부호화 처리의 흐름의 예를 설명한다.
인핸스먼트 레이어 부호화 처리의 스텝 S4171 및 스텝 S4172, 및 스텝 S4175 내지 스텝 S4187의 각 처리는, 도 87의 베이스 레이어 부호화 처리의 스텝 S4141 및 스텝 S4142, 스텝 S4144 내지 스텝 S4153, 및 스텝 S4156 내지 스텝 S4158의 각 처리와 마찬가지로 실행된다. 단, 인핸스먼트 레이어 부호화 처리의 각 처리는, 인핸스먼트 레이어 화상 부호화부(1105)의 각 처리부에 의해, 인핸스먼트 레이어 화상 정보에 대하여 행하여진다.
또한, 스텝 S4173에서, 인핸스먼트 레이어 화상 부호화부(1105)의 인트라 예측부(1134)는, 인트라 예측 모드 제공부(1104)의 인트라 예측 모드 버퍼(1153)로부터, 커런트 블록에 대응하는 베이스 레이어의 인트라 예측 모드(선택된 베이스 레이어의 인트라 예측 모드)를 취득한다.
스텝 S4174에서, 인트라 예측부(1134)는, 스텝 S4173에서 취득된, 선택된 베이스 레이어의 인트라 예측 모드를 사용하여, 인핸스먼트 레이어의 인트라 예측 처리를 행한다.
스텝 S4187의 처리가 종료되면, 인핸스먼트 레이어 부호화 처리가 종료되어, 처리는 도 86으로 복귀된다. 인핸스먼트 레이어 부호화 처리는, 예를 들어, 픽처 단위로 실행된다. 즉, 커런트 레이어의 각 픽처에 대하여 인핸스먼트 레이어 부호화 처리가 실행된다. 단, 인핸스먼트 레이어 부호화 처리 내의 각 처리는, 각각의 처리 단위마다 행해진다.
이상과 같이 각 처리를 실행함으로써, 스케일러블 부호화 장치(1100)는, 인핸스먼트 레이어의 부호화에서의 인트라 예측에 있어서, 베이스 레이어의 인트라 예측 모드를 사용할 수 있으므로, 부호화 효율의 저감을 억제할 수 있다. 이에 의해, 스케일러블 부호화 장치(1100)는, 부호화·복호에 의한 화질의 저감을 억제할 수 있다. 또한, 그 베이스 레이어의 인트라 예측 모드를 인핸스먼트 레이어에 제공할 때에 그 인트라 예측 모드를 소정의 씨닝률로 씨닝하므로, 스케일러블 부호화 장치(1100)는, 부호화·복호에 필요한 기억 용량의 증대를 억제할 수 있다.
<7. 제6 실시 형태>
<스케일러블 복호 장치>
이어서, 이상과 같이 스케일러블 부호화(계층 부호화)된 부호화 데이터(비트 스트림)의 복호에 대하여 설명한다. 도 89는, 도 81의 스케일러블 부호화 장치(1100)에 대응하는 스케일러블 복호 장치의 주된 구성예를 도시하는 블록도이다. 도 89에 나타내는 스케일러블 복호 장치(1200)는, 예를 들어 스케일러블 부호화 장치(1100)에 의해 화상 데이터가 스케일러블 부호화되어 얻어진 부호화 데이터를, 그 부호화 방법에 대응하는 방법으로 스케일러블 복호한다.
도 89에 도시된 바와 같이, 스케일러블 복호 장치(1200)는, 공통 정보 취득부(1201), 복호 제어부(1202), 베이스 레이어 화상 복호부(1203), 인트라 예측 모드 제공부(1204), 및 인핸스먼트 레이어 화상 복호부(1205)를 갖는다.
공통 정보 취득부(1201)는, 부호화측으로부터 전송되는 공통 정보(예를 들어, 비디오 파라미터 세트(VPS))를 취득한다. 공통 정보 취득부(1201)는, 취득한 공통 정보로부터 복호에 관한 정보를 추출하고, 그것을 복호 제어부(1202)에 공급한다. 또한, 공통 정보 취득부(1201)는, 공통 정보의 일부 또는 전부를, 베이스 레이어 화상 복호부(1203) 내지 인핸스먼트 레이어 화상 복호부(1205)에 적절히 공급한다.
예를 들어, 씨닝률을 나타내는 정보가 비디오 파라미터 세트(VPS)에 있어서 부호화측으로부터 전송되는 경우, 공통 정보 취득부(1201)는, 부호화측으로부터 전송된 비디오 파라미터 세트로부터 씨닝률을 나타내는 정보를 취득하여, 인트라 예측 모드 제공부(1204)에 공급한다.
복호 제어부(1202)는, 공통 정보 취득부(1201)로부터 공급된 복호에 관한 정보를 취득하고, 그 정보에 기초하여, 베이스 레이어 화상 복호부(1203) 내지 인핸스먼트 레이어 화상 복호부(1205)를 제어함으로써, 각 레이어의 복호를 제어한다.
베이스 레이어 화상 복호부(1203)는, 베이스 레이어 화상 부호화부(1103)에 대응하는 화상 복호부이며, 예를 들어 베이스 레이어 화상 부호화부(1103)에 의해 베이스 레이어 화상 정보가 부호화되어 얻어진 베이스 레이어 부호화 데이터를 취득한다. 베이스 레이어 화상 복호부(1203)는, 다른 레이어의 정보를 이용하지 않고, 그 베이스 레이어 부호화 데이터를 복호하여, 베이스 레이어 화상 정보를 재구축하여 출력한다. 이러한 베이스 레이어의 복호에 있어서, 베이스 레이어 화상 복호부(1203)는, 부호화 시에 인트라 예측이 행하여져 블록에 대해서, 부호화측으로부터 전송되는 인트라 예측 모드 정보에 의해 지정되는 인트라 예측 모드(즉, 부호화 시와 동일한 모드)에서 인트라 예측을 행하여, 예측 화상을 생성하고, 그 예측 화상을 사용해서 복호 화상을 생성한다. 또한, 베이스 레이어 화상 복호부(1203)는, 이러한 베이스 레이어의 인트라 예측의 인트라 예측 모드를, 인트라 예측 모드 제공부(1204)에 공급한다. 예를 들어, 베이스 레이어 화상 복호부(1203)가 부호화측으로부터 전송된 인트라 예측 모드 정보를, 인트라 예측 모드 제공부(1204)에 공급하도록 해도 된다.
인트라 예측 모드 제공부(1204)는, 베이스 레이어 화상 복호부(1203)로부터 공급되는 인트라 예측 모드를, 인핸스먼트 레이어 화상 복호부(1205)에서의 인트라 예측에 제공하는 처리를 행한다. 그때, 인트라 예측 모드 제공부(1204)는, 베이스 레이어 화상 복호부(1203)로부터 취득한 베이스 레이어의 인트라 예측 모드를, 소정의 씨닝률로 씨닝하여 기억한다. 그리고, 인핸스먼트 레이어의 부호화가 행하여질 때에, 인트라 예측 모드 제공부(1204)는, 기억하고 있는 베이스 레이어의 인트라 예측 모드를, 인핸스먼트 레이어 화상 복호부(1205)에 공급한다. 즉, 인핸스먼트 레이어 화상 복호부(1205)에는, 인트라 예측 모드 제공부(1204)에 의해 선택된 인트라 예측 모드가 제공된다.
인핸스먼트 레이어 화상 복호부(1205)는, 인핸스먼트 레이어 화상 부호화부(1105)에 대응하는 화상 복호부이며, 예를 들어 인핸스먼트 레이어 화상 부호화부(1105)에 의해 인핸스먼트 레이어 화상 정보가 부호화되어 얻어진 인핸스먼트 레이어 부호화 데이터를 취득한다. 인핸스먼트 레이어 화상 복호부(1205)는, 인트라 예측 모드 제공부(1204)로부터 취득한 베이스 레이어의 인트라 예측 모드를 사용하여 인트라 예측을 행하여, 예측 화상을 생성하고, 그 예측 화상을 사용해서 인핸스먼트 레이어 화상 정보를 재구축하여 출력한다.
<베이스 레이어 화상 복호부>
도 90은, 도 89의 베이스 레이어 화상 복호부(1203)의 주된 구성예를 도시하는 블록도이다. 도 90에 도시된 바와 같이 베이스 레이어 화상 복호부(1203)는, 축적 버퍼(1211), 가역 복호부(1212), 역양자화부(1213), 역직교 변환부(1214), 연산부(1215), 루프 필터(1216), 화면 재배열 버퍼(1217), 및 D/A 변환부(1218)를 갖는다. 또한, 베이스 레이어 화상 복호부(1203)는, 프레임 메모리(1219), 선택부(1220), 인트라 예측부(1221), 움직임 보상부(1222), 및 선택부(1223)를 갖는다.
축적 버퍼(1211)는, 전송되어 온 베이스 레이어 부호화 데이터를 수취하는 수취부이기도 하다. 축적 버퍼(1211)는, 전송되어 온 베이스 레이어 부호화 데이터를 수취하여 축적하고, 소정의 타이밍에 있어서 그 부호화 데이터를 가역 복호부(1212)에 공급한다. 이 베이스 레이어 부호화 데이터에는, 예측 모드 정보 등의 복호에 필요한 정보가 부가되어 있다.
가역 복호부(1212)는, 축적 버퍼(1211)로부터 공급된, 가역 부호화부(1116)에 의해 부호화된 정보를, 가역 부호화부(1116)의 부호화 방식에 대응하는 방식으로 복호한다. 가역 복호부(1212)는, 복호하여 얻어진 차분 화상의 양자화된 계수 데이터를, 역양자화부(1213)에 공급한다.
또한, 가역 복호부(1212)는, 베이스 레이어 부호화 데이터에 포함되는 비디오 파라미터 세트(VPS), 시퀀스 파라미터 세트(SPS), 및 픽처 파라미터 세트(PPS) 등을 포함하는 NAL 유닛을 적절히 추출하여 취득한다. 가역 복호부(1212)는, 그러한 정보로부터, 최적의 예측 모드에 관한 정보를 추출하고, 그 정보에 기초하여 최적의 예측 모드에 인트라 예측 모드가 선택되었는지 인터 예측 모드가 선택되었는지를 판정하고, 그 최적의 예측 모드에 관한 정보를, 인트라 예측부(1221) 및 움직임 보상부(1222) 중, 선택되었다고 판정한 모드쪽에 공급한다. 즉, 예를 들어, 베이스 레이어 화상 부호화부(1103)에서 최적의 예측 모드로서 인트라 예측 모드가 선택된 경우, 그 최적의 예측 모드에 관한 정보가 인트라 예측부(1221)에 공급된다. 또한, 예를 들어, 베이스 레이어 화상 부호화부(1103)에서 최적의 예측 모드로서 인터 예측 모드가 선택된 경우, 그 최적의 예측 모드에 관한 정보가 움직임 보상부(1222)에 공급된다.
또한, 가역 복호부(1212)는, 예를 들어, 양자화 행렬이나 양자화 파라미터 등의, 역양자화에 필요한 정보를 NAL 유닛 등으로부터 추출하고, 그것을 역양자화부(1213)에 공급한다.
역양자화부(1213)는, 가역 복호부(1212)에 의해 복호되어 얻어진 양자화된 계수 데이터를, 양자화부(1115)의 양자화 방식에 대응하는 방식으로 역양자화한다. 또한, 이 역양자화부(1213)는, 역양자화부(1118)와 마찬가지의 처리부이다. 즉, 역양자화부(1213)의 설명은, 역양자화부(1118)에도 준용할 수 있다. 단, 데이터의 입출력처 등은, 장치에 따라서 적절히 바꾸어서 읽을 필요가 있다. 역양자화부(1213)는, 얻어진 계수 데이터를 역직교 변환부(1214)에 공급한다.
역직교 변환부(1214)는, 역양자화부(1213)로부터 공급되는 계수 데이터를, 직교 변환부(1114)의 직교 변환 방식에 대응하는 방식으로 역직교 변환한다. 또한, 이 역직교 변환부(1214)는, 역직교 변환부(1119)와 마찬가지의 처리부이다. 즉, 역직교 변환부(1214)의 설명은, 역직교 변환부(1119)에도 준용할 수 있다. 단, 데이터의 입출력처 등은, 장치에 따라서 적절히 바꾸어서 읽을 필요가 있다.
역직교 변환부(1214)는, 이 역직교 변환 처리에 의해, 직교 변환부(1114)에서 직교 변환되기 전의 잔차 데이터에 대응하는 복호 잔차 데이터를 얻는다. 역직교 변환되어 얻어진 복호 잔차 데이터는, 연산부(1215)에 공급된다. 또한, 연산부(1215)에는, 선택부(1223)를 통해, 인트라 예측부(1221) 또는 움직임 보상부(1222)로부터 예측 화상이 공급된다.
연산부(1215)는, 그 복호 잔차 데이터와 예측 화상을 가산하여, 연산부(1113)에 의해 예측 화상이 감산되기 전의 화상 데이터에 대응하는 복호 화상 데이터를 얻는다. 연산부(1215)는, 그 복호 화상 데이터를 루프 필터(1216)에 공급한다.
루프 필터(1216)는, 공급된 복호 화상에 대하여 디블록 필터나 적응 루프 필터 등을 포함하는 필터 처리를 적절히 실시하고, 그것을 화면 재배열 버퍼(1217) 및 프레임 메모리(1219)에 공급한다. 예를 들어, 루프 필터(1216)는, 복호 화상에 대하여 디블록 필터 처리를 행함으로써 복호 화상의 블록 왜곡을 제거한다. 또한, 예를 들어, 루프 필터(1216)는, 그 디블록 필터 처리 결과(블록 왜곡의 제거가 행하여진 복호 화상)에 대하여 위너 필터(Wiener Filter)를 사용해서 루프 필터 처리를 행함으로써 화질 개선을 행한다. 또한, 이 루프 필터(1216)는, 루프 필터(1121)와 마찬가지의 처리부이다.
또한, 연산부(1215)로부터 출력되는 복호 화상은, 루프 필터(1216)를 통하지 않고 화면 재배열 버퍼(1217)나 프레임 메모리(1219)에 공급할 수 있다. 즉, 루프 필터(1216)에 의한 필터 처리의 일부 또는 전부는 생략할 수 있다.
화면 재배열 버퍼(1217)는 복호 화상의 재배열을 행한다. 즉, 화면 재배열 버퍼(1112)에 의해 부호화의 순서를 위해 재배열된 프레임의 순서가, 원래의 표시의 순서대로 재배열된다. D/A 변환부(1218)는, 화면 재배열 버퍼(1217)로부터 공급된 화상을 D/A 변환하여, 도시하지 않은 디스플레이에 출력하고 표시시킨다.
프레임 메모리(1219)는, 공급되는 복호 화상을 기억하고, 소정의 타이밍에 있어서, 또는, 인트라 예측부(1221)나 움직임 보상부(1222) 등의 외부의 요구에 기초하여, 기억하고 있는 복호 화상을 참조 화상으로서 선택부(1220)에 공급한다.
선택부(1220)는, 프레임 메모리(1219)로부터 공급되는 참조 화상의 공급처를 선택한다. 선택부(1220)는, 인트라 부호화된 화상을 복호하는 경우, 프레임 메모리(1219)로부터 공급되는 참조 화상을 인트라 예측부(1221)에 공급한다. 또한, 선택부(1220)는, 인터 부호화된 화상을 복호하는 경우, 프레임 메모리(1219)로부터 공급되는 참조 화상을 움직임 보상부(1222)에 공급한다.
인트라 예측부(1221)에는, 헤더 정보를 복호하여 얻어진 인트라 예측 모드를 나타내는 정보 등이 가역 복호부(1212)로부터 적절히 공급된다. 인트라 예측부(1221)는, 인트라 예측부(1124)에서 사용된 인트라 예측 모드에서, 프레임 메모리(1219)로부터 취득한 참조 화상을 사용하여 인트라 예측을 행하고, 예측 화상을 생성한다. 인트라 예측부(1221)는, 생성한 예측 화상을 선택부(1223)에 공급한다.
움직임 보상부(1222)는, 헤더 정보를 복호하여 얻어진 정보(최적 예측 모드 정보, 참조 화상 정보 등)를 가역 복호부(1212)로부터 취득한다.
움직임 보상부(1222)는, 가역 복호부(1212)로부터 취득된 최적 예측 모드 정보가 나타내는 인터 예측 모드에서, 프레임 메모리(1219)로부터 취득한 참조 화상을 사용하여 움직임 보상을 행하고, 예측 화상을 생성한다. 움직임 보상부(1222)는, 생성한 예측 화상을 선택부(1223)에 공급한다.
선택부(1223)는, 인트라 예측부(1221)로부터의 예측 화상 또는 움직임 보상부(1222)로부터의 예측 화상을, 연산부(1215)에 공급한다. 그리고, 연산부(1215)에서는, 움직임 벡터가 사용되어 생성된 예측 화상과 역직교 변환부(1214)로부터의 복호 잔차 데이터(차분 화상 정보)가 가산되어서 원래의 화상이 복호된다.
또한, 인트라 예측부(1221)는, 채용된 인트라 예측 모드(즉, 부호화측에 의해 지정된 인트라 예측 모드)를 베이스 레이어의 인트라 예측 모드로서, 인트라 예측 모드 제공부(1204)에 공급한다.
<인핸스먼트 레이어 화상 복호부>
도 91은, 도 89의 인핸스먼트 레이어 화상 복호부(1205)의 주된 구성예를 도시하는 블록도이다. 도 91에 도시된 바와 같이, 인핸스먼트 레이어 화상 복호부(1205)는, 도 90의 베이스 레이어 화상 복호부(1203)와 기본적으로 마찬가지의 구성을 갖는다.
단, 인핸스먼트 레이어 화상 복호부(1205)의 각 부는, 베이스 레이어가 아니라, 인핸스먼트 레이어 부호화 데이터의 복호에 관한 처리를 행한다. 즉, 인핸스먼트 레이어 화상 복호부(1205)의 축적 버퍼(1211)는, 인핸스먼트 레이어 부호화 데이터를 기억하고, 인핸스먼트 레이어 화상 복호부(1205)의 D/A 변환부(1218)는, 인핸스먼트 레이어 화상 정보를, 예를 들어, 후단의 도시하지 않은 기록 장치(기록 매체)나 전송로 등에 출력한다.
또한, 인핸스먼트 레이어 화상 복호부(1205)는, 인트라 예측부(1221) 대신에 인트라 예측부(1231)를 갖는다.
인트라 예측부(1231)는, 인트라 예측 모드 제공부(1204)가 기억하는 베이스 레이어의 인트라 예측 모드(의 대표치) 중, 커런트 블록에 대응하는 인트라 예측 모드를 취득하고(판독하고), 그 인트라 예측 모드를 사용하여, 인핸스먼트 레이어의 인트라 예측을 행하여, 예측 화상을 생성한다. 인트라 예측은, 인트라 예측부(1221)의 경우와 마찬가지로 행하여진다.
또한, 인핸스먼트 레이어 화상 복호부(1205)의 가역 복호부(1212)는, 예를 들어, 인핸스먼트 레이어의 시퀀스 파라미터 세트(SPS(Sequence Parameter Set)), 픽처 파라미터 세트(PPS(Picture Parameter Set)), 또는 슬라이스 헤더(SliceHeader) 등에 있어서, 씨닝률을 나타내는 정보가 부호화측으로부터 전송될 경우, 그 부호화측으로부터 전송된 씨닝률을 나타내는 정보를, 인트라 예측 모드 제공부(1204)에 공급한다.
또한, 이 씨닝률을 나타내는 정보는, 예를 들어 비디오 파라미터 세트(VPS(Video Parameter Set))에 있어서 전송시키도록 해도 된다. 그 경우, 이 씨닝률을 나타내는 정보는, 공통 정보 취득부(1201)로부터 인트라 예측 모드 제공부(1204)에 공급된다.
<인트라 예측 모드 제공부>
도 92는, 도 89의 인트라 예측 모드 제공부(1204)의 주된 구성예를 도시하는 블록도이다.
도 92에 도시된 바와 같이, 인트라 예측 모드 제공부(1204)는, 씨닝률 취득부(1251), 씨닝 처리부(1252), 및 인트라 예측 모드 버퍼(1253)를 갖는다.
씨닝률 취득부(1251)는, 인핸스먼트 레이어 화상 복호부(1205)의 가역 복호부(1212)(또는 공통 정보 취득부(1201))로부터, 부호화측으로부터 전송된, 베이스 레이어의 인트라 예측 모드의 씨닝률을 취득한다. 씨닝률 취득부(1251)는, 취득한 씨닝률을 나타내는 정보를 씨닝 처리부(1252)에 공급한다.
씨닝 처리부(1252)는, 베이스 레이어 화상 복호부(1203)의 인트라 예측부(1221)로부터 공급되는 베이스 레이어의 각 블록의 인트라 예측 모드를 취득하고, 씨닝률 취득부(1251)로부터 공급된 씨닝률로, 그 인트라 예측 모드를 씨닝한다. 예를 들어, 상술한 바와 같이, 소정의 에리어마다 인트라 예측 모드의 씨닝 처리를 행하여, 각 에리어의 대표(인트라 예측 모드)를 선택한다. 이렇게 씨닝되어서 선택된 베이스 레이어의 인트라 예측 모드는, 인트라 예측 모드 버퍼(1253)에 공급된다.
인트라 예측 모드 버퍼(1253)는, 씨닝 처리부(1252)로부터 공급된, 선택된 베이스 레이어 인트라 예측 모드를 기억한다. 인트라 예측 모드 버퍼(1253)는, 기억하고 있는, 선택된 베이스 레이어 인트라 예측 모드 중에서 인핸스먼트 레이어 화상 복호부(1205)의 인트라 예측부(1231)에서 행하여지는 인트라 예측의 커런트 블록에 대응하는 블록의 인트라 예측 모드를, 인트라 예측부(1231)에 공급한다.
상술한 바와 같이, 인트라 예측부(1231)는, 인트라 예측 모드 버퍼(1253)로부터 판독한 베이스 레이어의 인트라 예측 모드(선택된 베이스 레이어 인트라 예측 모드)를 사용하여, 인핸스먼트 레이어의 커런트 블록의 인트라 예측을 행하고, 예측 화상을 생성한다.
이상과 같이, 스케일러블 복호 장치(1200)는, 인핸스먼트 레이어의 부호화에서의 인트라 예측에 있어서, 베이스 레이어의 인트라 예측 모드를 사용할 수 있으므로, 부호화 효율의 저감을 억제할 수 있다. 이에 의해, 스케일러블 복호 장치(1200)는, 부호화·복호에 의한 화질의 저감을 억제할 수 있다. 또한, 그 베이스 레이어의 인트라 예측 모드를 인핸스먼트 레이어에 제공할 때에 그 인트라 예측 모드를 소정의 씨닝률로 씨닝하므로, 스케일러블 복호 장치(1200)는, 부호화·복호에 필요한 기억 용량의 증대를 억제할 수 있다.
<공통 정보 취득 처리의 흐름>
이어서, 이상과 같은 스케일러블 복호 장치(1200)에 의해 실행되는 각 처리의 흐름에 대하여 설명한다. 최초로, 도 93의 흐름도를 참조하여, 공통 정보 취득 처리의 흐름의 예를 설명한다.
공통 정보 취득 처리가 개시되면, 공통 정보 취득부(1201)는, 스텝 S4201에서, 부호화측으로부터 전송된 비디오 파라미터 세트를 취득한다.
스텝 S4202에서, 인트라 예측 모드 제공부(1204)의 씨닝률 취득부(1251)는, 스텝 S4201에서 취득된 비디오 파라미터 세트로부터, 베이스 레이어 인트라 예측 모드의 씨닝률을 취득한다.
스텝 S4202의 처리가 종료되면, 공통 정보 취득 처리가 종료된다.
<복호 처리의 흐름>
이어서, 도 94의 흐름도를 참조하여, 복호 처리의 흐름의 예를 설명한다. 스케일러블 복호 장치(1200)는, 픽처마다 이 복호 처리를 실행한다.
복호 처리가 개시되면, 스텝 S4221에서, 스케일러블 복호 장치(1200)의 복호 제어부(1202)는 최초의 레이어를 처리 대상으로 한다.
스텝 S4222에서, 복호 제어부(1202)는, 처리 대상인 커런트 레이어가 베이스 레이어인지 여부를 판정한다. 커런트 레이어가 베이스 레이어라고 판정된 경우, 처리는 스텝 S4223으로 진행된다.
스텝 S4223에서, 베이스 레이어 화상 복호부(1203) 및 인트라 예측 모드 제공부(1204)는, 베이스 레이어 복호 처리를 행한다. 스텝 S4223의 처리가 종료되면, 처리는 스텝 S4226으로 진행된다.
또한, 스텝 S4222에서, 커런트 레이어가 인핸스먼트 레이어라고 판정된 경우, 처리는 스텝 S4224로 진행된다. 스텝 S4224에서, 복호 제어부(1202)는, 커런트 레이어에 대응하는(즉, 참조처로 하는) 베이스 레이어를 결정한다.
스텝 S4225에서, 인핸스먼트 레이어 화상 복호부(1205)는, 인핸스먼트 레이어 복호 처리를 행한다. 스텝 S4225의 처리가 종료되면, 처리는 스텝 S4226으로 진행된다.
스텝 S4226에서, 복호 제어부(1202)는, 모든 레이어를 처리했는지 여부를 판정한다. 미처리의 레이어가 존재한다고 판정된 경우, 처리는 스텝 S4227로 진행된다.
스텝 S4227에서, 복호 제어부(1202)는, 다음의 미처리의 레이어를 처리 대상(커런트 레이어)으로 한다. 스텝 S4227의 처리가 종료되면, 처리는 스텝 S4222로 복귀된다. 스텝 S4222 내지 스텝 S4227의 처리가 반복 실행되어, 각 레이어가 복호된다.
그리고, 스텝 S4226에서, 모든 레이어가 처리되었다고 판정된 경우, 복호 처리가 종료된다.
<베이스 레이어 복호 처리의 흐름>
이어서, 도 95의 흐름도를 참조하여, 도 94의 스텝 S4223에서 실행되는 베이스 레이어 복호 처리의 흐름의 예를 설명한다.
베이스 레이어 복호 처리가 개시되면, 스텝 S4241에서, 베이스 레이어 화상 복호부(1203)의 축적 버퍼(1211)는, 부호화측으로부터 전송된 베이스 레이어의 비트 스트림을 축적한다. 스텝 S4242에서, 가역 복호부(1212)는, 축적 버퍼(1211)로부터 공급되는 베이스 레이어의 비트 스트림(부호화된 차분 화상 정보)을 복호한다. 즉, 가역 부호화부(1116)에 의해 부호화된 I 픽처, P 픽처, 및 B 픽처가 복호된다. 이때, 헤더 정보 등의 비트 스트림에 포함된 차분 화상 정보 이외의 각종 정보도 복호된다.
스텝 S4243에서, 역양자화부(1213)는, 스텝 S4242의 처리에 의해 얻어진, 양자화된 계수를 역양자화한다.
스텝 S4244에서, 역직교 변환부(1214)는, 커런트 블록(커런트 TU)을 역직교 변환한다.
스텝 S4245에서, 인트라 예측부(1221) 또는 움직임 보상부(1222)는, 예측 처리를 행하여, 예측 화상을 생성한다. 즉, 가역 복호부(1212)에서 판정된, 부호화 시에 적용된 예측 모드에서 예측 처리가 행하여진다. 보다 구체적으로는, 예를 들어, 부호화 시에 인트라 예측이 적용된 경우, 인트라 예측부(1221)가 부호화 시에 최적으로 된 인트라 예측 모드에서 예측 화상을 생성한다. 또한, 예를 들어, 부호화 시에 인터 예측이 적용된 경우, 움직임 보상부(1222)가 부호화 시에 최적으로 된 인터 예측 모드에서 예측 화상을 생성한다.
스텝 S4246에서, 연산부(1215)는, 스텝 S4244의 역직교 변환 처리에 의해 생성된 차분 화상 정보에, 스텝 S4245에서 생성된 예측 화상을 가산한다. 이에 의해 원래의 화상이 복호된다.
스텝 S4247에서, 루프 필터(1216)는, 스텝 S4246에서 얻어진 복호 화상에 대하여 루프 필터 처리를 적절히 행한다.
스텝 S4248에서, 화면 재배열 버퍼(1217)는, 스텝 S4247에서 필터 처리된 화상의 재배열을 행한다. 즉 화면 재배열 버퍼(1112)에 의해 부호화를 위해 재배열된 프레임의 순서가, 원래의 표시의 순서로 재배열된다.
스텝 S4249에서, D/A 변환부(1218)는, 스텝 S4248에서 프레임의 순서가 재배열된 화상을 D/A 변환한다. 이 화상이 도시하지 않은 디스플레이에 출력되어, 화상이 표시된다.
스텝 S4250에서, 프레임 메모리(1219)는, 스텝 S4247에서 루프 필터 처리된 복호 화상을 기억한다.
스텝 S4251에서, 인트라 예측 모드 제공부(1204)의 씨닝 처리부(1252)는, 스텝 S4245에서, 인트라 예측부(1221)의 인트라 예측 처리에 의해 얻어진 베이스 레이어의 인트라 예측 모드를, 도 93의 스텝 S4202에서 취득된 씨닝률에 따라서 씨닝한다.
스텝 S4252에서, 인트라 예측 모드 제공부(1204)의 인트라 예측 모드 버퍼(1253)는, 스텝 S4251에서 씨닝됨으로써 선택된 베이스 레이어의 인트라 예측 모드를 기억한다.
스텝 S4252의 처리가 종료되면, 베이스 레이어 복호 처리가 종료되고, 처리는 도 94로 복귀된다. 베이스 레이어 복호 처리는, 예를 들어, 픽처 단위로 실행된다. 즉, 커런트 레이어의 각 픽처에 대하여 베이스 레이어 복호 처리가 실행된다. 단, 베이스 레이어 복호 처리 내의 각 처리는, 각각의 처리 단위마다 행해진다.
<인핸스먼트 레이어 복호 처리의 흐름>
이어서, 도 96의 흐름도를 참조하여, 도 94의 스텝 S4225에서 실행되는 인핸스먼트 레이어 복호 처리의 흐름의 예를 설명한다.
인핸스먼트 레이어 복호 처리의 스텝 S4271 내지 스텝 S4274, 및 스텝 S4276 내지 스텝 S4280의 각 처리는, 베이스 레이어 복호 처리의 스텝 S4241 내지 스텝 S4244, 및 스텝 S4246 내지 스텝 S4250의 각 처리와 마찬가지로 실행된다. 단, 인핸스먼트 레이어 복호 처리의 각 처리는, 인핸스먼트 레이어 화상 복호부(1205)의 각 처리부에 의해, 인핸스먼트 레이어 부호화 데이터에 대하여 행하여진다.
또한, 스텝 S4275에서, 인핸스먼트 레이어 화상 복호부(1205)의 인트라 예측부(1231) 및 움직임 보상부(1222)는, 인핸스먼트 레이어 부호화 데이터에 대하여 예측 처리를 행한다.
스텝 S4280의 처리가 종료되면, 인핸스먼트 레이어 복호 처리가 종료되어, 처리는 도 94로 복귀된다. 인핸스먼트 레이어 복호 처리는, 예를 들어, 픽처 단위로 실행된다. 즉, 커런트 레이어의 각 픽처에 대하여 인핸스먼트 레이어 복호 처리가 실행된다. 단, 인핸스먼트 레이어 복호 처리 내의 각 처리는, 각각의 처리 단위마다 행해진다.
<예측 처리의 흐름>
이어서, 도 97의 흐름도를 참조하여, 도 96의 스텝 S4275에서 실행되는 예측 처리의 흐름의 예를 설명한다.
예측 처리가 개시되면, 인핸스먼트 레이어 화상 복호부(1205)의 인트라 예측부(1231)는, 스텝 S4301에서, 예측 모드가 인트라 예측인지 여부를 판정한다. 인트라 예측이라고 판정했을 경우, 처리는 스텝 S4302로 진행된다.
스텝 S4302에서, 인트라 예측부(1231)는, 인트라 예측 모드 제공부(1204)의 인트라 예측 모드 버퍼(1253)에 기억되어 있는, 선택된 베이스 레이어의 인트라 예측 모드 중, 커런트 블록에 대응하는 블록의 인트라 예측 모드를 취득한다.
스텝 S4303에서, 인트라 예측부(1231)는, 스텝 S4302에서 취득한 인트라 예측 모드(선택된 베이스 레이어의 인트라 예측 모드)를 사용하여, 인트라 예측 처리를 행하고, 예측 화상을 생성한다. 스텝 S4303의 처리가 종료되면, 예측 처리가 종료되고, 처리는 도 96으로 복귀된다.
또한, 스텝 S4301에서, 인터 예측이라고 판정된 경우, 처리는 스텝 S4304로 진행된다. 스텝 S4304에서, 움직임 보상부(1222)는, 부호화 시에 채용된 인터 예측 모드인 최적 인터 예측 모드에서 움직임 보상을 행하고, 예측 화상을 생성한다. 스텝 S4304의 처리가 종료되면, 예측 처리가 종료되고, 처리는 도 96으로 복귀된다.
이상과 같이 각 처리를 실행함으로써, 스케일러블 복호 장치(1200)는, 인핸스먼트 레이어의 복호에서의 인트라 예측에 있어서, 베이스 레이어의 인트라 예측 모드를 사용할 수 있으므로, 부호화 효율의 저감을 억제할 수 있다. 이에 의해, 스케일러블 복호 장치(1200)는, 부호화·복호에 의한 화질의 저감을 억제할 수 있다. 또한, 그 베이스 레이어의 인트라 예측 모드를 인핸스먼트 레이어에 제공할 때에, 그 인트라 예측 모드를, 부호화측으로부터 공급된 소정의 씨닝률로 씨닝하므로, 스케일러블 복호 장치(1200)는, 스케일러블 부호화 장치(1100)의 경우와 마찬가지로, 부호화·복호에 필요한 기억 용량의 증대를 억제할 수 있다.
이상에서, 제5 실시 형태 및 제6 실시 형태 등에서 설명한 스케일러블 부호화·복호에 관한 본 기술은, 당연히 제1 실시 형태 내지 제3 실시 형태에서 설명한 바와 같은 다시점 화상의 부호화·복호에 대해서도 마찬가지로 적용할 수 있다.
즉, 다시점 화상 부호화에 본 기술을 적용하는 경우도, 화상 부호화 장치가 도 81 내지 도 84와 같은 구성을 갖고, 도 85 내지 도 88의 흐름도를 참조하여 설명한 바와 같은 각 처리를 실행하도록 하면 된다.
또한, 다시점 화상 복호에 본 기술을 적용하는 경우도, 화상 복호 장치가 도 89 내지 도 92와 같은 구성을 갖고, 도 93 내지 도 97의 흐름도를 참조하여 설명한 바와 같은 각 처리를 실행하도록 하면 된다.
<8. 개요 3>
<예측 방향 제어>
그런데, 종래, HEVC에서는, 움직임 벡터의 부호화(mv_coding)를 위해 템포럴 움직임 벡터(temporal_motion_vector)를 이용할 수 있고, 또한, L0 방향과 L1 방향 중 어느 한쪽만을 이용할 수 있다. 즉, 템포럴 움직임 벡터(temporal_motion_vector)는 L0 방향과 L1 방향 중 어느 한쪽만을 보존하면 된다.
도 98 내지 도 100은, 종래의 슬라이스 세그먼트 헤더의 신택스의 모습을 도시하는 도면이다. 도 99에 나타내는 플래그 정보(collocated_from_l0_flag)는, L0 방향의 템포럴 움직임 벡터(temporal_motion_vector)를 보존할 것인지 여부를 나타내는 플래그 정보이다. 이 플래그 정보의 값이 「1(참)」인 경우, L0 방향의 템포럴 움직임 벡터(temporal_motion_vector)가 보존되고, 이 플래그 정보의 값이 「0(거짓)」인 경우, L1 방향의 템포럴 움직임 벡터(temporal_motion_vector)가 보존된다.
그런데, Vadim Seregin, Patrice Onno, Shan Liu, Elena Alshina, Chulkeun Kim, Haitao Yang, "Description of Core Experiment SCE5: Inter-layer syntax prediction using HEVC base layer", JCTVC-L1105, Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 1112th Meeting: Geneva, CH, 14-23 Jan. 2013에서는, 스케일러블(Scalable) 부호화를 위한 움직임 벡터 부호화 방식으로서, 베이스 레이어(Baselayer)에서의 움직임 정보를 이용하는 레이어간 신택스의 예측(Inter-layer syntax prediction)이 제안되어 있다.
이 레이어간 신택스의 예측에서는, 인핸스먼트 레이어(Enhancementlayer)의 L0 움직임 벡터 부호화 처리를 위해서는, 베이스 레이어의 L0 움직임 정보가 사용되고, 인핸스먼트 레이어의 L1 움직임 벡터 부호화를 위해서는, 베이스 레이어의 L1 움직임 정보가 사용된다. 따라서, L0 방향 및 L1 방향의 양쪽 움직임 정보를 버퍼에 저장해야만 하여, 부호화·복호에 필요한 기억 용량이 증대될 우려가 있었다.
따라서, 복수 레이어를 포함하는 화상 데이터의, 처리 대상인 커런트 레이어의 부호화에 사용하는 다른 레이어의 움직임 정보의 예측 방향을 설정하고, 다른 레이어로부터, 설정된 예측 방향의 움직임 정보만을 취득하도록 한다. 예를 들어, 화상 데이터를 계층 부호화할 경우, 인핸스먼트 레이어의 부호화, 베이스 레이어의 움직임 정보를 이용하는 레이어간 신택스의 예측에 있어서, 그 레이어간 신택스의 예측에 이용하는 베이스 레이어의 움직임 정보의 예측 방향을 설정하고, 그 예측 방향의 움직임 정보만을 취득하여, 버퍼에 저장하도록 한다. 예를 들어, 베이스 레이어의 L0 방향 또는 L1 방향 중 어느 한쪽의 움직임 정보만을 취득하여, 버퍼에 저장하도록 한다. 그리고, 인핸스먼트 레이어의 부호화에서의 레이어간 신택스의 예측에 있어서, 그 버퍼에 저장한 베이스 레이어의 움직임 정보를 판독하여 이용하도록 한다.
이와 같이 함으로써, 베이스 레이어의 모든 예측 방향(예를 들어, L0 방향 및 L1 방향)의 움직임 정보를 취득하는 경우보다, 베이스 레이어의 움직임 정보를 유지하는 데 필요한 버퍼의 용량을 저감할 수 있다. 즉, 부호화에 필요한 기억 용량의 증대를 억제할 수 있다.
또한, 베이스 레이어의 움직임 정보의 예측 방향의 설정을 나타내는 제어 정보를, 복호측에 전송하도록 한다. 그리고, 복호측에서는, 부호화측으로부터 전송되어 온 제어 정보의 설정에 따라, 베이스 레이어의, 제어 정보에 의해 지정된 예측 방향(예를 들어, L0 방향 또는 L1 방향)의 움직임 정보만을 취득하여, 버퍼에 저장하도록 한다. 그리고, 인핸스먼트 레이어의 복호에서의 레이어간 신택스의 예측에 있어서, 그 버퍼에 저장한 베이스 레이어의 움직임 정보를 판독하여 이용하도록 한다.
이와 같이 함으로써, 베이스 레이어의 모든 예측 방향(예를 들어, L0 방향 및 L1 방향)의 움직임 정보를 취득하는 경우보다, 베이스 레이어의 움직임 정보를 유지하는 데 필요한 버퍼의 용량을 저감할 수 있다. 즉, 복호에 필요한 기억 용량의 증대를 억제할 수 있다.
<신택스의 예>
도 101 내지 도 103은, 이렇게 할 경우의 슬라이스 세그먼트 헤더의 신택스의 모습을 도시하는 도면이다. 도 102에 도시된 바와 같이, 상술한 제어 정보로서, 플래그 정보(colbasemv_from_l0_flag)가 전송된다. 이 플래그 정보는, 베이스 레이어의 L0 방향의 움직임 정보를 보존할 것인지 여부를 나타내는 플래그 정보이다. 이 플래그 정보의 값이 「1(참)」인 경우, 베이스 레이어로부터 L0 방향의 움직임 정보가 취득되어, 버퍼에 저장된다. 또한, 이 플래그 정보의 값이 「0(거짓)」인 경우, 베이스 레이어로부터 L1 방향의 움직임 정보가 취득되어, 버퍼에 저장된다. 이렇게 버퍼에 저장된 베이스 레이어의 움직임 정보가, 인핸스먼트 레이어의 레이어간 예측에서 이용된다.
이러한 제어 정보를 전송함으로써, 복호측에 있어서, 부호화측과 마찬가지의 레이어간 신택스의 예측을 행할 수 있다. 따라서, 복호에 필요한 기억 용량의 증대를 억제할 수 있다.
이와 같이, 레이어간 예측에 이용하는 베이스 레이어의 움직임 정보의 예측 방향을 나타내는 제어 정보는, 그 예측 방향이 소정의 방향(예를 들어 L0 방향)인지를 나타내는 정보로 해도 된다. 제어 정보를 이러한 플래그 정보로 함으로써, 이 제어 정보의 정보량을 적게 할 수 있다(예를 들어 1비트로 할 수 있음). 따라서, 부호화 효율의 저감을 억제할 수 있다.
물론, 이 방향은 L0 방향에 한하지 않는다. 예를 들어, 제어 정보가, 레이어간 예측에 이용하는 베이스 레이어의 움직임 정보의 예측 방향이 L1 방향인지를 나타내는 정보이어도 된다. 또한, 이 방향을 선택할 수 있도록 해도 된다. 예를 들어, 슬라이스, 픽처, 시퀀스 등, 임의의 단위마다 이 방향을 선택할 수 있도록 해도 된다.
또한, 제어 정보는 플래그 정보에 한하지 않는다. 예를 들어, 제어 정보가, 레이어간 예측에 이용하는 베이스 레이어의 움직임 정보의 예측 방향이 L0 방향인지, L1 방향인지를 나타내는 정보이어도 된다.
또한, 도 101 내지 도 103의 예에서는, 이 제어 정보를 슬라이스 헤더에 있어서 전송하는 것으로 설명했지만, 이것에 한하지 않는다. 즉, 이 제어 정보는, 예를 들어, 시퀀스, 픽처, 또는 LCU 등, 임의의 단위로 전송하도록 해도 된다. 환언하면, 이 제어 정보의 제어 단위도, 슬라이스에 한하지 않는다. 예를 들어, 시퀀스, 픽처, 또는 LCU 등, 임의의 단위로 제어하도록 해도 된다.
또한, 레이어간 예측에는, 베이스 레이어의, 인핸스먼트 레이어의 처리 대상의 커런트 영역(에리어)에 대응하는 소정의 에리어의 움직임 정보가 이용된다.
또한, 베이스 레이어로부터 취득한 움직임 정보의 예측 방향이, 이용시의 예측 방향과 상이한 경우, 변환할 수 있다. 예를 들어, 버퍼에 저장한 베이스 레이어의 L0 방향의 움직임 정보를, 인핸스먼트 레이어의 L1 방향의 예측에 사용하는 경우, 그 베이스 레이어의 움직임 정보가 L1 방향으로 변환된다. 이러한 변환은, 부호화측에서나 복호측에서도 마찬가지로 행할 수 있다.
또한, 베이스 레이어로부터 취득한 움직임 정보는, 필요에 따라, 스케일러블한 파라미터를 인핸스먼트 레이어 기준으로 하도록 변환할 수 있다. 예를 들어, 해상도가 스케일러블한 경우, 베이스 레이어와 인핸스먼트 레이어의 해상도비에 따라, 취득한 베이스 레이어의 움직임 정보의 스케일을 변환(업 샘플)해도 된다. 또한, 이러한 변환은, 버퍼에 저장하기 전에 행해도 되고, 버퍼로부터 판독한 후에 행해도 된다. 이러한 변환은, 부호화측에서나 복호측에서도 마찬가지로 행할 수 있다.
이어서, 이상과 같은 본 기술에 대해, 구체적인 장치에 대한 적용예에 대하여 설명한다.
<9. 제7 실시 형태>
<화상 부호화 장치>
도 104는, 본 기술을 적용한 화상 처리 장치의 일 형태인, 화상 부호화 장치를 도시하는 도면이다. 도 104에 나타내는 화상 부호화 장치(1300)는, 계층 화상 부호화를 행하는 장치이다. 도 104에 도시된 바와 같이, 화상 부호화 장치(1300)는, 베이스 레이어 화상 부호화부(1301), 인핸스먼트 레이어 화상 부호화부(1302), 및 다중화부(1303)를 갖는다.
베이스 레이어 화상 부호화부(1301)는, 베이스 레이어 화상을 부호화하여, 베이스 레이어 화상 부호화 스트림을 생성한다. 인핸스먼트 레이어 화상 부호화부(1302)는, 인핸스먼트 레이어 화상을 부호화하여, 인핸스먼트 레이어 화상 부호화 스트림을 생성한다. 다중화부(1303)는, 베이스 레이어 화상 부호화부(1301)에서 생성된 베이스 레이어 화상 부호화 스트림과, 인핸스먼트 레이어 화상 부호화부(1302)에서 생성된 인핸스먼트 레이어 화상 부호화 스트림을 다중화하여, 계층 화상 부호화 스트림을 생성한다. 다중화부(1303)는, 생성한 계층 화상 부호화 스트림을 복호측에 전송한다.
베이스 레이어 화상 부호화부(1301)는, 다른 레이어를 참조하지 않고 베이스 레이어 화상을 부호화한다. 이에 반해 인핸스먼트 레이어 화상 부호화부(1302)는, 인핸스먼트 레이어 화상의 부호화에 있어서, 베이스 레이어를 참조하여, 레이어간 예측을 행한다. 예를 들어, 인핸스먼트 레이어 화상 부호화부(1302)는, 베이스 레이어 화상 부호화부(1301)가 베이스 레이어 화상을 부호화할 때에 생성된 베이스 레이어의 움직임 정보를 취득하고, 그 베이스 레이어의 움직임 정보를 사용하여 레이어간 신택스의 예측(Inter-layer syntax prediction)을 행한다.
그때, 인핸스먼트 레이어 화상 부호화부(1302)는, 베이스 레이어 화상 부호화부(1301)로부터 취득하는 움직임 정보의 예측 방향을 설정하고, 그 설정한 예측 방향의 움직임 정보만을 취득하여, 버퍼에 저장한다. 그리고, 인핸스먼트 레이어 화상 부호화부(1302)는, 그 버퍼에 저장되어 있는 베이스 레이어의 움직임 정보(즉, 설정된 예측 방향의 움직임 정보)를 사용하여 레이어간 예측을 행한다.
또한, 인핸스먼트 레이어 화상 부호화부(1302)는, 그 예측 방향의 설정 내용을 나타내는 제어 정보를, 다중화부(1303)를 통해(계층 화상 부호화 스트림으로서), 복호측에 전송한다.
<베이스 레이어 화상 부호화부>
도 105는, 도 104의 베이스 레이어 화상 부호화부(1301)의 주된 구성예를 도시하는 블록도이다. 도 105에 도시된 바와 같이, 베이스 레이어 화상 부호화부(1301)는, A/D 변환부(1311), 화면 재배열 버퍼(1312), 연산부(1313), 직교 변환부(1314), 양자화부(1315), 가역 부호화부(1316), 축적 버퍼(1317), 역양자화부(1318), 및 역직교 변환부(1319)를 갖는다. 또한, 베이스 레이어 화상 부호화부(1301)는, 연산부(1320), 루프 필터(1321), 프레임 메모리(1322), 선택부(1323), 인트라 예측부(1324), 인터 예측부(1325), 예측 화상 선택부(1326), 및 레이트 제어부(1327)를 갖는다.
A/D 변환부(1311)는, 입력된 화상 데이터(베이스 레이어 화상 정보)를 A/D 변환하고, 변환 후의 화상 데이터(디지털 데이터)를 화면 재배열 버퍼(1312)에 공급하여 기억시킨다. 화면 재배열 버퍼(1312)는, 기억한 표시의 순서의 프레임의 화상을, GOP(Group Of Picture)에 따라, 부호화를 위한 프레임의 순서대로 재배열하고, 프레임의 순서를 재배열한 화상을 연산부(1313)에 공급한다. 또한, 화면 재배열 버퍼(1312)는, 프레임의 순서를 재배열한 화상을, 인트라 예측부(1324) 및 인터 예측부(1325)에도 공급한다.
연산부(1313)는, 화면 재배열 버퍼(1312)로부터 판독된 화상으로부터, 예측 화상 선택부(1326)를 통해 인트라 예측부(1324) 또는 인터 예측부(1325)로부터 공급되는 예측 화상을 감산하고, 그 차분 정보를 직교 변환부(1314)에 출력한다. 예를 들어, 인트라 부호화가 행하여지는 화상의 경우, 연산부(1313)는, 화면 재배열 버퍼(1312)로부터 판독된 화상으로부터, 인트라 예측부(1324)로부터 공급되는 예측 화상을 감산한다. 또한, 예를 들어, 인터 부호화가 행하여지는 화상의 경우, 연산부(1313)는, 화면 재배열 버퍼(1312)로부터 판독된 화상으로부터, 인터 예측부(1325)로부터 공급되는 예측 화상을 감산한다.
직교 변환부(1314)는, 연산부(1313)로부터 공급되는 차분 정보에 대하여 이산 코사인 변환이나 카루넨 루베 변환 등의 직교 변환을 실시한다. 직교 변환부(1314)는, 그 변환 계수를 양자화부(1315)에 공급한다.
양자화부(1315)는, 직교 변환부(1314)로부터 공급되는 변환 계수를 양자화한다. 양자화부(1315)는, 레이트 제어부(1327)로부터 공급되는 부호량의 목표 값에 관한 정보에 기초하여 양자화 파라미터를 설정하고, 그 양자화를 행한다. 양자화부(1315)는, 양자화된 변환 계수를 가역 부호화부(1316)에 공급한다.
가역 부호화부(1316)는, 양자화부(1315)에서 양자화된 변환 계수를 임의의 부호화 방식으로 부호화한다. 계수 데이터는, 레이트 제어부(1327)의 제어 하에서 양자화되어 있으므로, 이 부호량은, 레이트 제어부(1327)가 설정한 목표 값이 된다(또는 목표 값에 근사함).
또한, 가역 부호화부(1316)는, 인트라 예측의 모드를 나타내는 정보 등을 인트라 예측부(1324)로부터 취득하고, 인터 예측의 모드를 나타내는 정보나 차분 움직임 벡터 정보 등을 인터 예측부(1325)로부터 취득한다. 또한, 가역 부호화부(1316)는, 시퀀스 파라미터 세트(SPS), 및 픽처 파라미터 세트(PPS) 등을 포함하는 베이스 레이어의 NAL 유닛을 적절히 생성한다.
또한, 가역 부호화부(1316)는, 베이스 레이어 영역 분할 설정부에 의해 설정된 베이스 레이어의 영역(예를 들어 타일이나 슬라이스 등) 분할에 관한 정보(베이스 레이어 영역 분할 정보라고도 함)를 부호화한다.
가역 부호화부(1316)는, 이들 각종 정보를 임의의 부호화 방식으로 부호화하여, 부호화 데이터(부호화 스트림이라고도 함)의 일부로 한다(다중화함). 가역 부호화부(1316)는, 부호화하여 얻어진 부호화 데이터를 축적 버퍼(1317)에 공급하여 축적시킨다.
가역 부호화부(1316)의 부호화 방식으로서는, 예를 들어, 가변장 부호화 또는 산술 부호화 등을 들 수 있다. 가변장 부호화로서는, 예를 들어, H.264/AVC 방식으로 정해져 있는 CAVLC(Context-Adaptive Variable Length Coding) 등을 들 수 있다. 산술 부호화로서는, 예를 들어, CABAC(Context-Adaptive Binary Arithmetic Coding) 등을 들 수 있다.
축적 버퍼(1317)는, 가역 부호화부(1316)로부터 공급된 부호화 데이터(베이스 레이어 부호화 데이터)를 일시적으로 유지한다. 축적 버퍼(1317)는, 소정의 타이밍에 있어서, 유지하고 있는 베이스 레이어 부호화 데이터를, 예를 들어, 후단의 도시하지 않은 기록 장치(기록 매체)나 전송로 등에 출력한다. 즉, 축적 버퍼(1317)는 부호화 데이터를 전송하는 전송부이기도 하다.
또한, 양자화부(1315)에서 양자화된 변환 계수는, 역양자화부(1318)에도 공급된다. 역양자화부(1318)는, 그 양자화된 변환 계수를, 양자화부(1315)에 의한 양자화에 대응하는 방법으로 역양자화한다. 역양자화부(1318)는, 얻어진 변환 계수를 역직교 변환부(1319)에 공급한다.
역직교 변환부(1319)는, 역양자화부(1318)로부터 공급된 변환 계수를, 직교 변환부(1314)에 의한 직교 변환 처리에 대응하는 방법으로 역직교 변환한다. 역직교 변환된 출력(복원된 차분 정보)은 연산부(1320)에 공급된다.
연산부(1320)는, 역직교 변환부(1319)로부터 공급된 역직교 변환 결과인, 복원된 차분 정보에, 예측 화상 선택부(1326)를 통해 인트라 예측부(1324) 또는 인터 예측부(1325)로부터의 예측 화상을 가산하여, 국부적으로 복호된 화상(복호 화상)을 얻는다. 그 복호 화상은, 루프 필터(1321) 또는 프레임 메모리(1322)에 공급된다.
루프 필터(1321)는, 디블록 필터나 적응 루프 필터 등을 포함하고, 연산부(1320)로부터 공급되는 재구성 화상에 대하여 적절히 필터 처리를 행한다. 예를 들어, 루프 필터(1321)는, 재구성 화상에 대하여 디블록 필터 처리를 행함으로써 재구성 화상의 블록 왜곡을 제거한다. 또한, 예를 들어, 루프 필터(1321)는, 그 디블록 필터 처리 결과(블록 왜곡의 제거가 행하여진 재구성 화상)에 대하여 위너 필터(Wiener Filter)를 사용해서 루프 필터 처리를 행함으로써 화질 개선을 행한다. 루프 필터(1321)는, 필터 처리 결과(이하, 복호 화상이라고 함)를 프레임 메모리(1322)에 공급한다.
또한, 루프 필터(1321)가, 재구성 화상에 대하여 또한, 다른 임의의 필터 처리를 행하도록 해도 된다. 또한, 루프 필터(1321)는 필요에 따라, 필터 처리에 사용한 필터 계수 등의 정보를 가역 부호화부(1316)에 공급하고, 그것을 부호화시키도록 할 수도 있다.
프레임 메모리(1322)는, 공급되는 복호 화상을 기억하고, 소정의 타이밍에 있어서, 기억하고 있는 복호 화상을 참조 화상으로서 선택부(1323)에 공급한다.
보다 구체적으로는, 프레임 메모리(1322)는, 연산부(1320)로부터 공급되는 재구성 화상과, 루프 필터(1321)로부터 공급되는 복호 화상을 각각 기억한다. 프레임 메모리(1322)는, 소정의 타이밍에 있어서, 또는, 인트라 예측부(1324) 등의 외부로부터의 요구에 기초하여, 기억하고 있는 재구성 화상을, 선택부(1323)를 통해 인트라 예측부(1324)에 공급한다. 또한, 프레임 메모리(1322)는, 소정의 타이밍에 있어서, 또는, 인터 예측부(1325) 등의 외부로부터의 요구에 기초하여, 기억하고 있는 복호 화상을, 선택부(1323)를 통해 인터 예측부(1325)에 공급한다.
선택부(1323)는, 프레임 메모리(1322)로부터 공급되는 참조 화상의 공급처를 선택한다. 예를 들어, 인트라 예측의 경우, 선택부(1323)는, 프레임 메모리(1322)로부터 공급되는 참조 화상(커런트 픽처 내의 화소값)을 인트라 예측부(1324)에 공급한다. 또한, 예를 들어, 인터 예측의 경우, 선택부(1323)는, 프레임 메모리(1322)로부터 공급되는 참조 화상을 인터 예측부(1325)에 공급한다.
인트라 예측부(1324)는, 처리 대상의 프레임 화상인 커런트 픽처에 대해서, 예측 처리를 행하고, 예측 화상을 생성한다. 인트라 예측부(1324)는, 이 예측 처리를, 소정의 블록마다(블록을 처리 단위로서) 행한다. 즉, 인트라 예측부(1324)는, 커런트 픽처의, 처리 대상인 커런트 블록의 예측 화상을 생성한다. 그때, 인트라 예측부(1324)는, 선택부(1323)를 통해 프레임 메모리(1322)로부터 참조 화상으로서 공급되는 재구성 화상을 사용하여 예측 처리(화면 내 예측(인트라 예측이라고도 함))를 행한다. 즉, 인트라 예측부(1324)는, 재구성 화상에 포함되는, 커런트 블록의 주변 화소값을 사용하여 예측 화상을 생성한다. 이 인트라 예측에 이용되는 주변 화소값은, 커런트 픽처의, 과거에 처리된 화소의 화소값이다. 이 인트라 예측에는(즉, 예측 화상의 생성 방법에는), 복수의 방법(인트라 예측 모드라고도 함)이 후보로서 미리 준비되어 있다. 인트라 예측부(1324)는, 이 미리 준비된 복수의 인트라 예측 모드에서 이 인트라 예측을 행한다.
인트라 예측부(1324)는, 후보가 되는 모든 인트라 예측 모드에서 예측 화상을 생성하고, 화면 재배열 버퍼(1312)로부터 공급되는 입력 화상을 사용하여 각 예측 화상의 비용 함수값을 평가하고, 최적의 모드를 선택한다. 인트라 예측부(1324)는, 최적의 인트라 예측 모드를 선택하면, 그 최적의 모드에서 생성된 예측 화상을, 예측 화상 선택부(1326)에 공급한다.
또한, 상술한 바와 같이, 인트라 예측부(1324)는, 채용된 인트라 예측 모드를 나타내는 인트라 예측 모드 정보 등을, 적절히 가역 부호화부(1316)에 공급하여 부호화시킨다.
인터 예측부(1325)는, 커런트 픽처에 대해서 예측 처리를 행하고, 예측 화상을 생성한다. 인터 예측부(1325)는, 이 예측 처리를, 소정의 블록마다(블록을 처리 단위로서) 행한다. 즉, 인터 예측부(1325)는, 커런트 픽처의, 처리 대상인 커런트 블록의 예측 화상을 생성한다. 그때, 인터 예측부(1325)는, 화면 재배열 버퍼(1312)로부터 공급되는 입력 화상의 화상 데이터와, 프레임 메모리(1322)로부터 참조 화상으로서 공급되는 복호 화상의 화상 데이터를 사용하여, 예측 처리를 행한다. 이 복호 화상은, 커런트 픽처보다 전에 처리된 프레임의 화상(커런트 픽처가 아닌 다른 픽처)이다. 즉, 인터 예측부(1325)는, 다른 픽처의 화상을 사용하여 예측 화상을 생성하는 예측 처리(화면간 예측(인터 예측이라고도 함))를 행한다.
이 인터 예측은, 움직임 예측과 움직임 보상을 포함한다. 보다 구체적으로는, 인터 예측부(1325)는, 입력 화상과 참조 화상을 사용하여, 커런트 블록에 대하여 움직임 예측을 행하고, 움직임 벡터를 검출한다. 그리고, 인터 예측부(1325)는, 참조 화상을 사용해서, 검출된 움직임 벡터에 따라 움직임 보상 처리를 행하여, 커런트 블록의 예측 화상(인터 예측 화상 정보)을 생성한다. 이 인터 예측에는(즉, 예측 화상의 생성 방법에는), 복수의 방법(인터 예측 모드라고도 함)이 후보로서 미리 준비되어 있다. 인터 예측부(1325)는, 이 미리 준비된 복수의 인터 예측 모드에서 이러한 인터 예측을 행한다.
인터 예측부(1325)는, 후보가 되는 모든 인터 예측 모드에서 예측 화상을 생성한다. 인터 예측부(1325)는, 화면 재배열 버퍼(1312)로부터 공급되는 입력 화상과, 생성한 차분 움직임 벡터의 정보 등을 사용하여, 각 예측 화상의 비용 함수값을 평가하고, 최적의 모드를 선택한다. 인터 예측부(1325)는, 최적의 인터 예측 모드를 선택하면, 그 최적의 모드에서 생성된 예측 화상을, 예측 화상 선택부(1326)에 공급한다.
인터 예측부(1325)는, 채용된 인터 예측 모드를 나타내는 정보나, 부호화 데이터를 복호할 때에 그 인터 예측 모드에서 처리를 행하기 위해 필요한 정보 등을 가역 부호화부(1316)에 공급하고, 부호화시킨다. 필요한 정보로서는, 예를 들어, 생성된 차분 움직임 벡터의 정보나, 예측 움직임 벡터 정보로서 예측 움직임 벡터의 인덱스를 나타내는 플래그 등이 있다.
예측 화상 선택부(1326)는, 연산부(1313)나 연산부(1320)에 공급하는 예측 화상의 공급원을 선택한다. 예를 들어, 인트라 부호화의 경우, 예측 화상 선택부(1326)는, 예측 화상의 공급원으로서 인트라 예측부(1324)를 선택하고, 그 인트라 예측부(1324)로부터 공급되는 예측 화상을 연산부(1313)나 연산부(1320)에 공급한다. 또한, 예를 들어, 인터 부호화의 경우, 예측 화상 선택부(1326)는, 예측 화상의 공급원으로서 인터 예측부(1325)를 선택하고, 그 인터 예측부(1325)로부터 공급되는 예측 화상을 연산부(1313)나 연산부(1320)에 공급한다.
레이트 제어부(1327)는, 축적 버퍼(1317)에 축적된 부호화 데이터의 부호량에 기초하여, 오버플로우 또는 언더플로우가 발생하지 않도록, 양자화부(1315)의 양자화 동작의 레이트를 제어한다.
또한, 베이스 레이어 화상 부호화부(1301)는, 다른 레이어를 참조하지 않고 부호화를 행한다. 즉, 인트라 예측부(1324) 및 인터 예측부(1325)는, 다른 레이어의 부호화에 관한 정보(예를 들어, 복호 화상, 인트라 예측 모드 정보, 인터 예측 모드 정보, 및 움직임 정보 등)를 참조하지 않는다.
또한, 인터 예측부(1325)는, 인핸스먼트 레이어 화상 부호화부(1302)에 의해 요구된 예측 방향(예를 들어 L0 방향 또는 L1 방향)의 움직임 정보를 인핸스먼트 레이어 화상 부호화부(1302)에 공급한다.
<인핸스먼트 레이어 화상 부호화부>
도 106은, 도 104의 인핸스먼트 레이어 화상 부호화부(1302)의 주된 구성예를 도시하는 블록도이다. 도 106에 도시된 바와 같이, 인핸스먼트 레이어 화상 부호화부(1302)는, 도 105의 베이스 레이어 화상 부호화부(1301)와 기본적으로 마찬가지의 구성을 갖는다.
즉, 인핸스먼트 레이어 화상 부호화부(1302)는, 도 106에 도시된 바와 같이, A/D 변환부(1331), 화면 재배열 버퍼(1332), 연산부(1333), 직교 변환부(1334), 양자화부(1335), 가역 부호화부(1336), 축적 버퍼(1337), 역양자화부(1338), 및 역직교 변환부(1339)를 갖는다. 또한, 인핸스먼트 레이어 화상 부호화부(1302)는, 연산부(1340), 루프 필터(1341), 프레임 메모리(1342), 선택부(1343), 인트라 예측부(1344), 인터 예측부(1345), 예측 화상 선택부(1346), 및 레이트 제어부(1347)를 갖는다.
이러한 A/D 변환부(1331) 내지 레이트 제어부(1347)는, 도 105의 A/D 변환부(1311) 내지 레이트 제어부(1327)에 대응하고, 각각 대응하는 처리부와 마찬가지의 처리를 행한다. 단, 인핸스먼트 레이어 화상 부호화부(1302)의 각 부는, 베이스 레이어가 아니라, 인핸스먼트 레이어 화상 정보의 부호화에 관한 처리를 행한다. 따라서, A/D 변환부(1331) 내지 레이트 제어부(1347)의 처리의 설명으로서, 상술한 도 105의 A/D 변환부(1311) 내지 레이트 제어부(1327)에 관한 설명을 적용할 수 있는 데, 그 경우, 처리하는 데이터는, 베이스 레이어의 데이터가 아니라, 인핸스먼트 레이어의 데이터인 것으로 할 필요가 있다. 또한, 데이터의 입력원이나 출력처의 처리부는, 적절히 A/D 변환부(1331) 내지 레이트 제어부(1347) 중, 대응하는 처리부로 바꾸어서 읽을 필요가 있다.
단, 인터 예측부(1345)는, 베이스 레이어 화상 부호화부(1301)로부터 취득하는 움직임 정보의 예측 방향(예를 들어 L0 방향 또는 L1 방향)을 설정하고, 그 설정한 예측 방향의 베이스 레이어의 움직임 정보를, 베이스 레이어 화상 부호화부(1301)로부터 취득하여, 내장한 버퍼에 저장한다. 인터 예측부(1345)는, 이 버퍼에 저장한 베이스 레이어의 움직임 정보를 사용하여 레이어간 신택스의 예측을 행한다.
<인터 예측부>
도 107은, 도 106의 인터 예측부(1345)의 주된 구성예를 도시하는 블록도이다. 도 107에 도시된 바와 같이, 인터 예측부(1345)는, 베이스 레이어 참조 예측 방향 설정부(1371), 베이스 레이어 움직임 정보 버퍼(1372), 움직임 정보 변환부(1373), 움직임 예측부(1374), 및 움직임 보상부(1375)를 갖는다.
베이스 레이어 참조 예측 방향 설정부(1371)는, 참조하는(레이어간 신택스의 예측에서 이용하는) 베이스 레이어의 움직임 정보의 예측 방향을 설정한다. 예를 들어, 베이스 레이어 참조 예측 방향 설정부(1371)는, 베이스 레이어의, L0 방향의 움직임 정보, 또는, L1 방향의 움직임 정보 중 어느 것을 참조할지를 선택한다.
또한, 베이스 레이어 참조 예측 방향 설정부(1371)는, 이 예측 방향의 설정 내용을 나타내는 제어 정보를 생성하고, 그것을 베이스 레이어 움직임 정보 버퍼(1372) 및 움직임 정보 변환부(1373)에 공급함으로써, 이 설정을, 베이스 레이어 움직임 정보 버퍼(1372) 및 움직임 정보 변환부(1373)에 반영시킨다.
이 제어 정보는, 예를 들어, <8. 개요 3>에서 상술한 바와 같이 어떠한 정보이어도 된다. 도 107의 예에서는, 베이스 레이어 참조 예측 방향 설정부(1371)는, 베이스 레이어의 L0 방향의 움직임 정보를 참조할지를 나타내는 플래그 정보(colbasemv_from_l0_flag)를 제어 정보로서 생성하여, 베이스 레이어 움직임 정보 버퍼(1372) 및 움직임 정보 변환부(1373)에 공급한다. 또한, 베이스 레이어 참조 예측 방향 설정부(1371)는, 이 플래그 정보(colbasemv_from_l0_flag)를 가역 부호화부(1336)에 공급하여 부호화시켜, 복호측에 전송시킨다.
베이스 레이어 움직임 정보 버퍼(1372)는, 베이스 레이어 화상 부호화부(1301)로부터 베이스 레이어의 움직임 정보(베이스 레이어 움직임 정보라고도 함)를 취득하여, 저장(유지)한다. 그때, 베이스 레이어 움직임 정보 버퍼(1372)는, 베이스 레이어 참조 예측 방향 설정부(1371)의 설정에 따라, 즉, 베이스 레이어 참조 예측 방향 설정부(1371)로부터 공급된 제어 정보(플래그 정보(colbasemv_from_l0_flag))에 의해 나타나는 예측 방향의 베이스 레이어 움직임 정보를 취득한다. 이렇게 취득하는 베이스 레이어 움직임 정보의 예측 방향을 제한함으로써, 그 베이스 레이어 움직임 정보를 저장하는 베이스 레이어 움직임 정보 버퍼(1372)의 기억 용량을 저감시킬 수 있다.
움직임 정보 변환부(1373)는, 움직임 예측부(1374)가 레이어간 예측을 행하는 경우, 베이스 레이어 움직임 정보 버퍼(1372)에 저장되어 있는 베이스 레이어 움직임 정보를 판독하여 움직임 예측부(1374)에 공급한다. 그때, 움직임 정보 변환부(1373)는, 판독한 베이스 레이어 움직임 정보에 대하여 적절히 변환 처리를 행하고, 변환 후의 베이스 레이어 움직임 정보를 움직임 예측부(1374)에 공급한다.
예를 들어, 움직임 정보 변환부(1373)는, 베이스 레이어 참조 예측 방향 설정부(1371)의 설정에 따라, 즉, 베이스 레이어 참조 예측 방향 설정부(1371)로부터 공급된 제어 정보(플래그 정보(colbasemv_from_l0_flag))에 의해 나타나는 예측 방향이, 움직임 예측부(1374)의 레이어간 예측의 예측 방향과 일치하지 않는 경우, 베이스 레이어 움직임 정보의 예측 방향을 변환(예를 들어, L0 방향의 움직임 정보를 L1 방향으로 변환하거나, L1 방향의 움직임 정보를 L0 방향으로 변환하거나)한다.
또한, 예를 들어, 움직임 정보 변환부(1373)는, 베이스 레이어 움직임 정보의, 계층간에서 스케일러블한 파라미터를, 베이스 레이어 기준에서 인핸스먼트 레이어 기준으로 변환(환산)할 수도 있다.
움직임 예측부(1374)는, 후보가 되는 모든 인터 예측 모드에서 움직임 예측을 행한다. 예를 들어, 움직임 예측부(1374)는, 화면 재배열 버퍼(1332)로부터 공급되는 입력 화상, 및 프레임 메모리(1342)로부터 공급되는 참조 화상을 사용하여 움직임 예측을 행한다. 또한, 예를 들어, 움직임 예측부(1374)는, 움직임 정보 변환부(1373)로부터 공급되는 베이스 레이어 움직임 정보를 사용하여 레이어간 신택스의 예측을 행한다.
이렇게 모든 후보의 모드에서 예측을 행하면, 움직임 예측부(1374)는, 각 예측 결과에 대하여 비용 함수값을 평가하고, 그 평가 결과에 기초하여 최적의 모드를 선택한다. 움직임 예측부(1374)는, 최적의 모드로서 선택한 모드의 움직임 정보를 최적 움직임 정보로서 움직임 보상부(1375)에 공급한다. 또한, 움직임 예측부(1374)는, 최적의 모드로서 선택한 모드의 움직임 예측에 관한 정보인 최적 인터 예측 정보를 가역 부호화부(1336)에 공급하여 부호화시켜, 복호측에 전송시킨다. 이 최적 인터 예측 정보에는, 예를 들어, 최적의 모드를 나타내는 정보, 및 최적 움직임 정보 또는 최적 움직임 정보를 부호화한 정보(예를 들어 차분 움직임 정보) 등이 포함된다.
움직임 보상부(1375)는, 움직임 예측부(1374)로부터 공급되는 최적 움직임 정보와, 프레임 메모리(1342)로부터 공급되는 참조 화상을 사용하여, 움직임 보상을 행하고, 예측 화상을 생성한다. 움직임 보상부(1375)는, 생성한 예측 화상을 예측 화상 선택부(1346)에 공급한다.
<화상 부호화 처리의 흐름>
이어서, 이상과 같은 화상 부호화 장치(1300)에 의해 실행되는 각 처리의 흐름에 대하여 설명한다. 최초로, 도 108의 흐름도를 참조하여, 화상 부호화 처리의 흐름의 예를 설명한다.
화상 부호화 처리가 개시되면, 스텝 S5101에서, 화상 부호화 장치(1300)의 베이스 레이어 화상 부호화부(1301)는, 베이스 레이어의 화상 데이터를 부호화한다.
스텝 S5102에서, 인핸스먼트 레이어 화상 부호화부(1302)는, 인핸스먼트 레이어의 화상 데이터를 부호화한다.
스텝 S5103에서, 다중화부(1303)는, 스텝 S5101의 처리에 의해 생성된 베이스 레이어 화상 부호화 스트림과, 스텝 S5102의 처리에 의해 생성된 인핸스먼트 레이어 화상 부호화 스트림을(즉, 각 레이어의 비트 스트림을) 다중화하여, 1 계통의 계층 화상 부호화 스트림을 생성한다.
스텝 S5103의 처리가 종료되면, 화상 부호화 장치(1300)는 화상 부호화 처리를 종료한다. 이러한 화상 부호화 처리에 의해 1 픽처(또는 1 슬라이스)가 처리된다. 따라서, 화상 부호화 장치(1300)는, 이러한 화상 부호화 처리를 계층화된 동화상 데이터의 픽처(또는 슬라이스)마다 반복 실행한다.
<베이스 레이어 부호화 처리의 흐름>
이어서, 도 108의 스텝 S5101에서, 베이스 레이어 화상 부호화부(1301)에 의해 실행되는 베이스 레이어 부호화 처리의 흐름의 예를, 도 109의 흐름도를 참조하여 설명한다.
베이스 레이어 부호화 처리가 개시되면, 베이스 레이어 화상 부호화부(1301)의 A/D 변환부(1311)는, 스텝 S5121에서, 입력된 동화상의 각 프레임(픽처)의 화상을 A/D 변환한다.
스텝 S5122에서, 화면 재배열 버퍼(1312)는, 스텝 S5121에서 A/D 변환된 화상을 기억하고, 각 픽처의 표시하는 순서에서 부호화하는 순서로의 재배열을 행한다.
스텝 S5123에서, 인트라 예측부(1324)는, 인트라 예측 모드의 인트라 예측 처리를 행한다.
스텝 S5124에서, 인터 예측부(1325)는, 인터 예측 모드에서의 움직임 예측이나 움직임 보상 등을 행하는 인터 예측 처리를 행한다. 즉, 인터 예측부(1325)는, 모든 후보가 되는 모드에 대하여 움직임 예측을 행하고, 그 예측 결과에 대해 비용 함수값을 산출하여 평가하고, 그 평가 결과에 기초하여 최적의 인터 예측 모드를 선택한다. 그리고, 인터 예측부(1325)는, 그 최적의 인터 예측 모드에서 움직임 보상을 행하고, 예측 화상을 생성한다. 또한, 베이스 레이어 화상 부호화부(1301)는, 다른 레이어의 정보를 참조하지 않으므로, 인터 예측부(1325)는, 레이어간 예측을 행하지 않는다.
스텝 S5125에서, 예측 화상 선택부(1326)는, 비용 함수값 등에 기초하여 예측 화상을 선택한다. 즉, 예측 화상 선택부(1326)는, 스텝 S5123의 인트라 예측에 의해 생성된 예측 화상과, 스텝 S5124의 인터 예측에 의해 생성된 예측 화상 중 어느 한쪽을 선택한다.
스텝 S5126에서, 연산부(1313)는, 스텝 S5122의 처리에 의해 프레임순이 재배열된 입력 화상과, 스텝 S5125의 처리에 의해 선택된 예측 화상의 차분을 연산한다. 즉, 연산부(1313)는, 입력 화상과 예측 화상의 차분 화상의 화상 데이터를 생성한다. 이와 같이 하여 구해진 차분 화상의 화상 데이터는, 원래의 화상 데이터에 비해 데이터량이 저감된다. 따라서, 화상을 그대로 부호화하는 경우에 비해 데이터량을 압축할 수 있다.
스텝 S5127에서, 직교 변환부(1314)는, 스텝 S5128의 처리에 의해 생성된 차분 화상의 화상 데이터를 직교 변환한다.
스텝 S5128에서, 양자화부(1315)는, 레이트 제어부(1327)에 의해 산출된 양자화 파라미터를 사용하여, 스텝 S5127의 처리에 의해 얻어진 직교 변환 계수를 양자화한다.
스텝 S5129에서, 역양자화부(1318)는, 스텝 S5128의 처리에 의해 생성된 양자화된 계수(양자화 계수라고도 함)를 양자화부(1315)의 특성에 대응하는 특성으로 역양자화한다.
스텝 S5130에서, 역직교 변환부(1319)는, 스텝 S5129의 처리에 의해 얻어진 직교 변환 계수를 역직교 변환한다.
스텝 S5131에서, 연산부(1320)는, 스텝 S5130의 처리에 의해 복원된 차분 화상에, 스텝 S5125의 처리에 의해 선택된 예측 화상을 가산함으로써, 재구성 화상의 화상 데이터를 생성한다.
스텝 S5132에서 루프 필터(1321)는, 스텝 S5131의 처리에 의해 생성된 재구성 화상의 화상 데이터에 루프 필터 처리를 행한다. 이에 의해, 재구성 화상의 블록 왜곡 등이 제거된다.
스텝 S5133에서, 프레임 메모리(1322)는, 스텝 S5132의 처리에 의해 얻어진 복호 화상이나 스텝 S5131의 처리에 의해 얻어진 재구성 화상 등의 데이터를 기억한다.
스텝 S5134에서, 가역 부호화부(1316)는, 스텝 S5128의 처리에 의해 얻어진, 양자화된 계수를 부호화한다. 즉, 차분 화상에 대응하는 데이터에 대하여 가변장 부호화나 산술 부호화 등의 가역 부호화가 행하여진다.
또한, 이때, 가역 부호화부(1316)는, 스텝 S5125의 처리에 의해 선택된 예측 화상의 예측 모드에 관한 정보를 부호화하여, 차분 화상을 부호화하여 얻어지는 부호화 데이터에 부가한다. 즉, 가역 부호화부(1316)는, 인트라 예측부(1324)로부터 공급되는 최적 인트라 예측 모드 정보, 또는, 인터 예측부(1325)로부터 공급되는 최적 인터 예측 정보 등도 부호화하여, 부호화 데이터에 부가한다.
또한, 가역 부호화부(1316)는, 각종 널 유닛 등의 신택스 요소도 설정하고, 부호화하여, 부호화 데이터에 부가한다.
스텝 S5135에서 축적 버퍼(1317)는, 스텝 S5134의 처리에 의해 얻어진 부호화 데이터를 축적한다. 축적 버퍼(1317)에 축적된 부호화 데이터는, 적절히 판독되어, 전송로나 기록 매체를 통해 복호측에 전송된다.
스텝 S5136에서 레이트 제어부(1327)는, 스텝 S5135의 처리에 의해 축적 버퍼(1317)에 축적된 부호화 데이터의 부호량(발생 부호량)에 기초하여, 오버플로우 또는 언더플로우가 발생하지 않도록, 양자화부(1315)의 양자화 동작의 레이트를 제어한다. 또한, 레이트 제어부(1327)는, 양자화 파라미터에 관한 정보를 양자화부(1315)에 공급한다.
스텝 S5136의 처리가 종료되면, 베이스 레이어 부호화 처리가 종료되고, 처리는 도 108로 복귀된다.
<인핸스먼트 레이어 부호화 처리의 흐름>
이어서, 도 108의 스텝 S5102에서, 인핸스먼트 레이어 화상 부호화부(1302)에 의해 실행되는 인핸스먼트 레이어 부호화 처리의 흐름의 예를, 도 110의 흐름도를 참조하여 설명한다.
인핸스먼트 레이어 부호화 처리가 개시되면, 인핸스먼트 레이어 화상 부호화부(1302)의 베이스 레이어 참조 예측 방향 설정부(1371)는, 스텝 S5151에서, 참조하는 베이스 레이어 움직임 정보의 예측 방향을 설정한다.
스텝 S5152에서, 베이스 레이어 참조 예측 방향 설정부(1371)는, 스텝 S5151에서 행한 설정의 내용을 나타내는 제어 정보를 가역 부호화부(1336)에 공급하여 부호화시켜, 복호측에 전송시킨다.
스텝 S5153에서, 베이스 레이어 움직임 정보 버퍼(1372)는, 스텝 S5151에서 설정된 예측 방향의 베이스 레이어 움직임 정보를, 베이스 레이어 화상 부호화부(1301)로부터 취득하여 유지한다.
스텝 S5154 내지 스텝 S5169의 각 처리는, 도 109의 스텝 S5121 내지 스텝 S5136의 각 처리에 대응하고, 그것들의 처리와 기본적으로 마찬가지로 실행된다.
단, 스텝 S5157의 인터 예측 처리에서는, 후보 모드에 레이어간 예측도 포함된다. 즉, 스텝 S5157에서, 움직임 예측부(1374)는, 후보 모드의 하나로서, 움직임 정보 변환부(1373)를 통해 베이스 레이어 움직임 정보 버퍼(1372)로부터 판독한 베이스 레이어 움직임 정보를 사용하여, 레이어간 신택스의 예측을 행한다. 움직임 예측부(1374)는, 그 레이어간 신택스의 예측도 포함한 모든 후보 모드 중에서 최적의 인터 예측 모드를 선택하고, 그 예측 화상을 생성한다.
스텝 S5169의 처리가 종료되면, 인핸스먼트 레이어 부호화 처리가 종료되고, 처리는 도 108로 복귀된다.
이상과 같이 각 처리를 실행함으로써, 인핸스먼트 레이어 화상 부호화부(1302)는, 베이스 레이어의 모든 예측 방향(예를 들어 L0 방향 및 L1 방향)의 움직임 정보를 취득하는 경우보다, 베이스 레이어의 움직임 정보를 유지하는 데 필요한 버퍼의 용량을 저감할 수 있다. 즉, 화상 부호화 장치(1300)는, 부호화에 필요한 기억 용량의 증대를 억제할 수 있다.
또한, 화상 부호화 장치(1300)는, 베이스 레이어 움직임 정보의 예측 방향의 설정을 나타내는 제어 정보를 복호측에 전송하므로, 복호측에서도, 부호화측과 마찬가지로, 베이스 레이어 움직임 정보를 유지하는 데 필요한 버퍼의 용량을 저감할 수 있다. 즉, 복호에 필요한 기억 용량의 증대를 억제할 수 있다.
<베이스 레이어 움직임 정보 참조 처리의 흐름>
상술한 바와 같이, 도 110의 스텝 S5157의 인터 예측 처리에서는, 레이어간 예측을 위해서, 베이스 레이어 움직임 정보 버퍼(1372)에 유지되어 있는 베이스 레이어 움직임 정보가 판독된다. 이 베이스 레이어 움직임 정보를 판독하는 베이스 레이어 움직임 정보 참조 처리의 흐름의 예를, 도 111의 흐름도를 참조하여 설명한다.
베이스 레이어 움직임 정보 참조 처리가 개시되면, 인터 예측부(1345)의 움직임 정보 변환부(1373)는, 스텝 S5181에서, 참조하는 베이스 레이어 움직임 정보를, 베이스 레이어 움직임 정보 버퍼(1372)로부터 판독한다.
스텝 S5182에서, 움직임 정보 변환부(1373)는, 레이어간 예측의 예측 방향과, 베이스 레이어 참조 예측 방향 설정부(1371)에 의해 설정된 예측 방향(즉, 스텝 S5181에서 판독된 움직임 정보의 예측 방향)이 일치하는지 여부를 판정한다. 일치하지 않는다고 판정되었을 경우, 처리는 스텝 S5183으로 진행된다.
스텝 S5183에서, 움직임 정보 변환부(1373)는, 스텝 S5181에서 판독된 베이스 레이어 움직임 정보를 반전한다. 예를 들어, 레이어간 예측의 예측 방향이 L0 방향이며, 스텝 S5181에서 판독된 베이스 레이어 움직임 정보의 예측 방향이 L1 방향일 경우, 움직임 정보 변환부(1373)는, 베이스 레이어 움직임 정보의 예측 방향을 L0 방향으로 변환한다. 또한, 예를 들어, 레이어간 예측의 예측 방향이 L1 방향이며, 스텝 S5181에서 판독된 베이스 레이어 움직임 정보의 예측 방향이 L0 방향일 경우, 움직임 정보 변환부(1373)는, 베이스 레이어 움직임 정보의 예측 방향을 L1 방향으로 변환한다.
스텝 S5183의 처리가 종료되면, 처리는 스텝 S5184로 진행된다.
또한, 스텝 S5182에서 예측 방향이 일치한다고 판정되었을 경우, 처리는 스텝 S5184로 진행된다. 즉, 예측 방향의 변환 처리가 생략된다.
스텝 S5184에서, 움직임 예측부(1374)는, 이와 같이 판독되어 적절히 변환 처리된 베이스 레이어 움직임 정보를 사용하여 인핸스먼트 레이어의 움직임 예측을 행한다.
스텝 S5184의 처리가 종료되면, 베이스 레이어 움직임 정보 참조 처리가 종료된다.
이상과 같이, 인터 예측부(1345)는, 베이스 레이어 움직임 정보 버퍼(1372)로부터 판독한 베이스 레이어 움직임 정보의 예측 방향을, 레이어간 예측의 예측 방향에 맞출 수 있다. 따라서, 베이스 레이어 움직임 정보 버퍼(1372)에는, 한쪽의 예측 방향의 베이스 레이어 움직임 정보를 저장하면 된다. 따라서, 베이스 레이어 움직임 정보를 유지하는 데 필요한 버퍼의 용량을 저감할 수 있다. 즉, 부호화에 필요한 기억 용량의 증대를 억제할 수 있다.
또한, 이상과 같은 베이스 레이어 움직임 정보 참조 처리에 있어서, 움직임 정보 변환부(1373)가 베이스 레이어 움직임 정보 버퍼(1372)로부터 판독한 베이스 레이어 움직임 정보에 대하여 스케일러블한 파라미터를 베이스 레이어 기준에서 인핸스먼트 레이어 기준으로 변환하는 변환 처리를 행하도록 해도 된다. 이 변환 처리는, 스텝 S5182 전에 행하여지도록 해도 되고, 스텝 S5184 전에 행하여지도록 해도 된다.
<10. 제8 실시 형태>
<화상 복호 장치>
이어서, 이상과 같이 부호화된 부호화 데이터의 복호에 대하여 설명한다. 도 112는, 본 기술을 적용한 화상 처리 장치의 일 형태인, 도 104의 화상 부호화 장치(1300)에 대응하는 화상 복호 장치의 주된 구성예를 도시하는 블록도이다.
도 112에 나타내는 화상 복호 장치(1400)는, 화상 부호화 장치(1300)가 생성한 부호화 데이터를, 그 부호화 방법에 대응하는 복호 방법으로 복호한다(즉, 계층 부호화된 부호화 데이터를 계층 복호함).
도 112에 도시된 바와 같이, 화상 복호 장치(1400)는, 역 다중화부(1401), 베이스 레이어 화상 복호부(1402), 및 인핸스먼트 레이어 화상 복호부(1403)를 갖는다.
역 다중화부(1401)는, 부호화측으로부터 전송된, 베이스 레이어 화상 부호화 스트림과 인핸스먼트 레이어 화상 부호화 스트림이 다중화된 계층 화상 부호화 스트림을 수취하고, 그것을 역 다중화하여, 베이스 레이어 화상 부호화 스트림과, 인핸스먼트 레이어 화상 부호화 스트림을 추출한다. 베이스 레이어 화상 복호부(1402)는, 역 다중화부(1401)에 의해 추출된 베이스 레이어 화상 부호화 스트림을 복호하여, 베이스 레이어 화상을 얻는다. 인핸스먼트 레이어 화상 복호부(1403)는, 역 다중화부(1401)에 의해 추출된 인핸스먼트 레이어 화상 부호화 스트림을 복호하여, 인핸스먼트 레이어 화상을 얻는다.
베이스 레이어 화상 복호부(1402)는, 다른 레이어를 참조하지 않고 베이스 레이어 화상 부호화 스트림을 복호한다. 이에 반해 인핸스먼트 레이어 화상 복호부(1403)는, 인핸스먼트 레이어 화상 부호화 스트림의 복호에 있어서, 베이스 레이어를 참조하여 레이어간 예측을 행한다. 예를 들어, 인핸스먼트 레이어 화상 복호부(1403)는, 베이스 레이어 화상 복호부(1402)가 베이스 레이어 화상 부호화 스트림을 복호할 때에 복원된 베이스 레이어의 움직임 정보를 취득하고, 그 베이스 레이어의 움직임 정보를 사용하여 레이어간 신택스의 예측(Inter-layer syntax prediction)을 행한다.
그때, 인핸스먼트 레이어 화상 복호부(1403)는, 부호화측으로부터 전송된 제어 정보(즉, 부호화측에서(부호화 시에) 행하여진 설정)에 의해 지정되는 예측 방향의 베이스 레이어 움직임 정보만을 취득하여, 버퍼에 저장한다. 그리고, 인핸스먼트 레이어 화상 복호부(1403)는, 그 버퍼에 저장되어 있는 베이스 레이어 움직임 정보(즉, 부호화 시에 사용된 것과 동일한 예측 방향의 움직임 정보)를 사용하여 레이어간 예측을 행한다.
<베이스 레이어 화상 복호부>
도 113은, 도 112의 베이스 레이어 화상 복호부(1402)의 주된 구성예를 도시하는 블록도이다. 도 113에 도시된 바와 같이 베이스 레이어 화상 복호부(1402)는, 축적 버퍼(1411), 가역 복호부(1412), 역양자화부(1413), 역직교 변환부(1414), 연산부(1415), 루프 필터(1416), 화면 재배열 버퍼(1417), 및 D/A 변환부(1418)를 갖는다. 또한, 베이스 레이어 화상 복호부(1402)는, 프레임 메모리(1419), 선택부(1420), 인트라 예측부(1421), 인터 예측부(1422), 및 예측 화상 선택부(1423)를 갖는다.
축적 버퍼(1411)는, 전송되어 온 부호화 데이터를 수취하는 수취부이기도 하다. 축적 버퍼(1411)는, 전송되어 온 부호화 데이터를 수취하여 축적하고, 소정의 타이밍에 있어서 그 부호화 데이터를 가역 복호부(1412)에 공급한다. 부호화 데이터에는, 예측 모드 정보 등의 복호에 필요한 정보가 부가되어 있다. 가역 복호부(1412)는, 축적 버퍼(1411)로부터 공급된, 가역 부호화부(1316)에 의해 부호화된 정보를, 그 부호화 방식에 대응하는 복호 방식으로 복호한다. 가역 복호부(1412)는, 복호하여 얻어진 차분 화상의 양자화된 계수 데이터를, 역양자화부(1413)에 공급한다.
또한, 가역 복호부(1412)는, 최적의 예측 모드에 인트라 예측 모드가 선택되었는지 인터 예측 모드가 선택되었는지를 판정하고, 그 최적의 예측 모드에 관한 정보를, 인트라 예측부(1421) 및 인터 예측부(1422) 중, 선택되었다고 판정한 모드쪽에 공급한다. 즉, 예를 들어, 부호화측에서 최적의 예측 모드로서 인트라 예측 모드가 선택된 경우, 그 최적의 예측 모드에 관한 정보가 인트라 예측부(1421)에 공급된다. 또한, 예를 들어, 부호화측에서 최적의 예측 모드로서 인터 예측 모드가 선택된 경우, 그 최적의 예측 모드에 관한 정보가 인터 예측부(1422)에 공급된다.
또한, 가역 복호부(1412)는 예를 들어, 양자화 행렬이나 양자화 파라미터 등의, 역양자화에 필요한 정보를 역양자화부(1413)에 공급한다.
역양자화부(1413)는, 가역 복호부(1412)에 의해 복호되어 얻어진 양자화된 계수 데이터를, 양자화부(1315)의 양자화 방식에 대응하는 방식으로 역양자화한다. 또한, 이 역양자화부(1413)는, 역양자화부(1318)와 마찬가지의 처리부이다. 역양자화부(1413)는, 얻어진 계수 데이터를 역직교 변환부(1414)에 공급한다.
역직교 변환부(1414)는, 역양자화부(1413)로부터 공급되는 직교 변환 계수를, 필요에 따라, 직교 변환부(1314)의 직교 변환 방식에 대응하는 방식으로 역직교 변환한다. 또한, 이 역직교 변환부(1414)는, 역직교 변환부(1319)와 마찬가지의 처리부이다.
이 역직교 변환 처리에 의해 차분 화상의 화상 데이터가 복원된다. 이 복원된 차분 화상의 화상 데이터는, 화상 부호화 장치에서 직교 변환되기 전의 차분 화상의 화상 데이터에 대응한다. 이하에서는, 이, 역직교 변환부(1414)의 역직교 변환 처리에 의해 얻어진, 복원된 차분 화상의 화상 데이터를 복호 잔차 데이터라고도 칭한다. 역직교 변환부(1414)는, 이 복호 잔차 데이터를 연산부(1415)에 공급한다. 또한, 연산부(1415)에는, 예측 화상 선택부(1423)를 통해 인트라 예측부(1421) 또는 인터 예측부(1422)로부터 예측 화상의 화상 데이터가 공급된다.
연산부(1415)는, 이 복호 잔차 데이터와 예측 화상의 화상 데이터를 사용하여, 차분 화상과 예측 화상을 가산한 재구성 화상의 화상 데이터를 얻는다. 이 재구성 화상은, 연산부(1313)에 의해 예측 화상이 감산되기 전의 입력 화상에 대응한다. 연산부(1415)는, 그 재구성 화상을 루프 필터(1416)에 공급한다.
루프 필터(1416)는, 공급된 재구성 화상에 대하여 디블록 필터 처리나 적응 루프 필터 처리 등을 포함하는 루프 필터 처리를 적절히 실시하여 복호 화상을 생성한다. 예를 들어, 루프 필터(1416)는, 재구성 화상에 대하여 디블록 필터 처리를 행함으로써, 블록 왜곡을 제거한다. 또한, 예를 들어, 루프 필터(1416)는, 그 디블록 필터 처리 결과(블록 왜곡의 제거가 행하여진 재구성 화상)에 대하여 위너 필터(Wiener Filter)를 사용해서 루프 필터 처리를 행함으로써 화질 개선을 행한다.
또한, 루프 필터(1416)가 행하는 필터 처리의 종류는 임의이며, 상술한 것 이외의 필터 처리를 행해도 된다. 또한, 루프 필터(1416)가 부호화측으로부터 공급된 필터 계수를 사용하여 필터 처리를 행하도록 해도 된다. 또한, 루프 필터(1416)가, 이와 같은 필터 처리를 생략하여, 입력된 데이터를 필터 처리하지 않고 출력할 수도 있다.
루프 필터(1416)는, 필터 처리 결과인 복호 화상(또는 재구성 화상)을 화면 재배열 버퍼(1417) 및 프레임 메모리(1419)에 공급한다.
화면 재배열 버퍼(1417)는, 복호 화상에 대하여 프레임의 순서의 재배열을 행한다. 즉, 화면 재배열 버퍼(1417)는, 화면 재배열 버퍼(1312)에 의해 부호화순으로 재배열된 각 프레임의 화상을, 원래의 표시순으로 재배열한다. 즉, 화면 재배열 버퍼(1417)는, 부호화순으로 공급되는 각 프레임의 복호 화상의 화상 데이터를, 그 순서대로 기억하고, 부호화순으로 기억한 각 프레임의 복호 화상의 화상 데이터를, 표시순으로 판독하여 D/A 변환부(1418)에 공급한다. D/A 변환부(1418)는, 화면 재배열 버퍼(1417)로부터 공급된 각 프레임의 복호 화상(디지털 데이터)을 D/A 변환하여, 아날로그 데이터로서, 도시하지 않은 디스플레이에 출력해서 표시시킨다.
프레임 메모리(1419)는, 공급되는 복호 화상을 기억하고, 소정의 타이밍에 있어서, 또는, 인트라 예측부(1421)나 인터 예측부(1422) 등의 외부의 요구에 기초하여, 기억하고 있는 복호 화상을 참조 화상으로서 선택부(1420)를 통해 인트라 예측부(1421)나 인터 예측부(1422)에 공급한다.
인트라 예측부(1421)에는, 인트라 예측 모드 정보 등이 가역 복호부(1412)로부터 적절히 공급된다. 인트라 예측부(1421)는, 인트라 예측부(1324)에서 사용된 인트라 예측 모드(최적 인트라 예측 모드)에서 인트라 예측을 행하고, 예측 화상을 생성한다. 그때, 인트라 예측부(1421)는, 선택부(1420)를 통해 프레임 메모리(1419)로부터 공급되는 재구성 화상의 화상 데이터를 사용하여 인트라 예측을 행한다. 즉, 인트라 예측부(1421)는, 이 재구성 화상을 참조 화상(주변 화소)으로서 이용한다. 인트라 예측부(1421)는, 생성한 예측 화상을 예측 화상 선택부(1423)에 공급한다.
인터 예측부(1422)에는, 최적 예측 모드 정보나 움직임 정보 등이 가역 복호부(1412)로부터 적절히 공급된다. 인터 예측부(1422)는, 가역 복호부(1412)로부터 취득된 최적 예측 모드 정보가 나타내는 인터 예측 모드(최적 인터 예측 모드)에서, 프레임 메모리(1419)로부터 취득한 복호 화상(참조 화상)을 사용하여 인터 예측을 행하고, 예측 화상을 생성한다.
예측 화상 선택부(1423)는, 인트라 예측부(1421)로부터 공급되는 예측 화상 또는 인터 예측부(1422)로부터 공급되는 예측 화상을, 연산부(1415)에 공급한다. 그리고, 연산부(1415)에서는, 그 예측 화상과 역직교 변환부(1414)로부터의 복호 잔차 데이터(차분 화상 정보)가 가산되어 재구성 화상이 얻어진다.
또한, 베이스 레이어 화상 복호부(1402)는, 다른 레이어를 참조하지 않고 복호를 행한다. 즉, 인트라 예측부(1421) 및 인터 예측부(1422)는, 다른 레이어의 부호화에 관한 정보(예를 들어, 복호 화상, 인트라 예측 모드 정보, 인터 예측 모드 정보, 및 움직임 정보 등)를 참조하지 않는다.
또한, 인터 예측부(1422)는, 인핸스먼트 레이어 화상 복호부(1403)에 의해 요구된 예측 방향(예를 들어 L0 방향 또는 L1 방향)의 움직임 정보를 인핸스먼트 레이어 화상 복호부(1403)에 공급한다.
<인핸스먼트 레이어 화상 복호부>
도 114는, 도 112의 인핸스먼트 레이어 화상 복호부(1403)의 주된 구성예를 도시하는 블록도이다. 도 114에 도시된 바와 같이, 인핸스먼트 레이어 화상 복호부(1403)는, 도 113의 베이스 레이어 화상 복호부(1402)와 기본적으로 마찬가지의 구성을 갖는다.
즉, 인핸스먼트 레이어 화상 복호부(1403)는, 도 114에 도시된 바와 같이, 축적 버퍼(1431), 가역 복호부(1432), 역양자화부(1433), 역직교 변환부(1434), 연산부(1435), 루프 필터(1436), 화면 재배열 버퍼(1437), 및 D/A 변환부(1438)를 갖는다. 또한, 인핸스먼트 레이어 화상 복호부(1403)는, 프레임 메모리(1439), 선택부(1440), 인트라 예측부(1441), 인터 예측부(1442), 및 예측 화상 선택부(1443)를 갖는다.
이 축적 버퍼(1431) 내지 예측 화상 선택부(1443)는, 도 113의 축적 버퍼(1411) 내지 예측 화상 선택부(1423)에 대응하고, 각각 대응하는 처리부와 마찬가지의 처리를 행한다. 단, 인핸스먼트 레이어 화상 복호부(1403)의 각 부는, 베이스 레이어가 아니라, 인핸스먼트 레이어 화상 정보의 부호화에 관한 처리를 행한다. 따라서, 축적 버퍼(1431) 내지 예측 화상 선택부(1443)의 처리의 설명으로서, 상술한 도 113의 축적 버퍼(1411) 내지 예측 화상 선택부(1423)에 관한 설명을 적용할 수 있는 데, 그 경우, 처리하는 데이터는, 베이스 레이어의 데이터가 아니라, 인핸스먼트 레이어의 데이터인 것으로 할 필요가 있다. 또한, 데이터의 입력원이나 출력처의 처리부는, 적절히, 인핸스먼트 레이어 화상 복호부(1403)의, 대응하는 처리부로 바꾸어 읽을 필요가 있다.
단, 가역 복호부(1432)는, 예를 들어, 슬라이스 헤더에 포함되는, 부호화측으로부터 공급된, 베이스 레이어 화상 복호부(1402)로부터 취득하는 베이스 레이어 움직임 정보의 예측 방향의 제어 정보(예를 들어, 베이스 레이어의 L0 방향의 움직임 정보를 보존할 것인지 여부를 나타내는 플래그 정보(colbasemv_from_l0_flag)) 등을, 인터 예측부(1442)에 공급한다.
인터 예측부(1442)는, 그 제어 정보에 의해 지정되는 예측 방향의 베이스 레이어 움직임 정보를, 베이스 레이어 화상 복호부(1402)로부터 취득하여, 내장한 버퍼에 저장한다. 인터 예측부(1442)는, 레이어간 신택스의 예측을 행하는 경우, 이 버퍼에 저장한 베이스 레이어의 움직임 정보를 사용한다.
<인터 예측부>
도 115는, 도 114의 인터 예측부(1442)의 주된 구성예를 도시하는 블록도이다. 도 115에 도시된 바와 같이, 인터 예측부(1442)는, 베이스 레이어 움직임 정보 버퍼(1471), 움직임 정보 변환부(1472), 및 움직임 보상부(1473)를 갖는다.
베이스 레이어 움직임 정보 버퍼(1471)는, 가역 복호부(1432)로부터 공급되는 제어 정보(플래그 정보(colbasemv_from_l0_flag))를 취득한다. 베이스 레이어 움직임 정보 버퍼(1471)는, 그 제어 정보에 의해 나타나는 예측 방향의 베이스 레이어 움직임 정보를 취득하여 저장한다. 즉, 베이스 레이어 움직임 정보 버퍼(1471)는, 부호화 시와 동일한 예측 방향의 베이스 레이어 움직임 정보를 취득한다. 이렇게 취득하는 베이스 레이어 움직임 정보의 예측 방향을 제한함으로써, 그 베이스 레이어 움직임 정보를 저장하는 베이스 레이어 움직임 정보 버퍼(1471)의 기억 용량을 저감시킬 수 있다.
움직임 정보 변환부(1472)는, 가역 복호부(1432)로부터 공급되는 제어 정보(플래그 정보(colbasemv_from_l0_flag))를 취득한다. 또한, 움직임 정보 변환부(1472)는, 움직임 보상부(1473)가 레이어간 예측에 의해 움직임 정보를 재구축할 경우, 베이스 레이어 움직임 정보 버퍼(1471)에 저장되어 있는 베이스 레이어 움직임 정보를 판독하여 움직임 보상부(1473)에 공급한다. 그때, 움직임 정보 변환부(1472)는, 판독한 베이스 레이어 움직임 정보에 대하여 적절히 변환 처리를 행하고, 변환 후의 베이스 레이어 움직임 정보를 움직임 보상부(1473)에 공급한다.
예를 들어, 움직임 정보 변환부(1472)는, 가역 복호부(1432)로부터 공급되는 제어 정보(플래그 정보(colbasemv_from_l0_flag))에 의해 나타나는 예측 방향이, 움직임 보상부(1473)의 레이어간 예측의 예측 방향과 일치하지 않는 경우, 베이스 레이어 움직임 정보의 예측 방향을 변환(예를 들어, L0 방향의 움직임 정보를 L1 방향으로 변환하거나, L1 방향의 움직임 정보를 L0 방향으로 변환하거나)한다.
또한, 예를 들어, 움직임 정보 변환부(1472)는, 베이스 레이어 움직임 정보의, 계층간에서 스케일러블한 파라미터를, 베이스 레이어 기준에서 인핸스먼트 레이어 기준으로 변환(환산)할 수도 있다.
움직임 보상부(1473)는, 가역 복호부(1432)로부터 공급되는 최적 인터 예측 정보에 의해 나타나는 최적의 인터 예측 모드(부호화 시에 채용된 인터 예측 모드)에서 움직임 보상을 행하고, 예측 화상을 생성한다. 예를 들어, 움직임 보상부(1473)는, 가역 복호부(1432)로부터 공급되는 최적 인터 예측 정보에 포함되는 부호화된 움직임 정보(예를 들어 차분 움직임 정보 등)를 복호하여 커런트 블록의 움직임 정보를 재구축한다. 그리고, 움직임 보상부(1473)는, 재구축한 움직임 정보에 대응하는 프레임 메모리(1439)로부터 참조 화상을 취득하여, 예측 화상을 생성한다. 움직임 보상부(1473)는, 생성한 예측 화상을, 예측 화상 선택부(1443)에 공급한다.
또한, 예를 들어, 최적의 인터 예측 모드가 레이어간 신택스의 예측일 경우, 움직임 보상부(1473)는, 움직임 정보 변환부(1472)로부터 공급되는 베이스 레이어 움직임 정보를 사용하여 커런트 블록의 움직임 정보를 재구축하고, 예측 화상을 생성한다.
<화상 복호 처리의 흐름>
이어서, 이상과 같은 화상 복호 장치(1400)에 의해 실행되는 각 처리의 흐름에 대하여 설명한다. 최초로, 도 116의 흐름도를 참조하여, 화상 복호 처리의 흐름의 예를 설명한다.
화상 복호 처리가 개시되면, 스텝 S5201에서, 화상 복호 장치(1400)의 역 다중화부(1401)는, 부호화측으로부터 전송되는 계층 화상 부호화 스트림을 레이어마다 역 다중화한다.
스텝 S5202에서, 베이스 레이어 화상 복호부(1402)는, 스텝 S5201의 처리에 의해 추출된 베이스 레이어 화상 부호화 스트림을 복호한다. 베이스 레이어 화상 복호부(1402)는, 이 복호에 의해 생성된 베이스 레이어 화상의 데이터를 출력한다.
스텝 S5203에서, 인핸스먼트 레이어 화상 복호부(1403)는, 스텝 S5201의 처리에 의해 추출된 인핸스먼트 레이어 화상 부호화 스트림을 복호한다. 인핸스먼트 레이어 화상 복호부(1403)는, 이 복호에 의해 생성된 인핸스먼트 레이어 화상의 데이터를 출력한다.
스텝 S5203의 처리가 종료되면, 화상 복호 장치(1400)는, 화상 복호 처리를 종료한다. 이러한 화상 복호 처리에 의해 1 픽처(또는 1 슬라이스)가 처리된다. 따라서, 화상 복호 장치(1400)는, 이러한 화상 복호 처리를 계층화된 동화상 데이터의 픽처(또는 슬라이스)마다 반복 실행한다.
<베이스 레이어 복호 처리의 흐름>
이어서, 도 116의 스텝 S5202에서, 베이스 레이어 화상 복호부(1402)에 의해 실행되는 베이스 레이어 복호 처리의 흐름의 예를, 도 117의 흐름도를 참조하여 설명한다.
베이스 레이어 복호 처리가 개시되면, 베이스 레이어 화상 복호부(1402)의 축적 버퍼(1411)는, 스텝 S5221에서, 전송되어 온 비트 스트림(부호화 데이터)을 축적한다. 스텝 S5222에서, 가역 복호부(1412)는, 축적 버퍼(1411)로부터 공급되는 비트 스트림(부호화 데이터)을 복호한다. 즉, 가역 부호화부(1316)에 의해 부호화된 I 픽처, P 픽처, 및 B 픽처 등의 화상 데이터가 복호된다. 이때, 헤더 정보 등의 비트 스트림에 포함된 화상 데이터 이외의 각종 정보도 복호된다.
스텝 S5223에서, 역양자화부(1413)는, 스텝 S5222의 처리에 의해 얻어진, 양자화된 계수를 역양자화한다.
스텝 S5224에서, 역직교 변환부(1414)는, 스텝 S5223에서 역양자화된 계수를 역직교 변환한다.
스텝 S5225에서, 인트라 예측부(1421) 또는 인터 예측부(1422)는, 예측 화상을 생성한다. 즉, 가역 복호부(1412)에서 판정된, 부호화 시에 적용된 예측 모드에서 움직임 보상이 행하여진다. 보다 구체적으로는, 예를 들어, 부호화 시에 인트라 예측이 적용된 경우, 인트라 예측부(1421)가 부호화 시에 최적으로 된 인트라 예측 모드에서 예측 화상을 생성한다. 또한, 예를 들어, 부호화 시에 인터 예측이 적용된 경우, 인터 예측부(1422)가, 부호화 시에 최적으로 된 인터 예측 모드에서 예측 화상을 생성한다.
스텝 S5226에서, 연산부(1415)는, 스텝 S5224에서 역직교 변환되어 얻어진 차분 화상에, 스텝 S5225에서 생성된 예측 화상을 가산한다. 이에 의해 재구성 화상의 화상 데이터가 얻어진다.
스텝 S5227에서, 루프 필터(1416)는, 스텝 S5226의 처리에 의해 얻어진 재구성 화상의 화상 데이터에 대하여 디블록 필터 처리나 적응 루프 필터 처리 등을 포함하는 루프 필터 처리를 적절히 행한다.
스텝 S5228에서, 화면 재배열 버퍼(1417)는, 스텝 S5227에서 필터 처리된 재구성 화상의 각 프레임의 재배열을 행한다. 즉, 부호화 시에 재배열된 프레임의 순서가, 원래의 표시의 순서로 재배열된다.
스텝 S5229에서, D/A 변환부(1418)는, 스텝 S5228에서 프레임의 순서가 재배열된 화상을 D/A 변환한다. 이 화상이 도시하지 않은 디스플레이에 출력되어, 화상이 표시된다.
스텝 S5230에서, 프레임 메모리(1419)는, 스텝 S5227의 처리에 의해 얻어진 복호 화상이나 스텝 S5226의 처리에 의해 얻어진 재구성 화상 등의 데이터를 기억한다.
스텝 S5230의 처리가 종료되면, 베이스 레이어 복호 처리가 종료되고, 처리는 도 116으로 복귀된다.
<인핸스먼트 레이어 복호 처리의 흐름>
이어서, 도 116의 스텝 S5203에서, 인핸스먼트 레이어 화상 복호부(1403)에 의해 실행되는 인핸스먼트 레이어 복호 처리의 흐름의 예를, 도 118의 흐름도를 참조하여 설명한다.
인핸스먼트 레이어 복호 처리가 개시되면, 인핸스먼트 레이어 화상 복호부(1403)의 인터 예측부(1422)는, 스텝 S5251에서, 가역 복호부(1412)를 통해, 부호화측으로부터 전송된 제어 정보(플래그 정보(colbasemv_from_l0_flag))를 취득한다.
스텝 S5252에서, 인터 예측부(1422)는, 스텝 S5251에서 취득된 제어 정보에 의해 지정되는 예측 방향의 베이스 레이어 움직임 정보를, 베이스 레이어 화상 복호부(1402)로부터 취득하여, 버퍼에 저장한다.
스텝 S5253 내지 스텝 S5262의 각 처리는, 도 117의 스텝 S5221 내지 스텝 S5230의 각 처리에 대응하고, 그것들의 처리와 기본적으로 마찬가지로 실행된다.
단, 스텝 S5257의 예측 화상의 생성에 있어서, 최적 예측 모드가 인터 예측의 레이어간 신택스의 예측인 경우, 인터 예측부(1442)는, 베이스 레이어 화상 복호부(1402)로부터 취득한 베이스 레이어 움직임 정보를 사용하여 예측 화상을 생성한다.
스텝 S5262의 처리가 종료되면, 인핸스먼트 레이어 복호 처리가 종료되고, 처리는 도 116으로 복귀된다.
이상과 같이 각 처리를 실행함으로써, 인핸스먼트 레이어 화상 복호부(1403)는, 베이스 레이어의 모든 예측 방향(예를 들어 L0 방향 및 L1 방향)의 움직임 정보를 취득하는 경우보다, 베이스 레이어의 움직임 정보를 유지하는 데 필요한 버퍼의 용량을 저감할 수 있다. 즉, 화상 복호 장치(1400)는, 복호에 필요한 기억 용량의 증대를 억제할 수 있다.
<베이스 레이어 움직임 정보 참조 처리의 흐름>
또한, 상술한 바와 같이, 최적 예측 모드가 인터 예측의 레이어간 예측인 경우, 도 118의 스텝 S5257의 예측 화상의 생성 시에, 베이스 레이어 움직임 정보 버퍼(1471)에 유지되어 있는 베이스 레이어 움직임 정보가 판독된다. 이 베이스 레이어 움직임 정보를 판독하는 베이스 레이어 움직임 정보 참조 처리는, 부호화의 경우와 마찬가지로 실행된다. 즉, 도 111의 흐름도의 설명을, 복호측의 처리에도 적용할 수 있다. 따라서, 이 처리의 설명은 생략한다.
본 기술의 적용 범위는, 스케일러블한 부호화·복호 방식에 기초하는 모든 화상 부호화 장치 및 화상 복호 장치에 적용할 수 있다.
또한, 본 기술은, 예를 들어, MPEG, H.26x 등과 같이, 이산 코사인 변환 등의 직교 변환과 움직임 보상에 의해 압축된 화상 정보(비트 스트림)를 위성 방송, 케이블 텔레비전, 인터넷, 또는 휴대 전화기 등의 네트워크 미디어를 통해 수신할 때에 사용되는 화상 부호화 장치 및 화상 복호 장치에 적용할 수 있다. 또한, 본 기술은, 광, 자기 디스크, 및 플래시 메모리와 같은 기억 미디어 상에서 처리할 때에 사용되는 화상 부호화 장치 및 화상 복호 장치에 적용할 수 있다.
<11. 제9 실시 형태>
<컴퓨터>
상술한 일련의 처리는, 하드웨어에 의해 실행시킬 수도 있고, 소프트웨어에 의해 실행시킬 수도 있다. 일련의 처리를 소프트웨어에 의해 실행하는 경우에는, 그 소프트웨어를 구성하는 프로그램이 컴퓨터에 인스톨된다. 여기서 컴퓨터에는, 전용의 하드웨어에 내장되어 있는 컴퓨터나, 각종 프로그램을 인스톨함으로써, 각종 기능을 실행하는 것이 가능한, 예를 들어 범용의 퍼스널 컴퓨터 등이 포함된다.
도 119는, 상술한 일련의 처리를 프로그램에 의해 실행하는 컴퓨터의 하드웨어 구성예를 도시하는 블록도이다.
도 119에 나타내는 컴퓨터(1800)에 있어서, CPU(Central Processing Unit)(1801), ROM(Read Only Memory)(1802), RAM(Random Access Memory)(1803)은, 버스(1804)를 통해 서로 접속되어 있다.
버스(1804)에는 또한, 입출력 인터페이스(1810)도 접속되어 있다. 입출력 인터페이스(1810)에는, 입력부(1811), 출력부(1812), 기억부(1813), 통신부(1814), 및 드라이브(1815)가 접속되어 있다.
입력부(1811)는, 예를 들어, 키보드, 마우스, 마이크로폰, 터치 패널, 입력 단자 등을 포함한다. 출력부(1812)는, 예를 들어, 디스플레이, 스피커, 출력 단자 등을 포함한다. 기억부(1813)는, 예를 들어, 하드 디스크, RAM 디스크, 불휘발성이 메모리 등을 포함한다. 통신부(1814)는, 예를 들어, 네트워크 인터페이스를 포함한다. 드라이브(1815)는, 자기 디스크, 광 디스크, 광자기 디스크, 또는 반도체 메모리 등의 리무버블 미디어(1821)를 구동한다.
이상과 같이 구성되는 컴퓨터에서는, CPU(1801)가, 예를 들어, 기억부(1813)에 기억되어 있는 프로그램을, 입출력 인터페이스(1810) 및 버스(1804)를 통해 RAM(1803)에 로드하여 실행함으로써, 상술한 일련의 처리가 행하여진다. RAM(1803)에는 또한, CPU(1801)가 각종 처리를 실행함에 있어서 필요한 데이터 등도 적절히 기억된다.
컴퓨터(CPU(1801))가 실행하는 프로그램은, 예를 들어, 패키지 미디어 등으로서의 리무버블 미디어(1821)에 기록하여 적용할 수 있다. 또한, 프로그램은, 로컬 에리어 네트워크, 인터넷, 디지털 위성 방송과 같은, 유선 또는 무선의 전송 매체를 통해 제공할 수 있다.
컴퓨터에서는, 프로그램은, 리무버블 미디어(1821)를 드라이브(1815)에 장착함으로써, 입출력 인터페이스(1810)를 통해 기억부(1813)에 인스톨할 수 있다. 또한, 프로그램은, 유선 또는 무선의 전송 매체를 통해 통신부(1814)에서 수신하고, 기억부(1813)에 인스톨할 수 있다. 그 밖에, 프로그램은, ROM(1802)이나 기억부(1813)에 미리 인스톨해 둘 수 있다.
또한, 컴퓨터가 실행하는 프로그램은, 본 명세서에서 설명하는 순서를 따라서 시계열로 처리가 행하여지는 프로그램이어도 되고, 병렬로, 또는 호출이 행하여졌을 때 등의 필요한 타이밍에 처리가 행하여지는 프로그램이어도 된다.
또한, 본 명세서에서, 기록 매체에 기록되는 프로그램을 기술하는 스텝은, 기재된 순서를 따라서 시계열적으로 행하여지는 처리는 물론, 반드시 시계열적으로 처리되지 않아도, 병렬적 또는 개별로 실행되는 처리도 포함하는 것이다.
또한, 본 명세서에서, 시스템이란, 복수의 구성 요소(장치, 모듈(부품) 등)의 집합을 의미하며, 모든 구성 요소가 동일 하우징 내에 있는지 여부는 상관없다. 따라서, 별개의 하우징에 수납되어, 네트워크를 통해 접속되어 있는 복수의 장치, 및 하나의 하우징 내에 복수의 모듈이 수납되어 있는 하나의 장치는, 모두 시스템이다.
또한, 이상에서, 하나의 장치(또는 처리부)로서 설명한 구성을 분할하여, 복수의 장치(또는 처리부)로서 구성하도록 해도 된다. 반대로, 이상에서 복수의 장치(또는 처리부)로서 설명한 구성을 통합하여 하나의 장치(또는 처리부)로서 구성되도록 해도 된다. 또한, 각 장치(또는 각 처리부)의 구성에 상술한 것 이외의 구성을 부가하도록 해도 물론 좋다. 또한, 시스템 전체로서의 구성이나 동작이 실질적으로 동일하면, 어떤 장치(또는 처리부)의 구성의 일부를 다른 장치(또는 다른 처리부)의 구성에 포함하도록 해도 된다.
이상, 첨부 도면을 참조하면서 본 개시의 적합한 실시 형태에 대하여 상세하게 설명했지만, 본 개시의 기술적 범위는 이러한 예에 한정되지 않는다. 본 개시의 기술분야에서의 통상의 지식을 갖는 사람이라면, 청구범위에 기재된 기술적 사상의 범주 내에서, 각종 변경예 또는 수정예에 상도할 수 있음은 명확하며, 이들에 대해서도, 당연히 본 개시의 기술적 범위에 속하는 것이라고 이해된다.
예를 들어, 본 기술은, 하나의 기능을, 네트워크를 통해 복수의 장치로 분담, 공동으로 처리하는 클라우드 컴퓨팅의 구성을 취할 수 있다.
또한, 상술한 흐름도에서 설명한 각 스텝은, 하나의 장치에서 실행하는 것 외에, 복수의 장치에서 분담하여 실행할 수 있다.
또한, 하나의 스텝에 복수의 처리가 포함되는 경우에는, 그 하나의 스텝에 포함되는 복수의 처리는, 하나의 장치에서 실행하는 것 외에, 복수의 장치에서 분담하여 실행할 수 있다.
상술한 실시 형태에 따른 화상 부호화 장치 및 화상 복호 장치는, 위성 방송, 케이블 TV 등의 유선 방송, 인터넷상에서의 배신, 및 셀룰러 통신에 의한 단말기에 대한 배신 등에 있어서의 송신기 또는 수신기, 광 디스크, 자기 디스크 및 플래시 메모리 등의 매체에 화상을 기록하는 기록 장치, 또는, 이들 기억 매체로부터 화상을 재생하는 재생 장치 등의 다양한 전자 기기에 응용될 수 있다. 이하, 4개의 응용예에 대하여 설명한다.
<12. 응용예>
<제1 응용예: 텔레비전 수상기>
도 120은, 상술한 실시 형태를 적용한 텔레비전 장치의 개략적인 구성의 일례를 나타내고 있다. 텔레비전 장치(1900)는, 안테나(1901), 튜너(1902), 디멀티플렉서(1903), 디코더(1904), 영상 신호 처리부(1905), 표시부(1906), 음성 신호 처리부(1907), 스피커(1908), 외부 인터페이스(1909), 제어부(1910), 유저 인터페이스(1911), 및 버스(1912)를 구비한다.
튜너(1902)는, 안테나(1901)를 통해 수신되는 방송 신호로부터 원하는 채널의 신호를 추출하고, 추출한 신호를 복조한다. 그리고, 튜너(1902)는, 복조에 의해 얻어진 부호화 비트 스트림을 디멀티플렉서(1903)에 출력한다. 즉, 튜너(1902)는, 화상이 부호화되어 있는 부호화 스트림을 수신하는, 텔레비전 장치(1900)에서의 전송부로서의 역할을 갖는다.
디멀티플렉서(1903)는, 부호화 비트 스트림으로부터 시청 대상의 프로그램의 영상 스트림 및 음성 스트림을 분리하고, 분리한 각 스트림을 디코더(1904)에 출력한다. 또한, 디멀티플렉서(1903)는, 부호화 비트 스트림으로부터 EPG(Electronic Program Guide) 등의 보조적인 데이터를 추출하고, 추출한 데이터를 제어부(1910)에 공급한다. 또한, 디멀티플렉서(1903)는, 부호화 비트 스트림이 스크램블되어 있는 경우에는, 디스크램블을 행해도 된다.
디코더(1904)는, 디멀티플렉서(1903)로부터 입력되는 영상 스트림 및 음성 스트림을 복호한다. 그리고, 디코더(1904)는, 복호 처리에 의해 생성되는 영상 데이터를 영상 신호 처리부(1905)에 출력한다. 또한, 디코더(1904)는, 복호 처리에 의해 생성되는 음성 데이터를 음성 신호 처리부(1907)에 출력한다.
영상 신호 처리부(1905)는, 디코더(1904)로부터 입력되는 영상 데이터를 재생하여, 표시부(1906)에 영상을 표시시킨다. 또한, 영상 신호 처리부(1905)는, 네트워크를 통해 공급되는 애플리케이션 화면을 표시부(1906)에 표시시켜도 된다. 또한, 영상 신호 처리부(1905)는, 영상 데이터에 대해서, 설정에 따라, 예를 들어 노이즈 제거 등의 추가적인 처리를 행해도 된다. 또한, 영상 신호 처리부(1905)는, 예를 들어 메뉴, 버튼 또는 커서 등의 GUI(Graphical User Interface)의 화상을 생성하고, 생성한 화상을 출력 화상에 중첩해도 된다.
표시부(1906)는, 영상 신호 처리부(1905)로부터 공급되는 구동 신호에 의해 구동되고, 표시 디바이스(예를 들어, 액정 디스플레이, 플라즈마 디스플레이 또는 OELD(Organic ElectroLuminescence Display)(유기 EL 디스플레이) 등)의 영상면 상에 영상 또는 화상을 표시한다.
음성 신호 처리부(1907)는, 디코더(1904)로부터 입력되는 음성 데이터에 대하여 D/A 변환 및 증폭 등의 재생 처리를 행하여, 스피커(1908)로부터 음성을 출력시킨다. 또한, 음성 신호 처리부(1907)는, 음성 데이터에 대하여 노이즈 제거 등의 추가적인 처리를 행해도 된다.
외부 인터페이스(1909)는, 텔레비전 장치(1900)와 외부 기기 또는 네트워크를 접속하기 위한 인터페이스이다. 예를 들어, 외부 인터페이스(1909)를 통해 수신되는 영상 스트림 또는 음성 스트림이, 디코더(1904)에 의해 복호되어도 된다. 즉, 외부 인터페이스(1909)도 또한, 화상이 부호화되어 있는 부호화 스트림을 수신하는, 텔레비전 장치(1900)에서의 전송부로서의 역할을 갖는다.
제어부(1910)는, CPU 등의 프로세서, 및 RAM 및 ROM 등의 메모리를 갖는다. 메모리는, CPU에 의해 실행되는 프로그램, 프로그램 데이터, EPG 데이터, 및 네트워크를 통해 취득되는 데이터 등을 기억한다. 메모리에 의해 기억되는 프로그램은, 예를 들어, 텔레비전 장치(1900)의 기동시에 CPU에 의해 판독되어 실행된다. CPU는, 프로그램을 실행함으로써, 예를 들어 유저 인터페이스(1911)로부터 입력되는 조작 신호에 따라, 텔레비전 장치(1900)의 동작을 제어한다.
유저 인터페이스(1911)는 제어부(1910)와 접속된다. 유저 인터페이스(1911)는, 예를 들어, 유저가 텔레비전 장치(1900)를 조작하기 위한 버튼 및 스위치, 및 원격 제어 신호의 수신부 등을 갖는다. 유저 인터페이스(1911)는, 이들 구성 요소를 통해 유저에 의한 조작을 검출하여 조작 신호를 생성하고, 생성한 조작 신호를 제어부(1910)에 출력한다.
버스(1912)는, 튜너(1902), 디멀티플렉서(1903), 디코더(1904), 영상 신호 처리부(1905), 음성 신호 처리부(1907), 외부 인터페이스(1909) 및 제어부(1910)를 서로 접속한다.
이렇게 구성된 텔레비전 장치(1900)에 있어서, 디코더(1904)는, 상술한 실시 형태에 따른 화상 복호 장치의 기능을 갖는다. 그에 의해, 텔레비전 장치(1900)에서의 화상의 복호 시에, 복호에 필요한 기억 용량의 증대의 억제를 실현할 수 있다.
<제2 응용예: 휴대 전화기>
도 121은, 상술한 실시 형태를 적용한 휴대 전화기의 개략적인 구성의 일례를 나타내고 있다. 휴대 전화기(1920)는, 안테나(1921), 통신부(1922), 음성 코덱(1923), 스피커(1924), 마이크로폰(1925), 카메라부(1926), 화상 처리부(1927), 다중 분리부(1928), 기록 재생부(1929), 표시부(1930), 제어부(1931), 조작부(1932), 및 버스(1933)를 구비한다.
안테나(1921)는 통신부(1922)에 접속된다. 스피커(1924) 및 마이크로폰(1925)은, 음성 코덱(1923)에 접속된다. 조작부(1932)는, 제어부(1931)에 접속된다. 버스(1933)는, 통신부(1922), 음성 코덱(1923), 카메라부(1926), 화상 처리부(1927), 다중 분리부(1928), 기록 재생부(1929), 표시부(1930), 및 제어부(1931)를 서로 접속한다.
휴대 전화기(1920)는, 음성 통화 모드, 데이터 통신 모드, 촬영 모드 및 텔레비전 전화 모드를 포함하는 다양한 동작 모드에서, 음성 신호의 송수신, 전자 메일 또는 화상 데이터의 송수신, 화상의 촬상, 및 데이터의 기록 등의 동작을 행한다.
음성 통화 모드에서, 마이크로폰(1925)에 의해 생성되는 아날로그 음성 신호는, 음성 코덱(1923)에 공급된다. 음성 코덱(1923)은, 아날로그 음성 신호를 음성 데이터로 변환하고, 변환된 음성 데이터를 A/D 변환해서 압축한다. 그리고, 음성 코덱(1923)은, 압축 후의 음성 데이터를 통신부(1922)에 출력한다. 통신부(1922)는, 음성 데이터를 부호화 및 변조하여, 송신 신호를 생성한다. 그리고, 통신부(1922)는, 생성한 송신 신호를, 안테나(1921)를 통해 기지국(도시하지 않음)에 송신한다. 또한, 통신부(1922)는, 안테나(1921)를 통해 수신되는 무선 신호를 증폭 및 주파수 변환하여, 수신 신호를 취득한다. 그리고, 통신부(1922)는, 수신 신호를 복조 및 복호하여 음성 데이터를 생성하고, 생성한 음성 데이터를 음성 코덱(1923)에 출력한다. 음성 코덱(1923)은, 음성 데이터를 신장 및 D/A 변환하여, 아날로그 음성 신호를 생성한다. 그리고, 음성 코덱(1923)은, 생성한 음성 신호를 스피커(1924)에 공급하여 음성을 출력시킨다.
또한, 데이터 통신 모드에서, 예를 들어, 제어부(1931)는, 조작부(1932)를 통한 유저에 의한 조작에 따라, 전자 메일을 구성하는 문자 데이터를 생성한다. 또한, 제어부(1931)는 문자를 표시부(1930)에 표시시킨다. 또한, 제어부(1931)는, 조작부(1932)를 통한 유저로부터의 송신 지시에 따라서 전자 메일 데이터를 생성하고, 생성한 전자 메일 데이터를 통신부(1922)에 출력한다. 통신부(1922)는, 전자 메일 데이터를 부호화 및 변조하여, 송신 신호를 생성한다. 그리고, 통신부(1922)는, 생성한 송신 신호를, 안테나(1921)를 통해 기지국(도시하지 않음)에 송신한다. 또한, 통신부(1922)는, 안테나(1921)를 통해 수신되는 무선 신호를 증폭 및 주파수 변환하여, 수신 신호를 취득한다. 그리고, 통신부(1922)는, 수신 신호를 복조 및 복호하여 전자 메일 데이터를 복원하고, 복원한 전자 메일 데이터를 제어부(1931)에 출력한다. 제어부(1931)는, 표시부(1930)에 전자 메일의 내용을 표시시킴과 함께, 전자 메일 데이터를 기록 재생부(1929)의 기억 매체에 기억시킨다.
기록 재생부(1929)는, 판독 기입 가능한 임의의 기억 매체를 갖는다. 예를 들어, 기억 매체는, RAM 또는 플래시 메모리 등의 내장형의 기억 매체이어도 되고, 하드 디스크, 자기 디스크, 광자기 디스크, 광 디스크, USB(Unallocated Space Bitmap) 메모리, 또는 메모리 카드 등의 외부 장착형의 기억 매체이어도 된다.
또한, 촬영 모드에서, 예를 들어, 카메라부(1926)는, 피사체를 촬상하여 화상 데이터를 생성하고, 생성한 화상 데이터를 화상 처리부(1927)에 출력한다. 화상 처리부(1927)는, 카메라부(1926)로부터 입력되는 화상 데이터를 부호화하고, 부호화 스트림을 기억 재생부(1929)의 기억 매체에 기억시킨다.
또한, 텔레비전 전화 모드에서, 예를 들어, 다중 분리부(1928)는, 화상 처리부(1927)에 의해 부호화된 영상 스트림과, 음성 코덱(1923)으로부터 입력되는 음성 스트림을 다중화하여, 다중화한 스트림을 통신부(1922)에 출력한다. 통신부(1922)는, 스트림을 부호화 및 변조하여, 송신 신호를 생성한다. 그리고, 통신부(1922)는, 생성한 송신 신호를, 안테나(1921)를 통해 기지국(도시하지 않음)에 송신한다. 또한, 통신부(1922)는, 안테나(1921)를 통해 수신되는 무선 신호를 증폭 및 주파수 변환하여, 수신 신호를 취득한다. 이들 송신 신호 및 수신 신호에는, 부호화 비트 스트림이 포함될 수 있다. 그리고, 통신부(1922)는, 수신 신호를 복조 및 복호하여 스트림을 복원하고, 복원한 스트림을 다중 분리부(1928)에 출력한다. 다중 분리부(1928)는, 입력되는 스트림으로부터 영상 스트림 및 음성 스트림을 분리하고, 영상 스트림을 화상 처리부(1927), 음성 스트림을 음성 코덱(1923)에 출력한다. 화상 처리부(1927)는, 영상 스트림을 복호하여, 영상 데이터를 생성한다. 영상 데이터는, 표시부(1930)에 공급되어, 표시부(1930)에 의해 일련의 화상이 표시된다. 음성 코덱(1923)은, 음성 스트림을 신장 및 D/A 변환하여, 아날로그 음성 신호를 생성한다. 그리고, 음성 코덱(1923)은, 생성한 음성 신호를 스피커(1924)에 공급하여 음성을 출력시킨다.
이렇게 구성된 휴대 전화기(1920)에 있어서, 화상 처리부(1927)는 상술한 실시 형태에 따른 화상 부호화 장치 및 화상 복호 장치의 기능을 갖는다. 그에 의해, 휴대 전화기(1920)에서의 화상의 부호화 및 복호 시에, 부호화·복호에 필요한 기억 용량의 증대를 억제할 수 있다.
<제3 응용예: 기록 재생 장치>
도 122는, 상술한 실시 형태를 적용한 기록 재생 장치의 개략적인 구성의 일례를 나타내고 있다. 기록 재생 장치(1940)는, 예를 들어, 수신한 방송 프로그램의 음성 데이터 및 영상 데이터를 부호화하여 기록 매체에 기록한다. 또한, 기록 재생 장치(1940)는, 예를 들어, 다른 장치로부터 취득되는 음성 데이터 및 영상 데이터를 부호화하여 기록 매체에 기록해도 된다. 또한, 기록 재생 장치(1940)는, 예를 들어, 유저의 지시에 따라, 기록 매체에 기록되어 있는 데이터를 모니터 및 스피커상에서 재생한다. 이때, 기록 재생 장치(1940)는, 음성 데이터 및 영상 데이터를 복호한다.
기록 재생 장치(1940)는, 튜너(1941), 외부 인터페이스(1942), 인코더(1943), HDD(Hard Disk Drive)(1944), 디스크 드라이브(1945), 셀렉터(1946), 디코더(1947), OSD(On-Screen Display)(1948), 제어부(1949), 및 유저 인터페이스(1950)를 구비한다.
튜너(1941)는, 안테나(도시하지 않음)를 통해 수신되는 방송 신호로부터 원하는 채널의 신호를 추출하고, 추출한 신호를 복조한다. 그리고, 튜너(1941)는, 복조에 의해 얻어진 부호화 비트 스트림을 셀렉터(1946)에 출력한다. 즉, 튜너(1941)는, 기록 재생 장치(1940)에서의 전송부로서의 역할을 갖는다.
외부 인터페이스(1942)는, 기록 재생 장치(1940)와 외부 기기 또는 네트워크를 접속하기 위한 인터페이스이다. 외부 인터페이스(1942)는, 예를 들어, IEEE(1394) 인터페이스, 네트워크 인터페이스, USB 인터페이스, 또는 플래시 메모리 인터페이스 등이어도 된다. 예를 들어, 외부 인터페이스(1942)를 통해 수신되는 영상 데이터 및 음성 데이터는, 인코더(1943)에 입력된다. 즉, 외부 인터페이스(1942)는, 기록 재생 장치(1940)에서의 전송부로서의 역할을 갖는다.
인코더(1943)는, 외부 인터페이스(1942)로부터 입력되는 영상 데이터 및 음성 데이터가 부호화되어 있지 않은 경우에, 영상 데이터 및 음성 데이터를 부호화한다. 그리고, 인코더(1943)는, 부호화 비트 스트림을 셀렉터(1946)에 출력한다.
HDD(1944)는, 영상 및 음성 등의 콘텐츠 데이터가 압축된 부호화 비트 스트림, 각종 프로그램 및 기타 데이터를 내부의 하드 디스크에 기록한다. 또한, HDD(1944)는, 영상 및 음성의 재생 시에, 이들 데이터를 하드 디스크로부터 판독한다.
디스크 드라이브(1945)는, 장착되어 있는 기록 매체에 대한 데이터의 기록 및 판독을 행한다. 디스크 드라이브(1945)에 장착되는 기록 매체는, 예를 들어 DVD 디스크(DVD-Video, DVD- RAM, DVD-R, DVD-RW, DVD+R, DVD+RW 등) 또는 Blu-ray(등록 상표) 디스크 등이어도 된다.
셀렉터(1946)는, 영상 및 음성의 기록 시에는, 튜너(1941) 또는 인코더(1943)로부터 입력되는 부호화 비트 스트림을 선택하고, 선택한 부호화 비트 스트림을 HDD(1944) 또는 디스크 드라이브(1945)에 출력한다. 또한, 셀렉터(1946)는, 영상 및 음성의 재생 시에는, HDD(1944) 또는 디스크 드라이브(1945)로부터 입력되는 부호화 비트 스트림을 디코더(1947)에 출력한다.
디코더(1947)는, 부호화 비트 스트림을 복호하여, 영상 데이터 및 음성 데이터를 생성한다. 그리고, 디코더(1947)는, 생성한 영상 데이터를 OSD(1948)에 출력한다. 또한, 디코더(1904)는, 생성한 음성 데이터를 외부의 스피커에 출력한다.
OSD(1948)는, 디코더(1947)로부터 입력되는 영상 데이터를 재생하여, 영상을 표시한다. 또한, OSD(1948)는, 표시하는 영상에, 예를 들어 메뉴, 버튼 또는 커서 등의 GUI의 화상을 중첩해도 된다.
제어부(1949)는, CPU 등의 프로세서, 및 RAM 및 ROM 등의 메모리를 갖는다. 메모리는, CPU에 의해 실행되는 프로그램, 및 프로그램 데이터 등을 기억한다. 메모리에 의해 기억되는 프로그램은, 예를 들어, 기록 재생 장치(1940)의 기동시에 CPU에 의해 판독되어 실행된다. CPU는, 프로그램을 실행함으로써, 예를 들어 유저 인터페이스(1950)로부터 입력되는 조작 신호에 따라, 기록 재생 장치(1940)의 동작을 제어한다.
유저 인터페이스(1950)는 제어부(1949)와 접속된다. 유저 인터페이스(1950)는, 예를 들어, 유저가 기록 재생 장치(1940)를 조작하기 위한 버튼 및 스위치, 및 원격 제어 신호의 수신부 등을 갖는다. 유저 인터페이스(1950)는, 이들 구성 요소를 통해 유저에 의한 조작을 검출하여 조작 신호를 생성하고, 생성한 조작 신호를 제어부(1949)에 출력한다.
이렇게 구성된 기록 재생 장치(1940)에 있어서, 인코더(1943)는, 상술한 실시 형태에 따른 화상 부호화 장치의 기능을 갖는다. 또한, 디코더(1947)는, 상술한 실시 형태에 따른 화상 복호 장치의 기능을 갖는다. 그에 의해, 기록 재생 장치(1940)에서의 화상의 부호화 및 복호 시에, 부호화·복호에 필요한 기억 용량의 증대를 억제할 수 있다.
<제4 응용예: 촬상 장치>
도 123은, 상술한 실시 형태를 적용한 촬상 장치의 개략적인 구성의 일례를 나타내고 있다. 촬상 장치(1960)는, 피사체를 촬상하여 화상을 생성하고, 화상 데이터를 부호화하여 기록 매체에 기록한다.
촬상 장치(1960)는, 광학 블록(1961), 촬상부(1962), 신호 처리부(1963), 화상 처리부(1964), 표시부(1965), 외부 인터페이스(1966), 메모리(1967), 미디어 드라이브(1968), OSD(1969), 제어부(1970), 유저 인터페이스(1971), 및 버스(1972)를 구비한다.
광학 블록(1961)은 촬상부(1962)에 접속된다. 촬상부(1962)는 신호 처리부(1963)에 접속된다. 표시부(1965)는 화상 처리부(1964)에 접속된다. 유저 인터페이스(1971)는 제어부(1970)에 접속된다. 버스(1972)는 화상 처리부(1964), 외부 인터페이스(1966), 메모리(1967), 미디어 드라이브(1968), OSD(1969), 및 제어부(1970)를 서로 접속한다.
광학 블록(1961)은, 포커스 렌즈 및 조리개 기구 등을 갖는다. 광학 블록(1961)은, 피사체의 광학상을 촬상부(1962)의 촬상면에 결상시킨다. 촬상부(1962)는, CCD(Charge Coupled Device) 또는 CMOS(Complementary Metal Oxide Semiconductor) 등의 이미지 센서를 갖고, 촬상면에 결상된 광학상을 광전 변환에 의해 전기 신호로서의 화상 신호로 변환한다. 그리고, 촬상부(1962)는, 화상 신호를 신호 처리부(1963)에 출력한다.
신호 처리부(1963)는, 촬상부(1962)로부터 입력되는 화상 신호에 대하여 니 보정, 감마 보정, 색 보정 등의 다양한 카메라 신호 처리를 행한다. 신호 처리부(1963)는, 카메라 신호 처리 후의 화상 데이터를 화상 처리부(1964)에 출력한다.
화상 처리부(1964)는, 신호 처리부(1963)로부터 입력되는 화상 데이터를 부호화하여, 부호화 데이터를 생성한다. 그리고, 화상 처리부(1964)는, 생성한 부호화 데이터를 외부 인터페이스(1966) 또는 미디어 드라이브(1968)에 출력한다. 또한, 화상 처리부(1964)는, 외부 인터페이스(1966) 또는 미디어 드라이브(1968)로부터 입력되는 부호화 데이터를 복호하여, 화상 데이터를 생성한다. 그리고, 화상 처리부(1964)는, 생성한 화상 데이터를 표시부(1965)에 출력한다. 또한, 화상 처리부(1964)는, 신호 처리부(1963)로부터 입력되는 화상 데이터를 표시부(1965)에 출력하여 화상을 표시시켜도 된다. 또한, 화상 처리부(1964)는, OSD(1969)로부터 취득되는 표시용 데이터를, 표시부(1965)에 출력하는 화상에 중첩해도 된다.
OSD(1969)는, 예를 들어 메뉴, 버튼 또는 커서 등의 GUI의 화상을 생성하고, 생성한 화상을 화상 처리부(1964)에 출력한다.
외부 인터페이스(1966)는, 예를 들어 USB 입출력 단자로서 구성된다. 외부 인터페이스(1966)는, 예를 들어, 화상의 인쇄 시에, 촬상 장치(1960)와 프린터를 접속한다. 또한, 외부 인터페이스(1966)에는, 필요에 따라 드라이브가 접속된다. 드라이브에는, 예를 들어, 자기 디스크 또는 광 디스크 등의 리무버블 미디어가 장착되어, 리무버블 미디어로부터 판독되는 프로그램이, 촬상 장치(1960)에 인스톨될 수 있다. 또한, 외부 인터페이스(1966)는, LAN 또는 인터넷 등의 네트워크에 접속되는 네트워크 인터페이스로서 구성되어도 된다. 즉, 외부 인터페이스(1966)는, 촬상 장치(1960)에서의 전송부로서의 역할을 갖는다.
미디어 드라이브(1968)에 장착되는 기록 매체는, 예를 들어, 자기 디스크, 광자기 디스크, 광 디스크, 또는 반도체 메모리 등의, 판독 기입 가능한 임의의 리무버블 미디어이면 된다. 또한, 미디어 드라이브(1968)에 기록 매체가 고정적으로 장착되어, 예를 들어, 내장형 하드디스크 드라이브 또는 SSD(Solid State Drive)와 같은 비가반성의 기억부가 구성되어도 된다.
제어부(1970)는 CPU 등의 프로세서, 및 RAM 및 ROM 등의 메모리를 갖는다. 메모리는, CPU에 의해 실행되는 프로그램, 및 프로그램 데이터 등을 기억한다. 메모리에 의해 기억되는 프로그램은, 예를 들어, 촬상 장치(1960)의 기동시에 CPU에 의해 판독되어 실행된다. CPU는, 프로그램을 실행함으로써, 예를 들어 유저 인터페이스(1971)로부터 입력되는 조작 신호에 따라, 촬상 장치(1960)의 동작을 제어한다.
유저 인터페이스(1971)는 제어부(1970)와 접속된다. 유저 인터페이스(1971)는 예를 들어, 유저가 촬상 장치(1960)를 조작하기 위한 버튼 및 스위치 등을 갖는다. 유저 인터페이스(1971)는, 이들 구성 요소를 통해 유저에 의한 조작을 검출하여 조작 신호를 생성하고, 생성한 조작 신호를 제어부(1970)에 출력한다.
이렇게 구성된 촬상 장치(1960)에 있어서, 화상 처리부(1964)는, 상술한 실시 형태에 따른 화상 부호화 장치 및 화상 복호 장치의 기능을 갖는다. 그에 의해, 촬상 장치(1960)에서의 화상의 부호화 및 복호 시에, 부호화·복호에 필요한 기억 용량의 증대를 억제할 수 있다.
<13. 스케일러블 부호화의 응용예>
<제1 시스템>
이어서, 스케일러블 부호화(계층 부호화)된 스케일러블 부호화 데이터의 구체적인 이용 예에 대하여 설명한다. 스케일러블 부호화는, 예를 들어, 도 124에 나타내는 예와 같이, 전송하는 데이터의 선택을 위해 이용된다.
도 124에 나타내는 데이터 전송 시스템(2000)에 있어서, 배신 서버(2002)는, 스케일러블 부호화 데이터 기억부(2001)에 기억되어 있는 스케일러블 부호화 데이터를 판독하고, 네트워크(2003)를 통해, 퍼스널 컴퓨터(2004), AV 기기(2005), 태블릿 디바이스(2006), 및 휴대 전화기(2007) 등의 단말 장치에 배신한다.
그때, 배신 서버(2002)는, 단말 장치의 능력이나 통신 환경 등에 따라, 적절한 품질의 부호화 데이터를 선택하여 전송한다. 배신 서버(2002)가 불필요하게 고품질의 데이터를 전송해도, 단말 장치에서 고화질의 화상이 얻어진다고는 할 수 없으며, 지연이나 오버플로우의 발생 요인이 될 우려가 있다. 또한, 불필요하게 통신 대역을 점유하거나, 단말 장치의 부하를 불필요하게 증대시키거나 해버릴 우려도 있다. 반대로, 배신 서버(2002)가 불필요하게 저품질의 데이터를 전송해도, 단말 장치에서 충분한 화질의 화상을 얻을 수 없을 우려가 있다. 그로 인해, 배신 서버(2002)는, 스케일러블 부호화 데이터 기억부(2001)에 기억되어 있는 스케일러블 부호화 데이터를, 적절히 단말 장치의 능력이나 통신 환경 등에 대하여 적절한 품질의 부호화 데이터로서 판독하여 전송한다.
예를 들어, 스케일러블 부호화 데이터 기억부(2001)는, 스케일러블하게 부호화된 스케일러블 부호화 데이터(BL+EL)(2011)를 기억하는 것으로 한다. 이 스케일러블 부호화 데이터(BL+EL)(2011)는, 베이스 레이어와 인핸스먼트 레이어의 양쪽을 포함하는 부호화 데이터이며, 복호함으로써, 베이스 레이어의 화상 및 인핸스먼트 레이어의 화상 양쪽을 얻을 수 있는 데이터이다.
배신 서버(2002)는, 데이터를 전송하는 단말 장치의 능력이나 통신 환경 등에 따라 적절한 레이어를 선택하여, 그 레이어의 데이터를 판독한다. 예를 들어, 배신 서버(2002)는, 처리 능력이 높은 퍼스널 컴퓨터(2004)나 태블릿 디바이스(2006)에 대해서는, 고품질의 스케일러블 부호화 데이터(BL+EL)(2011)를 스케일러블 부호화 데이터 기억부(2001)로부터 판독하여, 그대로 전송한다. 이에 반해, 예를 들어, 배신 서버(2002)는, 처리 능력이 낮은 AV 기기(2005)나 휴대 전화기(2007)에 대해서는, 스케일러블 부호화 데이터(BL+EL)(2011)로부터 베이스 레이어의 데이터를 추출하여, 스케일러블 부호화 데이터(BL+EL)(2011)와 같은 콘텐츠의 데이터이지만, 스케일러블 부호화 데이터(BL+EL)(2011)보다 저품질의 스케일러블 부호화 데이터(BL)(2012)로서 전송한다.
이렇게 스케일러블 부호화 데이터를 사용함으로써, 데이터량을 용이하게 조정할 수 있으므로, 지연이나 오버플로우의 발생을 억제하거나, 단말 장치나 통신 매체의 부하의 불필요한 증대를 억제하거나 할 수 있다. 또한, 스케일러블 부호화 데이터(BL+EL)(2011)는, 레이어간의 용장성이 저감되어 있으므로, 각 레이어의 부호화 데이터를 개별 데이터로 하는 경우보다 그 데이터량을 저감시킬 수 있다. 따라서, 스케일러블 부호화 데이터 기억부(2001)의 기억 영역을 보다 효율적으로 사용할 수 있다.
또한, 퍼스널 컴퓨터(2004) 내지 휴대 전화기(2007)와 같이, 단말 장치에는 다양한 장치를 적용할 수 있으므로, 단말 장치의 하드웨어 성능은 장치에 따라 상이하다. 또한, 단말 장치가 실행하는 애플리케이션도 다양하므로, 그 소프트웨어의 능력도 다양하다. 또한, 통신 매체가 되는 네트워크(2003)도, 예를 들어 인터넷이나 LAN(Local Area Network) 등, 유선 또는 무선, 또는 그 양쪽을 포함하는 모든 통신 회선망을 적용할 수 있어, 그 데이터 전송 능력은 다양하다. 또한, 다른 통신 등에 의해서도 변화할 우려가 있다.
따라서, 배신 서버(2002)는, 데이터 전송을 개시하기 전에, 데이터의 전송처가 되는 단말기 장치와 통신을 행하여, 단말 장치의 하드웨어 성능이나, 단말 장치가 실행하는 애플리케이션(소프트웨어)의 성능 등과 같은 단말 장치의 능력에 관한 정보, 및 네트워크(2003)의 이용 가능 대역폭 등의 통신 환경에 관한 정보를 얻도록 해도 된다. 그리고, 배신 서버(2002)가, 여기에서 얻은 정보를 기초로, 적절한 레이어를 선택하도록 해도 된다.
또한, 레이어의 추출은, 단말 장치에서 행하도록 해도 된다. 예를 들어, 퍼스널 컴퓨터(2004)가, 전송된 스케일러블 부호화 데이터(BL+EL)(2011)를 복호하여, 베이스 레이어의 화상을 표시해도 되고, 인핸스먼트 레이어의 화상을 표시해도 된다. 또한, 예를 들어, 퍼스널 컴퓨터(2004)가, 전송된 스케일러블 부호화 데이터(BL+EL)(2011)로부터, 베이스 레이어의 스케일러블 부호화 데이터(BL)(2012)를 추출하여 기억하거나, 다른 장치에 전송하거나, 복호하여 베이스 레이어의 화상을 표시하거나 하도록 해도 된다.
물론, 스케일러블 부호화 데이터 기억부(2001), 배신 서버(2002), 네트워크(2003), 및 단말 장치의 수는 모두 임의이다. 또한, 이상에서는, 배신 서버(2002)가 데이터를 단말 장치에 전송하는 예에 대하여 설명했지만, 이용 예는 이것에 한정되지 않는다. 데이터 전송 시스템(2000)은, 스케일러블 부호화된 부호화 데이터를 단말 장치에 전송할 때, 단말 장치의 능력이나 통신 환경 등에 따라 적절한 레이어를 선택하여 전송하는 시스템이라면, 임의의 시스템에 적용할 수 있다.
그리고, 이상과 같은 데이터 전송 시스템(2000)에서도, 제4 실시 형태 내지 제8 실시 형태에서 상술한 계층 부호화·계층 복호에 대한 적용과 마찬가지로 본 기술을 적용함으로써, 제4 실시 형태 내지 제8 실시 형태에서 상술한 효과와 마찬가지의 효과를 얻을 수 있다.
<제2 시스템>
또한, 스케일러블 부호화는, 예를 들어, 도 125에 나타내는 예와 같이, 복수의 통신 매체를 통한 전송을 위해 이용된다.
도 125에 나타내는 데이터 전송 시스템(2100)에 있어서, 방송국(2101)은, 지상파 방송(2111)에 의해, 베이스 레이어의 스케일러블 부호화 데이터(BL)(2121)를 전송한다. 또한, 방송국(2101)은, 유선 또는 무선 또는 그 양쪽의 통신망을 포함하는 임의의 네트워크(2112)를 통해, 인핸스먼트 레이어의 스케일러블 부호화 데이터(EL)(2122)를 전송한다(예를 들어 패킷화하여 전송함).
단말 장치(2102)는, 방송국(2101)이 방송하는 지상파 방송(2111)의 수신 기능을 갖고, 이 지상파 방송(2111)을 통해 전송되는 베이스 레이어의 스케일러블 부호화 데이터(BL)(2121)를 수취한다. 또한, 단말 장치(2102)는, 네트워크(2112)를 통한 통신을 행하는 통신 기능을 더 갖고, 이 네트워크(2112)를 통해 전송되는 인핸스먼트 레이어의 스케일러블 부호화 데이터(EL)(2122)를 수취한다.
단말 장치(2102)는, 예를 들어 유저 지시 등에 따라, 지상파 방송(2111)을 통해 취득한 베이스 레이어의 스케일러블 부호화 데이터(BL)(2121)를, 복호하여 베이스 레이어의 화상을 얻거나, 기억하거나, 다른 장치에 전송하거나 한다.
또한, 단말 장치(2102)는, 예를 들어 유저 지시 등에 따라, 지상파 방송(2111)을 통해 취득한 베이스 레이어의 스케일러블 부호화 데이터(BL)(2121)와, 네트워크(2112)를 통해 취득한 인핸스먼트 레이어의 스케일러블 부호화 데이터(EL)(2122)를 합성하여, 스케일러블 부호화 데이터(BL+EL)를 얻거나, 그것을 복호하여 인핸스먼트 레이어의 화상을 얻거나, 기억하거나, 다른 장치에 전송하거나 한다.
이상과 같이, 스케일러블 부호화 데이터는, 예를 들어 레이어마다 서로 다른 통신 매체를 통해 전송시킬 수 있다. 따라서, 부하를 분산시킬 수 있어, 지연이나 오버플로우의 발생을 억제할 수 있다.
또한, 상황에 따라, 전송에 사용하는 통신 매체를, 레이어마다 선택할 수 있도록 해도 된다. 예를 들어, 데이터량이 비교적 많은 베이스 레이어의 스케일러블 부호화 데이터(BL)(2121)를 대역폭이 넓은 통신 매체를 통해 전송시키고, 데이터량이 비교적 적은 인핸스먼트 레이어의 스케일러블 부호화 데이터(EL)(2122)를 대역폭이 좁은 통신 매체를 통해 전송시키도록 해도 된다. 또한, 예를 들어, 인핸스먼트 레이어의 스케일러블 부호화 데이터(EL)(2122)를 전송하는 통신 매체를, 네트워크(2112)로 할 것인지, 지상파 방송(2111)으로 할 것인지를, 네트워크(2112)의 이용 가능 대역폭에 따라서 전환하도록 해도 된다. 물론, 임의의 레이어의 데이터에 대해서도 마찬가지이다.
이렇게 제어함으로써, 데이터 전송에서의 부하의 증대를 보다 억제할 수 있다.
물론, 레이어 수는 임의이며, 전송에 이용하는 통신 매체의 수도 임의이다. 또한, 데이터 배신처가 되는 단말 장치(2102)의 수도 임의이다. 또한, 이상에서는, 방송국(2101)으로부터의 방송을 예로 들어 설명했지만, 이용 예는 이것에 한정되지 않는다. 데이터 전송 시스템(2100)은, 스케일러블 부호화된 부호화 데이터를, 레이어를 단위로서 복수로 분할하여, 복수의 회선을 통해 전송하는 시스템이라면, 임의의 시스템에 적용할 수 있다.
그리고, 이상과 같은 데이터 전송 시스템(2100)에서도, 제4 실시 형태 내지 제8 실시 형태에서 상술한 계층 부호화·계층 복호에 대한 적용과 마찬가지로 본 기술을 적용함으로써, 제4 실시 형태 내지 제8 실시 형태에서 상술한 효과와 마찬가지의 효과를 얻을 수 있다.
<제3 시스템>
또한, 스케일러블 부호화는, 예를 들어, 도 126에 나타내는 예와 같이, 부호화 데이터의 기억에 이용된다.
도 126에 나타내는 촬상 시스템(2200)에 있어서, 촬상 장치(2201)는, 피사체(2211)를 촬상하여 얻어진 화상 데이터를 스케일러블 부호화하고, 스케일러블 부호화 데이터(BL+EL)(2221)로서, 스케일러블 부호화 데이터 기억 장치(2202)에 공급한다.
스케일러블 부호화 데이터 기억 장치(2202)는, 촬상 장치(2201)로부터 공급되는 스케일러블 부호화 데이터(BL+EL)(2221)를, 상황에 따른 품질로 기억한다. 예를 들어, 통상시의 경우, 스케일러블 부호화 데이터 기억 장치(2202)는, 스케일러블 부호화 데이터(BL+EL)(2221)로부터 베이스 레이어의 데이터를 추출하여, 저품질이며 데이터량이 적은 베이스 레이어의 스케일러블 부호화 데이터(BL)(2222)로서 기억한다. 이에 반해, 예를 들어, 주목시의 경우, 스케일러블 부호화 데이터 기억 장치(2202)는, 고품질이며 데이터량이 많은 스케일러블 부호화 데이터(BL+EL)(2221) 그대로 기억한다.
이와 같이 함으로써, 스케일러블 부호화 데이터 기억 장치(2202)는, 필요한 경우만 화상을 고화질로 보존할 수 있으므로, 화질 열화에 의한 화상의 가치의 저감을 억제하면서, 데이터량의 증대를 억제할 수 있어, 기억 영역의 이용 효율을 향상시킬 수 있다.
예를 들어, 촬상 장치(2201)가 감시 카메라라고 하자. 촬상 화상에 감시 대상(예를 들어 침입자)이 나타나지 않은 경우(통상시인 경우), 촬상 화상의 내용은 중요하지 않을 가능성이 높으므로, 데이터량의 저감이 우선되어, 그 화상 데이터(스케일러블 부호화 데이터)는 저품질로 기억된다. 이에 반해, 촬상 화상에 감시 대상이 피사체(2211)로서 찍혀 있을 경우(주목시인 경우), 그 촬상 화상의 내용은 중요할 가능성이 높으므로, 화질이 우선되어, 그 화상 데이터(스케일러블 부호화 데이터)는 고품질로 기억된다.
또한, 통상시인지 주목시인지는, 예를 들어, 스케일러블 부호화 데이터 기억 장치(2202)가 화상을 해석함으로써 판정해도 된다. 또한, 촬상 장치(2201)가 판정하여, 그 판정 결과를 스케일러블 부호화 데이터 기억 장치(2202)에 전송하도록 해도 된다.
또한, 통상시인지 주목시인지의 판정 기준은 임의이며, 판정 기준으로 하는 화상의 내용은 임의이다. 물론, 화상의 내용 이외의 조건을 판정 기준으로 할 수도 있다. 예를 들어, 수록한 음성의 크기나 파형 등에 따라서 전환하도록 해도 되고, 소정의 시간마다 전환하도록 해도 되고, 유저 지시 등의 외부로부터의 지시에 의해 전환하도록 해도 된다.
또한, 이상에서는, 통상시와 주목시의 2개의 상태를 전환하는 예를 설명했지만, 상태의 수는 임의이어서, 예를 들어, 통상시, 약간 주목시, 주목시, 매우 주목시 등과 같이, 3개 이상의 상태를 전환하도록 해도 된다. 단, 이 전환하는 상태의 상한수는, 스케일러블 부호화 데이터의 레이어 수에 의존한다.
또한, 촬상 장치(2201)가, 스케일러블 부호화의 레이어 수를, 상태에 따라서 결정하도록 해도 된다. 예를 들어, 통상시의 경우, 촬상 장치(2201)가, 저품질이고 데이터량이 적은 베이스 레이어의 스케일러블 부호화 데이터(BL)(2222)를 생성하여, 스케일러블 부호화 데이터 기억 장치(2202)에 공급하도록 해도 된다. 또한, 예를 들어, 주목시의 경우, 촬상 장치(2201)가, 고품질이고 데이터량이 많은 베이스 레이어의 스케일러블 부호화 데이터(BL+EL)(2221)를 생성하여, 스케일러블 부호화 데이터 기억 장치(2202)에 공급하도록 해도 된다.
이상에서는, 감시 카메라를 예로 들어 설명했지만, 이 촬상 시스템(2200)의 용도는 임의이며, 감시 카메라에 한정되지 않는다.
그리고, 이상과 같은 촬상 시스템(2200)에서도, 제4 실시 형태 내지 제8 실시 형태에서 상술한 계층 부호화·계층 복호에 대한 적용과 마찬가지로 본 기술을 적용함으로써, 제4 실시 형태 내지 제8 실시 형태에서 상술한 효과와 마찬가지의 효과를 얻을 수 있다.
<14. 세트·유닛·모듈·프로세서>
<실시의 기타 예>
이상에서 본 기술을 적용하는 장치나 시스템 등의 예를 설명했지만, 본 기술은, 이에 한정되지 않고, 이러한 장치 또는 시스템을 구성하는 장치에 탑재하는 모든 구성, 예를 들어, 시스템 LSI(Large Scale Integration) 등으로서의 프로세서, 복수의 프로세서 등을 사용하는 모듈, 복수의 모듈 등을 사용하는 유닛, 유닛에 또한 그 밖의 기능을 부가한 세트 등(즉, 장치의 일부 구성)으로서 실시할 수도 있다.
<비디오 세트>
본 기술을 세트로서 실시하는 경우의 예에 대해서, 도 127을 참조하여 설명한다. 도 127은, 본 기술을 적용한 비디오 세트의 개략적인 구성의 일례를 나타내고 있다.
최근 들어, 전자 기기의 다기능화가 진행되고 있어, 그 개발이나 제조에 있어서, 그 일부의 구성을 판매나 제공 등으로서 실시할 경우, 1 기능을 갖는 구성으로서 실시를 행하는 경우뿐만 아니라, 관련하는 기능을 갖는 복수의 구성을 조합하여, 복수의 기능을 갖는 1세트로서 실시를 행하는 경우도 많이 나타나고 있다.
도 127에 나타내는 비디오 세트(2300)는, 이러한 다기능화된 구성이며, 화상의 부호화나 복호(어느 한쪽이어도 되고, 양쪽이어도 됨)에 관한 기능을 갖는 디바이스에, 그 기능에 관련하는 기타 기능을 갖는 디바이스를 조합한 것이다.
도 127에 도시된 바와 같이, 비디오 세트(2300)는, 비디오 모듈(2311), 외부 메모리(2312), 파워 매니지먼트 모듈(2313), 및 프론트엔드 모듈(2314) 등의 모듈 군과, 커넥티비티(2321), 카메라(2322), 및 센서(2323) 등의 관련된 기능을 갖는 디바이스를 갖는다.
모듈은, 서로 관련된 몇 가지의 부품적 기능을 통합하여, 종합적인 기능을 가진 부품으로 한 것이다. 구체적인 물리적 구성은 임의이지만, 예를 들어, 각각 기능을 갖는 복수의 프로세서, 저항이나 콘덴서 등의 전자 회로 소자, 그 밖의 디바이스 등을 배선 기판 등에 배치하여 일체화된 것을 생각할 수 있다. 또한, 모듈에 다른 모듈이나 프로세서 등을 조합하여 새로운 모듈로 하는 것도 생각할 수 있다.
도 127의 예의 경우, 비디오 모듈(2311)은, 화상 처리에 관한 기능을 갖는 구성을 조합한 것이며, 어플리케이션 프로세서, 비디오 프로세서, 브로드밴드 모뎀(2333), 및 RF 모듈(2334)을 갖는다.
프로세서는, 소정의 기능을 갖는 구성을 SoC(System On a Chip)에 의해 반도체 칩에 집적한 것이며, 예를 들어 시스템 LSI(Large Scale Integration) 등이라고 칭해지는 경우도 있다. 이 소정의 기능을 갖는 구성은, 논리 회로(하드웨어 구성)이어도 되고, CPU, ROM, RAM 등과, 그것들을 사용하여 실행되는 프로그램(소프트웨어 구성)이어도 되고, 그 양쪽을 조합한 것이어도 된다. 예를 들어, 프로세서가, 논리 회로와 CPU, ROM, RAM 등을 갖고, 기능의 일부를 논리 회로(하드웨어 구성)에 의해 실현하고, 그 밖의 기능을 CPU에서 실행되는 프로그램(소프트웨어 구성)에 의해 실현하도록 해도 된다.
도 127의 어플리케이션 프로세서(2331)는, 화상 처리에 관한 애플리케이션을 실행하는 프로세서이다. 이 어플리케이션 프로세서(2331)에서 실행되는 애플리케이션은, 소정의 기능을 실현하기 위해서, 연산 처리를 행할 뿐만 아니라, 예를 들어 비디오 프로세서(2332) 등, 비디오 모듈(2311) 내외의 구성을 필요에 따라서 제어할 수도 있다.
비디오 프로세서(2332)는, 화상의 부호화·복호(그 한쪽 또는 양쪽)에 관한 기능을 갖는 프로세서이다.
브로드밴드 모뎀(2333)은, 인터넷이나 공중 전화 회선망 등의 광대역의 회선을 통해 행하여지는 유선 또는 무선(또는 그 양쪽)의 광대역 통신에 의해 송신하는 데이터(디지털 신호)를 디지털 변조하거나 해서 아날로그 신호로 변환하거나, 그 광대역 통신에 의해 수신한 아날로그 신호를 복조하여 데이터(디지털 신호)로 변환하거나 한다. 브로드밴드 모뎀(2333)은, 예를 들어, 비디오 프로세서(2332)가 처리하는 화상 데이터, 화상 데이터가 부호화된 스트림, 어플리케이션 프로그램, 설정 데이터 등, 임의의 정보를 처리한다.
RF 모듈(2334)은, 안테나를 통해 송수신되는 RF(Radio Frequency) 신호에 대하여 주파수 변환, 변복조, 증폭, 필터 처리 등을 행하는 모듈이다. 예를 들어, RF 모듈(2334)은, 브로드밴드 모뎀(2333)에 의해 생성된 기저 대역 신호에 대하여 주파수 변환 등을 행하여 RF 신호를 생성한다. 또한, 예를 들어, RF 모듈(2334)은, 프론트엔드 모듈(2314)을 통해 수신된 RF 신호에 대하여 주파수 변환 등을 행하여 기저 대역 신호를 생성한다.
또한, 도 127에서 점선(2341)으로 도시된 바와 같이, 어플리케이션 프로세서(2331)와 비디오 프로세서(2332)를 일체화하고, 하나의 프로세서로서 구성되도록 해도 된다.
외부 메모리(2312)는, 비디오 모듈(2311)의 외부에 설치된, 비디오 모듈(2311)에 의해 이용되는 기억 디바이스를 갖는 모듈이다. 이 외부 메모리(2312)의 기억 디바이스는, 어떤 물리 구성에 의해 실현하도록 해도 되지만, 일반적으로 프레임 단위의 화상 데이터와 같은 대용량의 데이터의 저장에 이용되는 경우가 많으므로, 예를 들어 DRAM(Dynamic Random Access Memory)과 같은 비교적 저렴하고 대용량의 반도체 메모리에 의해 실현하는 것이 바람직하다.
파워 매니지먼트 모듈(2313)은, 비디오 모듈(2311)(비디오 모듈(2311) 내의 각 구성)에 대한 전력 공급을 관리하고 제어한다.
프론트엔드 모듈(2314)은, RF 모듈(2334)에 대하여 프론트엔드 기능(안테나측의 송수신단의 회로)을 제공하는 모듈이다. 도 127에 도시된 바와 같이, 프론트엔드 모듈(2314)은 예를 들어, 안테나부(2351), 필터(2352), 및 증폭부(2353)를 갖는다.
안테나부(2351)는, 무선 신호를 송수신하는 안테나 및 그 주변의 구성을 갖는다. 안테나부(2351)는, 증폭부(2353)로부터 공급되는 신호를 무선 신호로서 송신하고, 수신한 무선 신호를 전기 신호(RF 신호)로서 필터(2352)에 공급한다. 필터(2352)는, 안테나부(2351)를 통해 수신된 RF 신호에 대하여 필터 처리 등을 행하고, 처리 후의 RF 신호를 RF 모듈(2334)에 공급한다. 증폭부(2353)는, RF 모듈(2334)로부터 공급되는 RF 신호를 증폭하여, 안테나부(2351)에 공급한다.
커넥티비티(2321)는, 외부와의 접속에 관한 기능을 갖는 모듈이다. 커넥티비티(2321)의 물리 구성은 임의이다. 예를 들어, 커넥티비티(2321)는, 브로드밴드 모뎀(2333)이 대응하는 통신 규격 이외의 통신 기능을 갖는 구성이나, 외부 입출력 단자 등을 갖는다.
예를 들어, 커넥티비티(2321)가 Bluetooth(등록 상표), IEEE 802.11(예를 들어 Wi-Fi(Wireless Fidelity, 등록 상표)), NFC(Near Field Communication), IrDA(InfraRed Data Association) 등의 무선 통신 규격에 준거하는 통신 기능을 갖는 모듈이나, 그 규격에 준거한 신호를 송수신하는 안테나 등을 갖도록 해도 된다. 또한, 예를 들어, 커넥티비티(2321)가 USB(Universal Serial Bus), HDMI(등록 상표)(High-Definition Multimedia Interface) 등의 유선 통신 규격에 준거하는 통신 기능을 갖는 모듈이나, 그 규격에 준거한 단자를 갖도록 해도 된다. 또한, 예를 들어, 커넥티비티(2321)가 아날로그 입출력 단자 등의 기타 데이터(신호) 전송 기능 등을 갖도록 해도 된다.
또한, 커넥티비티(2321)가 데이터(신호)의 전송처의 디바이스를 포함하도록 해도 된다. 예를 들어, 커넥티비티(2321)가, 자기 디스크, 광 디스크, 광자기 디스크, 또는 반도체 메모리 등의 기록 매체에 대하여 데이터의 판독이나 기입을 행하는 드라이브(리무버블 미디어의 드라이브뿐만 아니라, 하드 디스크, SSD(Solid State Drive), NAS(Network Attached Storage) 등도 포함함)를 갖도록 해도 된다. 또한, 커넥티비티(2321)가 화상이나 음성의 출력 디바이스(모니터나 스피커 등)를 갖도록 해도 된다.
카메라(2322)는 피사체를 촬상하고, 피사체의 화상 데이터를 얻는 기능을 갖는 모듈이다. 카메라(2322)의 촬상에 의해 얻어진 화상 데이터는, 예를 들어, 비디오 프로세서(2332)에 공급되어서 부호화된다.
센서(2323)는 예를 들어, 음성 센서, 초음파 센서, 광 센서, 조도 센서, 적외선 센서, 이미지 센서, 회전 센서, 각도 센서, 각속도 센서, 속도 센서, 가속도 센서, 경사 센서, 자기 식별 센서, 충격 센서, 온도 센서 등, 임의의 센서 기능을 갖는 모듈이다. 센서(2323)에 의해 검출된 데이터는, 예를 들어, 어플리케이션 프로세서(2331)에 공급되어서 애플리케이션 등에 의해 이용된다.
이상에서 모듈로서 설명한 구성을 프로세서로서 실현하도록 해도 되고, 반대로 프로세서로서 설명한 구성을 모듈로서 실현하도록 해도 된다.
이상과 같은 구성의 비디오 세트(2300)에 있어서, 후술하는 바와 같이 비디오 프로세서(2332)에 본 기술을 적용할 수 있다. 따라서, 비디오 세트(2300)는 본 기술을 적용한 세트로서 실시할 수 있다.
<비디오 프로세서의 구성예>
도 128은, 본 기술을 적용한 비디오 프로세서(2332)(도 127)의 개략적인 구성의 일례를 나타내고 있다.
도 128의 예의 경우, 비디오 프로세서(2332)는, 비디오 신호 및 오디오 신호의 입력을 받아서 이들을 소정의 방식으로 부호화하는 기능과, 부호화된 비디오 데이터 및 오디오 데이터를 복호하여, 비디오 신호 및 오디오 신호를 재생 출력하는 기능을 갖는다.
도 128에 도시된 바와 같이, 비디오 프로세서(2332)는, 비디오 입력 처리부(2401), 제1 화상 확대 축소부(2402), 제2 화상 확대 축소부(2403), 비디오 출력 처리부(2404), 프레임 메모리(2405), 및 메모리 제어부(2406)를 갖는다. 또한, 비디오 프로세서(2332)는, 인코드·디코드 엔진(2407), 비디오 ES(Elementary Stream) 버퍼(2408A) 및 (2408B), 및 오디오 ES 버퍼(2409A) 및 (2409B)를 갖는다. 또한, 비디오 프로세서(2332)는, 오디오 인코더(2410), 오디오 디코더(2411), 다중화부(MUX(Multiplexer))(2412), 역 다중화부(DMUX(Demultiplexer))(2413), 및 스트림 버퍼(2414)를 갖는다.
비디오 입력 처리부(2401)는, 예를 들어 커넥티비티(2321)(도 127) 등으로부터 입력된 비디오 신호를 취득하여, 디지털 화상 데이터로 변환한다. 제1 화상 확대 축소부(2402)는, 화상 데이터에 대하여 포맷 변환이나 화상의 확대 축소 처리 등을 행한다. 제2 화상 확대 축소부(2403)는, 화상 데이터에 대하여, 비디오 출력 처리부(2404)를 통해 출력하는 앞에서의 포맷에 따라서 화상의 확대 축소 처리를 행하거나, 제1 화상 확대 축소부(2402)와 마찬가지의 포맷 변환이나 화상의 확대 축소 처리 등을 행하거나 한다. 비디오 출력 처리부(2404)는, 화상 데이터에 대하여, 포맷 변환이나 아날로그 신호로의 변환 등을 행하여, 재생된 비디오 신호로서 예를 들어 커넥티비티(2321)(도 127) 등에 출력한다.
프레임 메모리(2405)는, 비디오 입력 처리부(2401), 제1 화상 확대 축소부(2402), 제2 화상 확대 축소부(2403), 비디오 출력 처리부(2404), 및 인코드·디코드 엔진(2407)에 의해 공용되는 화상 데이터용의 메모리이다. 프레임 메모리(2405)는, 예를 들어 DRAM 등의 반도체 메모리로서 실현된다.
메모리 제어부(2406)는, 인코드·디코드 엔진(2407)으로부터의 동기 신호를 받아, 액세스 관리 테이블(2406A)에 기입된 프레임 메모리(2405)에 대한 액세스 스케줄에 따라서 프레임 메모리(2405)에 대한 기입·판독의 액세스를 제어한다. 액세스 관리 테이블(2406A)은, 인코드·디코드 엔진(2407), 제1 화상 확대 축소부(2402), 제2 화상 확대 축소부(2403) 등에서 실행되는 처리를 따라, 메모리 제어부(2406)에 의해 갱신된다.
인코드·디코드 엔진(2407)은, 화상 데이터의 인코드 처리, 및 화상 데이터가 부호화된 데이터인 비디오 스트림의 디코드 처리를 행한다. 예를 들어, 인코드·디코드 엔진(2407)은, 프레임 메모리(2405)로부터 판독한 화상 데이터를 부호화하여, 비디오 스트림으로서 비디오 ES 버퍼(2408A)에 순차 기입한다. 또한, 예를 들어, 비디오 ES 버퍼(2408B)로부터 비디오 스트림을 순차 판독하여 복호하고, 화상 데이터로서 프레임 메모리(2405)에 순차 기입한다. 인코드·디코드 엔진(2407)은, 이 부호화나 복호에 있어서, 프레임 메모리(2405)를 작업 영역으로서 사용한다. 또한, 인코드·디코드 엔진(2407)은, 예를 들어 매크로 블록마다의 처리를 개시하는 타이밍에서, 메모리 제어부(2406)에 대하여 동기 신호를 출력한다.
비디오 ES 버퍼(2408A)는, 인코드·디코드 엔진(2407)에 의해 생성된 비디오 스트림을 버퍼링하여, 다중화부(MUX)(2412)에 공급한다. 비디오 ES 버퍼(2408B)는, 역 다중화부(DMUX)(2413)로부터 공급된 비디오 스트림을 버퍼링하여, 인코드·디코드 엔진(2407)에 공급한다.
오디오 ES 버퍼(2409A)는, 오디오 인코더(2410)에 의해 생성된 오디오 스트림을 버퍼링하여, 다중화부(MUX)(2412)에 공급한다. 오디오 ES 버퍼(2409B)는, 역 다중화부(DMUX)(2413)로부터 공급된 오디오 스트림을 버퍼링하여, 오디오 디코더(2411)에 공급한다.
오디오 인코더(2410)는, 예를 들어 커넥티비티(2321)(도 127) 등으로부터 입력된 오디오 신호를, 예를 들어 디지털 변환하여, 예를 들어 MPEG 오디오 방식이나 AC3(AudioCode number 3) 방식 등의 소정의 방식으로 부호화한다. 오디오 인코더(2410)는, 오디오 신호가 부호화된 데이터인 오디오 스트림을 오디오 ES 버퍼(2409A)에 순차 기입한다. 오디오 디코더(2411)는, 오디오 ES 버퍼(2409B)로부터 공급된 오디오 스트림을 복호하여, 예를 들어 아날로그 신호로의 변환 등을 행하고, 재생된 오디오 신호로서 예를 들어 커넥티비티(2321)(도 127) 등에 공급한다.
다중화부(MUX)(2412)는, 비디오 스트림과 오디오 스트림을 다중화한다. 이 다중화의 방법(즉, 다중화에 의해 생성되는 비트 스트림의 포맷)은 임의이다. 또한, 이 다중화 시에, 다중화부(MUX)(2412)는, 소정의 헤더 정보 등을 비트 스트림에 부가할 수도 있다. 즉, 다중화부(MUX)(2412)는, 다중화에 의해 스트림의 포맷을 변환할 수 있다. 예를 들어, 다중화부(MUX)(2412)는, 비디오 스트림과 오디오 스트림을 다중화함으로써, 전송용의 포맷의 비트 스트림인 트랜스포트 스트림으로 변환한다. 또한, 예를 들어, 다중화부(MUX)(2412)는, 비디오 스트림과 오디오 스트림을 다중화함으로써, 기록용 파일 포맷의 데이터(파일 데이터)로 변환한다.
역 다중화부(DMUX)(2413)는, 다중화부(MUX)(2412)에 의한 다중화에 대응하는 방법으로, 비디오 스트림과 오디오 스트림이 다중화된 비트 스트림을 역 다중화한다. 즉, 역 다중화부(DMUX)(2413)는, 스트림 버퍼(2414)로부터 판독된 비트 스트림으로부터 비디오 스트림과 오디오 스트림을 추출한다(비디오 스트림과 오디오 스트림을 분리함). 즉, 역 다중화부(DMUX)(2413)는, 역 다중화에 의해 스트림의 포맷을 변환(다중화부(MUX)(2412)에 의한 변환의 역변환)할 수 있다. 예를 들어, 역 다중화부(DMUX)(2413)는, 예를 들어 커넥티비티(2321)나 브로드밴드 모뎀(2333) 등(모두 도 127)으로부터 공급된 트랜스포트 스트림을, 스트림 버퍼(2414)를 통해 취득하여, 역 다중화함으로써, 비디오 스트림과 오디오 스트림으로 변환할 수 있다. 또한, 예를 들어, 역 다중화부(DMUX)(2413)는, 예를 들어 커넥티비티(2321)(도 127)에 의해 각종 기록 매체로부터 판독된 파일 데이터를, 스트림 버퍼(2414)를 통해 취득하여, 역 다중화함으로써, 비디오 스트림과 오디오 스트림으로 변환할 수 있다.
스트림 버퍼(2414)는 비트 스트림을 버퍼링한다. 예를 들어, 스트림 버퍼(2414)는, 다중화부(MUX)(2412)로부터 공급된 트랜스포트 스트림을 버퍼링하고, 소정의 타이밍에 있어서, 또는 외부로부터의 요구 등에 기초하여, 예를 들어 커넥티비티(2321)나 브로드밴드 모뎀(2333)(모두 도 127) 등에 공급한다.
또한, 예를 들어, 스트림 버퍼(2414)는, 다중화부(MUX)(2412)로부터 공급된 파일 데이터를 버퍼링하고, 소정의 타이밍에 있어서, 또는 외부로부터의 요구 등에 기초하여, 예를 들어 커넥티비티(2321)(도 127) 등에 공급하여, 각종 기록 매체에 기록시킨다.
또한, 스트림 버퍼(2414)는, 예를 들어 커넥티비티(2321)나 브로드밴드 모뎀(2333) 등(모두 도 127)을 통해 취득한 트랜스포트 스트림을 버퍼링하고, 소정의 타이밍에 있어서, 또는 외부로부터의 요구 등에 기초하여, 역 다중화부(DMUX)(2413)에 공급한다.
또한, 스트림 버퍼(2414)는, 예를 들어 커넥티비티(2321)(도 127) 등에서 각종 기록 매체로부터 판독된 파일 데이터를 버퍼링하고, 소정의 타이밍에 있어서, 또는 외부로부터의 요구 등에 기초하여, 역 다중화부(DMUX)(2413)에 공급한다.
이어서, 이와 같은 구성의 비디오 프로세서(2332)의 동작 예에 대하여 설명한다. 예를 들어, 커넥티비티(2321)(도 127) 등으로부터 비디오 프로세서(2332)에 입력된 비디오 신호는, 비디오 입력 처리부(2401)에서 4:2:2Y/Cb/Cr 방식 등의 소정의 방식의 디지털 화상 데이터로 변환되어, 프레임 메모리(2405)에 순차 기입된다. 이 디지털 화상 데이터는, 제1 화상 확대 축소부(2402) 또는 제2 화상 확대 축소부(2403)에 판독되어서, 4:2:0Y/Cb/Cr 방식 등의 소정의 방식으로의 포맷 변환 및 확대 축소 처리가 행하여지고, 다시 프레임 메모리(2405)에 기입된다. 이 화상 데이터는, 인코드·디코드 엔진(2407)에 의해 부호화되어, 비디오 스트림으로서 비디오 ES 버퍼(2408A)에 기입된다.
또한, 커넥티비티(2321)(도 127) 등으로부터 비디오 프로세서(2332)에 입력된 오디오 신호는, 오디오 인코더(2410)에 의해 부호화되어, 오디오 스트림으로서, 오디오 ES 버퍼(2409A)에 기입된다.
비디오 ES 버퍼(2408A)의 비디오 스트림과, 오디오 ES 버퍼(2409A)의 오디오 스트림은, 다중화부(MUX)(2412)에 판독되어 다중화되어, 트랜스포트 스트림 또는 파일 데이터 등으로 변환된다. 다중화부(MUX)(2412)에 의해 생성된 트랜스포트 스트림은, 스트림 버퍼(2414)에 버퍼된 후, 예를 들어 커넥티비티(2321)나 브로드밴드 모뎀(2333)(모두 도 127) 등을 통해 외부 네트워크에 출력된다. 또한, 다중화부(MUX)(2412)에 의해 생성된 파일 데이터는, 스트림 버퍼(2414)에 버퍼된 후, 예를 들어 커넥티비티(2321)(도 127) 등에 출력되어, 각종 기록 매체에 기록된다.
또한, 예를 들어 커넥티비티(2321)나 브로드밴드 모뎀(2333)(모두 도 127) 등을 통해 외부 네트워크로부터 비디오 프로세서(2332)에 입력된 트랜스포트 스트림은, 스트림 버퍼(2414)에 버퍼된 후, 역 다중화부(DMUX)(2413)에 의해 역 다중화된다. 또한, 예를 들어 커넥티비티(2321)(도 127) 등에 있어서 각종 기록 매체로부터 판독되어, 비디오 프로세서(2332)에 입력된 파일 데이터는, 스트림 버퍼(2414)에 버퍼된 후, 역 다중화부(DMUX)(2413)에 의해 역 다중화된다. 즉, 비디오 프로세서(2332)에 입력된 트랜스포트 스트림 또는 파일 데이터는, 역 다중화부(DMUX)(2413)에 의해 비디오 스트림과 오디오 스트림으로 분리된다.
오디오 스트림은, 오디오 ES 버퍼(2409B)를 통해 오디오 디코더(2411)에 공급되어, 복호되어서 오디오 신호가 재생된다. 또한, 비디오 스트림은, 비디오 ES 버퍼(2408B)에 기입된 후, 인코드·디코드 엔진(2407)에 의해 순차 판독되어 복호되어서 프레임 메모리(2405)에 기입된다. 복호된 화상 데이터는, 제2 화상 확대 축소부(2403)에 의해 확대 축소 처리되어서, 프레임 메모리(2405)에 기입된다. 그리고, 복호된 화상 데이터는, 비디오 출력 처리부(2404)에 판독되어서, 4:2:2Y/Cb/Cr 방식 등의 소정의 방식으로 포맷 변환되고, 또한 아날로그 신호로 변환되어서, 비디오 신호가 재생 출력된다.
이렇게 구성되는 비디오 프로세서(2332)에 본 기술을 적용하는 경우, 인코드·디코드 엔진(2407)에, 상술한 각 실시 형태에 따른 본 기술을 적용하면 된다. 즉, 예를 들어, 인코드·디코드 엔진(2407)이, 상술한 실시 형태에 따른 화상 부호화 장치 및 화상 복호 장치의 기능을 갖도록 하면 된다. 이와 같이 함으로써, 비디오 프로세서(2332)는, 도 1 내지 도 118을 참조하여 상술한 효과와 마찬가지의 효과를 얻을 수 있다.
또한, 인코드·디코드 엔진(2407)에 있어서, 본 기술(즉, 상술한 각 실시 형태에 따른 화상 부호화 장치나 화상 복호 장치의 기능)은, 논리 회로 등의 하드웨어에 의해 실현하도록 해도 되고, 내장 프로그램 등의 소프트웨어에 의해 실현하도록 해도 되고, 그 양쪽에 의해 실현하도록 해도 된다.
<비디오 프로세서의 다른 구성예>
도 129는, 본 기술을 적용한 비디오 프로세서(2332)(도 127)의 개략적인 구성의 다른 예를 나타내고 있다. 도 129의 예의 경우, 비디오 프로세서(2332)는, 비디오 데이터를 소정의 방식으로 부호화·복호하는 기능을 갖는다.
보다 구체적으로는, 도 129에 도시된 바와 같이, 비디오 프로세서(2332)는, 제어부(2511), 디스플레이 인터페이스(2512), 디스플레이 엔진(2513), 화상 처리 엔진(2514), 및 내부 메모리(2515)를 갖는다. 또한, 비디오 프로세서(2332)는, 코덱 엔진(2516), 메모리 인터페이스(2517), 다중화·역 다중화부(MUX DMUX)(2518), 네트워크 인터페이스(2519), 및 비디오 인터페이스(2520)를 갖는다.
제어부(2511)는, 디스플레이 인터페이스(2512), 디스플레이 엔진(2513), 화상 처리 엔진(2514), 및 코덱 엔진(2516) 등, 비디오 프로세서(2332) 내의 각 처리부의 동작을 제어한다.
도 129에 도시된 바와 같이, 제어부(2511)는 예를 들어, 메인 CPU(2531), 서브 CPU(2532), 및 시스템 컨트롤러(2533)를 갖는다. 메인 CPU(2531)는, 비디오 프로세서(2332) 내의 각 처리부의 동작을 제어하기 위한 프로그램 등을 실행한다. 메인 CPU(2531)는, 그 프로그램 등에 따라서 제어 신호를 생성하고, 각 처리부에 공급한다(즉, 각 처리부의 동작을 제어함). 서브 CPU(2532)는, 메인 CPU(2531)의 보조적인 역할을 한다. 예를 들어, 서브 CPU(2532)는, 메인 CPU(2531)가 실행하는 프로그램 등의 자 프로세스나 서브루틴 등을 실행한다. 시스템 컨트롤러(2533)는, 메인 CPU(2531) 및 서브 CPU(2532)가 실행하는 프로그램을 지정하는 등, 메인 CPU(2531) 및 서브 CPU(2532)의 동작을 제어한다.
디스플레이 인터페이스(2512)는, 제어부(2511)의 제어 하에, 화상 데이터를 예를 들어 커넥티비티(2321)(도 127) 등에 출력한다. 예를 들어, 디스플레이 인터페이스(2512)는, 디지털 데이터의 화상 데이터를 아날로그 신호로 변환하여, 재생된 비디오 신호로서, 또는 디지털 데이터의 화상 데이터인 상태 그대로, 커넥티비티(2321)(도 127)의 모니터 장치 등에 출력한다.
디스플레이 엔진(2513)은, 제어부(2511)의 제어 하에, 화상 데이터에 대하여 그 화상을 표시시키는 모니터 장치 등의 하드웨어 스펙에 맞추도록, 포맷 변환, 사이즈 변환, 색 영역 변환 등의 각종 변환 처리를 행한다.
화상 처리 엔진(2514)은, 제어부(2511)의 제어 하에, 화상 데이터에 대하여 예를 들어 화질 개선을 위한 필터 처리 등, 소정의 화상 처리를 실시한다.
내부 메모리(2515)는, 디스플레이 엔진(2513), 화상 처리 엔진(2514), 및 코덱 엔진(2516)에 의해 공용되는, 비디오 프로세서(2332)의 내부에 설치된 메모리이다. 내부 메모리(2515)는 예를 들어, 디스플레이 엔진(2513), 화상 처리 엔진(2514), 및 코덱 엔진(2516)의 사이에 행하여지는 데이터의 수수에 이용된다. 예를 들어, 내부 메모리(2515)는, 디스플레이 엔진(2513), 화상 처리 엔진(2514), 또는 코덱 엔진(2516)으로부터 공급되는 데이터를 저장하고, 필요에 따라(예를 들어, 요구에 따라), 그 데이터를, 디스플레이 엔진(2513), 화상 처리 엔진(2514), 또는 코덱 엔진(2516)에 공급한다. 이 내부 메모리(2515)는, 어떤 기억 디바이스에 의해 실현하도록 해도 되지만, 일반적으로 블록 단위의 화상 데이터나 파라미터 등과 같은 소용량의 데이터 저장에 이용하는 경우가 많으므로, 예를 들어 SRAM(Static Random Access Memory)과 같은 비교적(예를 들어 외부 메모리(2312)와 비교해서) 소용량이지만 응답 속도가 고속인 반도체 메모리에 의해 실현하는 것이 바람직하다.
코덱 엔진(2516)은, 화상 데이터의 부호화나 복호에 관한 처리를 행한다. 이 코덱 엔진(2516)이 대응하는 부호화·복호의 방식은 임의이며, 그 수는 하나이어도 되고, 복수이어도 된다. 예를 들어, 코덱 엔진(2516)은, 복수의 부호화·복호 방식의 코덱 기능을 구비하고, 그 중에서 선택된 것으로 화상 데이터의 부호화 또는 부호화 데이터의 복호를 행하도록 해도 된다.
도 129에 나타내는 예에서, 코덱 엔진(2516)은, 코덱에 관한 처리의 기능 블록으로서, 예를 들어, MPEG-2 Video(2541), AVC/H.264(2542), HEVC/H.265(2543), HEVC/H.265(Scalable)(2544), HEVC/H.265(Multi-view)(2545), 및 MPEG-DASH(2551)를 갖는다.
MPEG-2 Video(2541)는, 화상 데이터를 MPEG-2 방식으로 부호화하거나 복호하하는 기능 블록이다. AVC/H.264(2542)는, 화상 데이터를 AVC 방식으로 부호화하거나 복호하는 기능 블록이다. HEVC/H.265(2543)는, 화상 데이터를 HEVC 방식으로 부호화하거나 복호하는 기능 블록이다. HEVC/H.265(Scalable)(2544)는, 화상 데이터를 HEVC 방식으로 스케일러블 부호화하거나 스케일러블 복호하는 기능 블록이다. HEVC/H.265(Multi-view)(2545)는, 화상 데이터를 HEVC 방식으로 다시점 부호화하거나 다시점 복호하는 기능 블록이다.
MPEG-DASH(2551)는, 화상 데이터를 MPEG-DASH(MPEG-Dynamic Adaptive Streaming over HTTP) 방식으로 송수신하는 기능 블록이다. MPEG-DASH는, HTTP(HyperText Transfer Protocol)를 사용하여 비디오의 스트리밍을 행하는 기술이며, 미리 준비된 해상도 등이 서로 상이한 복수의 부호화 데이터 중에서 적절한 것을 세그먼트 단위로 선택해서 전송하는 것을 특징의 하나로 한다. MPEG-DASH(2551)는, 규격에 준거하는 스트림의 생성이나 그 스트림의 전송 제어 등을 행하고, 화상 데이터의 부호화·복호에 대해서는, 상술한 MPEG-2 Video(2541) 내지 HEVC/H.265(Multi-view)(2545)를 이용한다.
메모리 인터페이스(2517)는 외부 메모리(2312)용의 인터페이스이다. 화상 처리 엔진(2514)이나 코덱 엔진(2516)으로부터 공급되는 데이터는, 메모리 인터페이스(2517)를 통해 외부 메모리(2312)에 공급된다. 또한, 외부 메모리(2312)로부터 판독된 데이터는, 메모리 인터페이스(2517)를 통해 비디오 프로세서(2332)(화상 처리 엔진(2514) 또는 코덱 엔진(2516))에 공급된다.
다중화·역 다중화부(MUX DMUX)(2518)는, 부호화 데이터의 비트 스트림, 화상 데이터, 비디오 신호 등, 화상에 관한 각종 데이터의 다중화나 역 다중화를 행한다. 이 다중화·역 다중화의 방법은 임의이다. 예를 들어, 다중화 시에, 다중화·역 다중화부(MUX DMUX)(2518)는, 복수의 데이터를 하나로 통합할 뿐만 아니라, 소정의 헤더 정보 등을 그 데이터에 부가할 수도 있다. 또한, 역 다중화 시에, 다중화·역 다중화부(MUX DMUX)(2518)는, 하나의 데이터를 복수로 분할할 뿐만 아니라, 분할한 각 데이터에 소정의 헤더 정보 등을 부가할 수도 있다. 즉, 다중화·역 다중화부(MUX DMUX)(2518)는, 다중화·역 다중화에 의해 데이터의 포맷을 변환할 수 있다. 예를 들어, 다중화·역 다중화부(MUX DMUX)(2518)는, 비트 스트림을 다중화함으로써, 전송용의 포맷의 비트 스트림인 트랜스포트 스트림이나, 기록용 파일 포맷의 데이터(파일 데이터)로 변환할 수 있다. 물론, 역 다중화에 의해 그 역변환도 가능하다.
네트워크 인터페이스(2519)는, 예를 들어 브로드밴드 모뎀(2333)이나 커넥티비티(2321)(모두 도 127) 등에 적합한 인터페이스이다. 비디오 인터페이스(2520)는, 예를 들어 커넥티비티(2321)나 카메라(2322)(모두 도 127) 등에 적합한 인터페이스이다.
이어서, 이러한 비디오 프로세서(2332)의 동작 예에 대하여 설명한다. 예를 들어, 예를 들어 커넥티비티(2321)나 브로드밴드 모뎀(2333)(모두 도 127) 등을 통해 외부 네트워크로부터 트랜스포트 스트림을 수신하면, 그 트랜스포트 스트림은, 네트워크 인터페이스(2519)를 통해 다중화·역 다중화부(MUX DMUX)(2518)에 공급되어서 역 다중화되고, 코덱 엔진(2516)에 의해 복호된다. 코덱 엔진(2516)의 복호에 의해 얻어진 화상 데이터는, 예를 들어, 화상 처리 엔진(2514)에 의해 소정의 화상 처리가 실시되고, 디스플레이 엔진(2513)에 의해 소정의 변환이 행하여져, 디스플레이 인터페이스(2512)를 통해 예를 들어 커넥티비티(2321)(도 127) 등에 공급되어, 그 화상이 모니터에 표시된다. 또한, 예를 들어, 코덱 엔진(2516)의 복호에 의해 얻어진 화상 데이터는, 코덱 엔진(2516)에 의해 재부호화되고, 다중화·역 다중화부(MUX DMUX)(2518)에 의해 다중화되어서 파일 데이터로 변환되어, 비디오 인터페이스(2520)를 통해 예를 들어 커넥티비티(2321)(도 127) 등에 출력되어, 각종 기록 매체에 기록된다.
또한, 예를 들어, 커넥티비티(2321)(도 127) 등에 의해 도시하지 않은 기록 매체로부터 판독된, 화상 데이터가 부호화된 부호화 데이터의 파일 데이터는, 비디오 인터페이스(2520)를 통해 다중화·역 다중화부(MUX DMUX)(2518)에 공급되어서 역 다중화되어, 코덱 엔진(2516)에 의해 복호된다. 코덱 엔진(2516)의 복호에 의해 얻어진 화상 데이터는, 화상 처리 엔진(2514)에 의해 소정의 화상 처리가 실시되고, 디스플레이 엔진(2513)에 의해 소정의 변환이 행하여져, 디스플레이 인터페이스(2512)를 통해 예를 들어 커넥티비티(2321)(도 127) 등에 공급되어, 그 화상이 모니터에 표시된다. 또한, 예를 들어, 코덱 엔진(2516)의 복호에 의해 얻어진 화상 데이터는, 코덱 엔진(2516)에 의해 재부호화되고, 다중화·역 다중화부(MUX DMUX)(2518)에 의해 다중화되어서 트랜스포트 스트림으로 변환되어, 네트워크 인터페이스(2519)를 통해 예를 들어 커넥티비티(2321)나 브로드밴드 모뎀(2333)(모두 도 127) 등에 공급되어 도시하지 않은 다른 장치에 전송된다.
또한, 비디오 프로세서(2332) 내의 각 처리부의 사이에서의 화상 데이터나 그 밖의 데이터의 수수는, 예를 들어, 내부 메모리(2515)나 외부 메모리(2312)를 이용하여 행하여진다. 또한, 파워 매니지먼트 모듈(2313)은, 예를 들어 제어부(2511)에 대한 전력 공급을 제어한다.
이렇게 구성되는 비디오 프로세서(2332)에 본 기술을 적용하는 경우, 코덱 엔진(2516)에, 상술한 각 실시 형태에 따른 본 기술을 적용하면 된다. 즉, 예를 들어, 코덱 엔진(2516)이 상술한 실시 형태에 따른 화상 부호화 장치 및 화상 복호 장치의 기능을 갖도록 하면 된다. 이와 같이 함으로써, 비디오 프로세서(2332)는, 도 1 내지 도 118을 참조하여 상술한 효과와 마찬가지의 효과를 얻을 수 있다.
또한, 코덱 엔진(2516)에 있어서, 본 기술(즉, 상술한 각 실시 형태에 따른 화상 부호화 장치나 화상 복호 장치의 기능)은, 논리 회로 등의 하드웨어에 의해 실현하도록 해도 되고, 내장 프로그램 등의 소프트웨어에 의해 실현하도록 해도 되고, 그 양쪽에 의해 실현하도록 해도 된다.
이상으로 비디오 프로세서(2332)의 구성을 2가지 예시했지만, 비디오 프로세서(2332)의 구성은 임의이며, 상술한 2가지 예 이외의 것이어도 된다. 또한, 이 비디오 프로세서(2332)는, 하나의 반도체 칩으로서 구성되도록 해도 되지만, 복수의 반도체 칩으로서 구성되도록 해도 된다. 예를 들어, 복수의 반도체를 적층하는 3차원 적층 LSI로 해도 된다. 또한, 복수의 LSI에 의해 실현되도록 해도 된다.
<장치에 대한 적용예>
비디오 세트(2300)는, 화상 데이터를 처리하는 각종 장치에 내장할 수 있다. 예를 들어, 비디오 세트(2300)는, 텔레비전 장치(1900)(도 120), 휴대 전화기(1920)(도 121), 기록 재생 장치(1940)(도 122), 촬상 장치(1960)(도 123) 등에 내장할 수 있다. 비디오 세트(2300)를 내장함으로써, 그 장치는, 도 1 내지 도 118을 참조하여 상술한 효과와 마찬가지의 효과를 얻을 수 있다.
또한, 비디오 세트(2300)는 예를 들어, 도 124의 데이터 전송 시스템(2000)에서의 퍼스널 컴퓨터(2004), AV 기기(2005), 태블릿 디바이스(2006), 및 휴대 전화기(2007) 등의 단말 장치, 도 125의 데이터 전송 시스템(2100)에서의 방송국(2101) 및 단말 장치(2102), 및 도 126의 촬상 시스템(2200)에서의 촬상 장치(2201) 및 스케일러블 부호화 데이터 기억 장치(2202) 등에도 내장할 수 있다. 비디오 세트(2300)를 내장함으로써, 그 장치는, 도 1 내지 도 118을 참조하여 상술한 효과와 마찬가지의 효과를 얻을 수 있다.
또한, 상술한 비디오 세트(2300)의 각 구성의 일부이어도, 비디오 프로세서(2332)를 포함하는 것이라면, 본 기술을 적용한 구성으로서 실시할 수 있다. 예를 들어, 비디오 프로세서(2332)만을 본 기술을 적용한 비디오 프로세서로서 실시할 수 있다. 또한, 예를 들어, 상술한 바와 같이 점선(2341)에 의해 나타내는 프로세서나 비디오 모듈(2311) 등을, 본 기술을 적용한 프로세서나 모듈 등으로서 실시할 수 있다. 또한, 예를 들어, 비디오 모듈(2311), 외부 메모리(2312), 파워 매니지먼트 모듈(2313), 및 프론트엔드 모듈(2314)을 조합하여, 본 기술을 적용한 비디오 유닛(2361)으로서 실시할 수도 있다. 어떤 구성의 경우든, 도 1 내지 도 118을 참조하여 상술한 효과와 마찬가지의 효과를 얻을 수 있다.
즉, 비디오 프로세서(2332)를 포함하는 것이라면 어떤 구성이라도, 비디오 세트(2300)의 경우와 마찬가지로, 화상 데이터를 처리하는 각종 장치에 내장할 수 있다. 예를 들어, 비디오 프로세서(2332), 점선(2341)에 의해 나타내는 프로세서, 비디오 모듈(2311), 또는, 비디오 유닛(2361)을 텔레비전 장치(1900)(도 120), 휴대 전화기(1920)(도 121), 기록 재생 장치(1940)(도 122), 촬상 장치(1960)(도 123), 도 124의 데이터 전송 시스템(2000)에서의 퍼스널 컴퓨터(2004), AV 기기(2005), 태블릿 디바이스(2006), 및 휴대 전화기(2007) 등의 단말 장치, 도 125의 데이터 전송 시스템(2100)에서의 방송국(2101) 및 단말 장치(2102), 및 도 126의 촬상 시스템(2200)에서의 촬상 장치(2201) 및 스케일러블 부호화 데이터 기억 장치(2202) 등에 내장할 수 있다. 그리고, 본 기술을 적용한 어느 하나의 구성을 내장함으로써, 그 장치는, 비디오 세트(2300)의 경우와 마찬가지로, 도 1 내지 도 118을 참조하여 상술한 효과와 마찬가지의 효과를 얻을 수 있다.
<15. MPEG-DASH의 콘텐츠 재생 시스템의 응용예>
<MPEG-DASH의 응용예>
또한, 본 기술은, 미리 준비된 해상도 등이 서로 상이한 복수의 부호화 데이터 중에서 적절한 것을 세그먼트 단위로 선택하여 사용하는, 예를 들어, 후술하는 MPEG DASH 등과 같은 HTTP 스트리밍의 콘텐츠 재생 시스템이나 Wi-Fi 규격의 무선 통신 시스템에도 적용할 수 있다.
<콘텐츠 재생 시스템의 개요>
먼저, 도 130 내지 도 132를 참조하여, 본 기술을 적용 가능한 콘텐츠 재생 시스템에 대하여 개략적으로 설명한다.
이하에서는, 먼저, 이러한 각 실시 형태에서 공통되는 기본 구성에 대하여 도 130 및 도 131을 참조하여 설명한다.
도 130은, 콘텐츠 재생 시스템의 구성을 나타낸 설명도이다. 도 130에 도시한 바와 같이, 콘텐츠 재생 시스템은, 콘텐츠 서버(2610, 2611)와, 네트워크(2612)와, 콘텐츠 재생 장치(2620)(클라이언트 장치)를 구비한다.
콘텐츠 서버(2610, 2611)와 콘텐츠 재생 장치(2620)는, 네트워크(2612)를 통해 접속되어 있다. 이 네트워크(2612)는, 네트워크(2612)에 접속되어 있는 장치로부터 송신되는 정보의 유선, 또는 무선의 전송로이다.
예를 들어, 네트워크(2612)는, 인터넷, 전화 회선망, 위성 통신망 등의 공중 회선망이나, Ethernet(등록 상표)을 포함하는 각종 LAN(Local Area Network), WAN(Wide Area Network) 등을 포함해도 된다. 또한, 네트워크(2612)는, IP-VPN(Internet Protocol-Virtual Private Network) 등의 전용 회선망을 포함해도 된다.
콘텐츠 서버(2610)는, 콘텐츠 데이터를 부호화하고, 부호화 데이터 및 부호화 데이터의 메타 정보를 포함하는 데이터 파일을 생성하여 기억한다. 또한, 콘텐츠 서버(2610)가 MP4 형식의 데이터 파일을 생성할 경우, 부호화 데이터는 「mdat」에 해당하고, 메타 정보는 「moov」에 해당한다.
또한, 콘텐츠 데이터는, 음악, 강연 및 라디오 프로 등의 음악 데이터나, 영화, 텔레비전 프로그램, 비디오 프로그램, 사진, 문서, 그림 및 도표 등의 영상 데이터나, 게임 및 소프트웨어 등이어도 된다.
여기서, 콘텐츠 서버(2610)는, 동일 콘텐츠에 관하여, 서로 다른 비트 레이트로 복수의 데이터 파일을 생성한다. 또한 콘텐츠 서버(2611)는, 콘텐츠 재생 장치(2620)로부터의 콘텐츠의 재생 요구에 대하여, 콘텐츠 서버(2610)의 URL의 정보에, 콘텐츠 재생 장치(2620)에서 당해 URL에 부가시키는 파라미터의 정보를 포함하여 콘텐츠 재생 장치(2620)에 송신한다. 이하, 도 131을 참조하여 당해 사항에 대해 구체적으로 설명한다.
도 131은, 도 130의 콘텐츠 재생 시스템에서의 데이터의 흐름을 나타낸 설명도이다. 콘텐츠 서버(2610)는, 동일한 콘텐츠 데이터를 서로 다른 비트 레이트로 부호화하고, 도 131에 도시한 바와 같이 예를 들어 2Mbps의 파일 A, 1.5Mbps의 파일 B, 1Mbps의 파일 C를 생성한다. 상대적으로, 파일 A는 하이 비트 레이트이며, 파일 B는 표준 비트 레이트이며, 파일 C는 로우 비트 레이트이다.
또한, 도 131에 도시한 바와 같이, 각 파일의 부호화 데이터는 복수의 세그먼트로 구분되어 있다. 예를 들어, 파일 A의 부호화 데이터는 「A1」, 「A2」, 「A3」, …「An」이라는 세그먼트로 구분되어 있고, 파일 B의 부호화 데이터는 「B1」, 「B2」, 「B3」, …「Bn」이라는 세그먼트로 구분되어 있고, 파일 C의 부호화 데이터는 「C1」, 「C2」, 「C3」, …「Cn」이라는 세그먼트로 구분되어 있다.
또한, 각 세그먼트는, MP4의 싱크 샘플(예를 들어, AVC/H.264의 영상 부호화에서는 IDR- 픽처)로 시작되는 단독으로 재생 가능한 1 또는 2 이상의 영상 부호화 데이터 및 음성 부호화 데이터를 포함하여 구성되어도 된다. 예를 들어, 1초 30 프레임의 비디오 데이터가 15 프레임 고정 길이의 GOP(Group of Picture)로 부호화되어 있었을 경우, 각 세그먼트는, 4GOP에 상당하는 2초분의 영상 및 음성 부호화 데이터나, 20GOP에 상당하는 10초분의 영상 및 음성 부호화 데이터이어도 된다.
또한, 각 파일에서의 배치 순서가 동일한 세그먼트에 의한 재생 범위(콘텐츠의 선두에서부터의 시간 위치의 범위)는 동일하다. 예를 들어, 세그먼트 「A2」, 세그먼트 「B2」, 및 세그먼트 「C2」의 재생 범위는 동일하며, 각 세그먼트가 2초분의 부호화 데이터일 경우, 세그먼트 「A2」, 세그먼트 「B2」, 및 세그먼트 「C2」의 재생 범위는, 모두 콘텐츠의 2초 내지 4초이다.
콘텐츠 서버(2610)는, 이러한 복수의 세그먼트로 구성되는 파일 A 내지 파일 C를 생성하면, 파일 A 내지 파일 C를 기억한다. 그리고, 콘텐츠 서버(2610)는, 도 131에 도시한 바와 같이, 서로 다른 파일을 구성하는 세그먼트를 콘텐츠 재생 장치(2620)에 순차적으로 송신하고, 콘텐츠 재생 장치(2620)는 수신한 세그먼트를 스트리밍 재생한다.
여기서, 본 실시 형태에 의한 콘텐츠 서버(2610)는, 각 부호화 데이터의 비트 레이트 정보 및 액세스 정보를 포함하는 플레이 리스트 파일(이하, MPD: Media Presentation Description)을 콘텐츠 재생 장치(2620)에 송신하고, 콘텐츠 재생 장치(2620)는, MPD에 기초하여, 복수의 비트 레이트 중 어느 하나의 비트 레이트를 선택하고, 선택한 비트 레이트에 대응하는 세그먼트의 송신을 콘텐츠 서버(2610)에 요구한다.
도 130에서는, 하나의 콘텐츠 서버(2610)만이 도시되어 있지만, 본 발명은, 이러한 예에 한정되지 않음은 물론이다.
도 132는, MPD의 구체예를 나타낸 설명도이다. 도 132에 도시한 바와 같이, MPD에는, 서로 다른 비트 레이트(BANDWIDTH)를 갖는 복수의 부호화 데이터에 관한 액세스 정보가 포함된다. 예를 들어, 도 132에 나타낸 MPD는, 256Kbps, 1.024Mbps, 1.384Mbps, 1.536Mbps, 2.048Mbps의 각각의 부호화 데이터가 존재하는 것을 나타냄과 함께, 각 부호화 데이터에 관한 액세스 정보를 포함한다. 콘텐츠 재생 장치(2620)는, 이러한 MPD에 기초하여, 스트리밍 재생하는 부호화 데이터의 비트 레이트를 동적으로 변경하는 것이 가능하다.
또한, 도 130에는 콘텐츠 재생 장치(2620)의 일례로서 휴대 단말기를 나타내고 있지만, 콘텐츠 재생 장치(2620)는 이러한 예에 한정되지 않는다. 예를 들어, 콘텐츠 재생 장치(2620)는, PC(Personal Computer), 가정용 영상 처리 장치(DVD 레코더, 비디오 데크 등), PDA(Personal Digital Assistants), 가정용 게임기기, 가전 기기 등의 정보 처리 장치이어도 된다. 또한, 콘텐츠 재생 장치(2620)는, 휴대 전화, PHS(Personal Handyphone System), 휴대용 음악 재생 장치, 휴대용 영상 처리 장치, 휴대용 게임기기 등의 정보 처리 장치이어도 된다.
<콘텐츠 서버(2610)의 구성>
이상, 도 130 내지 도 132를 참조하여, 콘텐츠 재생 시스템의 개요를 설명하였다. 계속해서, 도 133을 참조하여, 콘텐츠 서버(2610)의 구성을 설명한다.
도 133은, 콘텐츠 서버(2610)의 구성을 도시한 기능 블록도이다. 도 133에 도시한 바와 같이, 콘텐츠 서버(2610)는, 파일 생성부(2631)와, 기억부(2632)와, 통신부(2633)를 구비한다.
파일 생성부(2631)는, 콘텐츠 데이터를 부호화하는 인코더(2641)를 구비하고, 동일한 콘텐츠에서 비트 레이트가 상이한 복수의 부호화 데이터, 및 상술한 MPD를 생성한다. 예를 들어, 파일 생성부(2631)는, 256Kbps, 1.024Mbps, 1.384Mbps, 1.536Mbps, 2.048Mbps의 각각의 부호화 데이터를 생성했을 경우, 도 132에 도시된 바와 같은 MPD를 생성한다.
기억부(2632)는, 파일 생성부(2631)에 의해 생성된 비트 레이트가 상이한 복수의 부호화 데이터 및 MPD를 기억한다. 이 기억부(2632)는, 불휘발성 메모리, 자기 디스크, 광 디스크, 및 MO(Magneto Optical) 디스크 등의 기억 매체이어도 된다. 불휘발성 메모리로서는, 예를 들어, EEPROM(Electrically Erasable Programmable Read-Only Memory), EPROM(Erasable Programmable ROM)을 들 수 있다. 또한, 자기 디스크로서는, 하드 디스크 및 원반형 자성체 디스크 등을 들 수 있다. 또한, 광 디스크로서는, CD(Compact Disc, DVD-R(Digital Versatile Disc Recordable) 및 BD(Blu-Ray Disc(등록 상표)) 등을 들 수 있다.
통신부(2633)는, 콘텐츠 재생 장치(2620)와의 인터페이스이며, 네트워크(2612)를 통해 콘텐츠 재생 장치(2620)와 통신한다. 보다 상세하게는, 통신부(2633)는, HTTP에 따라서 콘텐츠 재생 장치(2620)와 통신하는 HTTP 서버로서의 기능을 갖는다. 예를 들어, 통신부(2633)는, MPD를 콘텐츠 재생 장치(2620)에 송신하고, HTTP에 따라서 콘텐츠 재생 장치(2620)로부터 MPD에 기초하여 요구된 부호화 데이터를 기억부(2632)로부터 추출하고, HTTP 리스펀스로서 콘텐츠 재생 장치(2620)에 부호화 데이터를 송신한다.
<콘텐츠 재생 장치(2620)의 구성>
이상, 본 실시 형태에 의한 콘텐츠 서버(2610)의 구성을 설명하였다. 계속해서, 도 134를 참조하여 콘텐츠 재생 장치(2620)의 구성을 설명한다.
도 134는, 콘텐츠 재생 장치(2620)의 구성을 도시한 기능 블록도이다. 도 134에 도시한 바와 같이, 콘텐츠 재생 장치(2620)는, 통신부(2651)와, 기억부(2652)와, 재생부(2653)와, 선택부(2654)와, 현재지 취득부(2656)를 구비한다.
통신부(2651)는, 콘텐츠 서버(2610)와의 인터페이스이며, 콘텐츠 서버(2610)에 대하여 데이터를 요구하고, 콘텐츠 서버(2610)로부터 데이터를 취득한다. 보다 상세하게는, 통신부(2651)는, HTTP에 따라서 콘텐츠 재생 장치(2620)와 통신하는 HTTP 클라이언트로서의 기능을 갖는다. 예를 들어, 통신부(2651)는, HTTP Range를 이용함으로써, 콘텐츠 서버(2610)로부터 MPD나 부호화 데이터의 세그먼트를 선택적으로 취득할 수 있다.
기억부(2652)는, 콘텐츠의 재생에 관한 다양한 정보를 기억한다. 예를 들어, 통신부(2651)에 의해 콘텐츠 서버(2610)로부터 취득되는 세그먼트를 순차적으로 버퍼링한다. 기억부(2652)에 버퍼링된 부호화 데이터의 세그먼트는, FIFO(First In First Out)로 재생부(2653)에 순차적으로 공급된다.
또한 기억부(2652)는, 후술하는 콘텐츠 서버(2611)로부터 요구된, MPD에 기술되어 있는 콘텐츠의 URL에 대한 파라미터의 부가 지시에 기초하여, 통신부(2651)에서 URL에 파라미터를 부가하고, 그 URL에 액세스하기 위한 정의를 기억한다.
재생부(2653)는, 기억부(2652)로부터 공급되는 세그먼트를 순차적으로 재생한다. 구체적으로는, 재생부(2653)는, 세그먼트의 디코드, DA 변환, 및 렌더링 등을 행한다.
선택부(2654)는, MPD에 포함되는 어떤 비트 레이트에 대응하는 부호화 데이터의 세그먼트를 취득할지를 동일 콘텐츠 내에서 순차적으로 선택한다. 예를 들어, 선택부(2654)가 네트워크(2612)의 대역에 따라서 세그먼트 「A1」, 「B2」, 「A3」을 순차적으로 선택하면, 도 131에 도시한 바와 같이, 통신부(2651)가 콘텐츠 서버(2610)로부터 세그먼트 「A1」, 「B2」, 「A3」을 순차적으로 취득한다.
현재지 취득부(2656)는, 콘텐츠 재생 장치(2620)의 현재의 위치를 취득하는 것이며, 예를 들어 GPS(Global Positioning System) 수신기 등의 현재지를 취득하는 모듈로 구성되어 있어도 된다. 또한 현재지 취득부(2656)는, 무선 네트워크를 사용하여 콘텐츠 재생 장치(2620)의 현재의 위치를 취득하는 것이어도 된다.
<콘텐츠 서버(2611)의 구성>
도 135는, 콘텐츠 서버(2611)의 구성예를 도시하는 설명도이다. 도 135에 도시한 바와 같이, 콘텐츠 서버(2611)는, 기억부(2671)와, 통신부(2672)를 구비한다.
기억부(2671)는, MPD의 URL의 정보를 기억한다. MPD의 URL의 정보는, 콘텐츠의 재생을 요구하는 콘텐츠 재생 장치(2620)로부터의 요구에 따라, 콘텐츠 서버(2611)로부터 콘텐츠 재생 장치(2620)에 송신된다. 또한 기억부(2671)는, 콘텐츠 재생 장치(2620)에 대한 MPD의 URL의 정보를 제공할 때에, 당해 MPD에 기술되어 있는 URL에 콘텐츠 재생 장치(2620)에서 파라미터를 부가시킬 때의 정의 정보를 기억한다.
통신부(2672)는, 콘텐츠 재생 장치(2620)와의 인터페이스이며, 네트워크(2612)를 통해 콘텐츠 재생 장치(2620)와 통신한다. 즉, 통신부(2672)는, 콘텐츠의 재생을 요구하는 콘텐츠 재생 장치(2620)로부터, MPD의 URL의 정보의 요구를 수신하고, 콘텐츠 재생 장치(2620)에 MPD의 URL의 정보를 송신한다. 통신부(2672)로부터 송신되는 MPD의 URL에는, 콘텐츠 재생 장치(2620)에서 파라미터를 부가시키기 위한 정보가 포함된다.
콘텐츠 재생 장치(2620)에서 MPD의 URL에 부가시키는 파라미터에 대해서는, 콘텐츠 서버(2611) 및 콘텐츠 재생 장치(2620)에서 공유하는 정의 정보로 다양하게 설정할 수 있다. 일례를 들면, 콘텐츠 재생 장치(2620)의 현재 위치, 콘텐츠 재생 장치(2620)를 사용하는 유저의 유저 ID, 콘텐츠 재생 장치(2620)의 메모리 사이즈, 콘텐츠 재생 장치(2620)의 스토리지 용량 등의 정보를, 콘텐츠 재생 장치(2620)에서 MPD의 URL에 부가시킬 수 있다.
이상과 같은 구성의 콘텐츠 재생 시스템에 있어서, 도 1 내지 도 118을 참조하여 상술한 바와 같은 본 기술을 적용함으로써, 도 1 내지 도 118을 참조하여 상술한 효과와 마찬가지의 효과를 얻을 수 있다.
즉, 콘텐츠 서버(2610)의 인코더(2641)는, 상술한 실시 형태에 따른 화상 부호화 장치의 기능을 갖는다. 또한, 콘텐츠 재생 장치(2620)의 재생부(2653)는, 상술한 실시 형태에 따른 화상 복호 장치의 기능을 갖는다. 그에 의해, 부호화·복호에 필요한 기억 용량의 증대를 억제할 수 있다.
또한, 콘텐츠 재생 시스템에 있어서, 본 기술에 의해 부호화된 데이터를 송수신함으로써, 부호화·복호에 필요한 기억 용량의 증대를 억제할 수 있다.
<16. Wi-Fi 규격의 무선 통신 시스템의 응용예>
<Wi-Fi 규격의 무선 통신 시스템의 응용예>
본 기술을 적용 가능한 무선 통신 시스템에서의 무선 통신 장치의 기본 동작예에 대하여 설명한다.
<무선 통신 장치의 기본 동작예>
최초로, P2P(Peer to Peer) 접속을 확립하여 특정한 애플리케이션을 동작시킬 때까지의 무선 패킷 송수신이 이루어진다.
이어서, 제2층에서 접속하기 전에, 사용하는 특정한 애플리케이션을 지정하고 나서 P2P 접속을 확립하여 특정한 애플리케이션을 동작시킬 때까지의 무선 패킷 송수신이 이루어진다. 그 후, 제2층에서의 접속 후에, 특정한 애플리케이션을 기동하는 경우의 무선 패킷 송수신이 이루어진다.
<특정한 애플리케이션 동작 개시 시에 있어서의 통신 예>
도 136 및 도 137은, 상술한 P2P(Peer to Peer) 접속을 확립하여 특정한 애플리케이션을 동작시킬 때까지의 무선 패킷 송수신의 예이며, 무선 통신의 기초가 되는 각 장치에 의한 통신 처리 예를 나타내는 시퀀스 차트이다. 구체적으로는, Wi-Fi Alliance에 있어서 표준화되어 있는 Wi-Fi 다이렉트(Direct) 규격(Wi-Fi P2P라 불리는 경우도 있음)에서의 접속에 이르는 다이렉트 접속의 확립 수순의 일례를 나타낸다.
여기서, Wi-Fi 다이렉트에서는, 복수의 무선 통신 장치가 서로의 존재를 검출한다(Device Discovery, Service Discovery). 그리고, 접속 기기 선택을 행하면 그 선택된 기기간에 있어서, WPS(Wi-Fi Protected Setup)로 기기 인증을 행함으로써 다이렉트 접속을 확립한다. 또한, Wi-Fi 다이렉트에서는, 복수의 무선 통신 장치가 본체(Group Owner) 또는 별체(Client) 중 어떤 것으로서의 역할을 담당할지를 결정하여 통신 그룹을 형성한다.
단, 이 통신 처리 예에서는, 일부의 패킷 송수신에 대해서는 생략하여 나타낸다. 예를 들어, 첫회 접속 시에는, 상술한 바와 같이, WPS를 사용하기 위한 패킷 교환이 필요하고, AuthenticationRequest/Response의 교환 등에 있어서도 패킷교환이 필요해진다. 그러나, 도 136 및 도 137에서는, 이 패킷 교환에 관한 도시를 생략하고, 2회째 이후의 접속에 대해서만 나타낸다.
또한, 도 136 및 도 137에서는, 제1 무선 통신 장치(2701) 및 제2 무선 통신 장치(2702)사이에서의 통신 처리 예를 나타내지만, 다른 무선 통신 장치간에서의 통신 처리에 대해서도 마찬가지이다.
최초로, 제1 무선 통신 장치(2701) 및 제2 무선 통신 장치(2702)사이에 있어서 Device Discovery가 행하여진다(2711). 예를 들어, 제1 무선 통신 장치(2701)는, Probe request(응답 요구 신호)를 송신하고, 이 Probe request에 대한 Probe response(응답 신호)를 제2 무선 통신 장치(2702)로부터 수신한다. 이에 의해, 제1 무선 통신 장치(2701) 및 제2 무선 통신 장치(2702)는, 서로의 존재를 발견할 수 있다. 또한, Device Discovery에 의해, 상대의 디바이스 명이나 종류(TV, PC, 스마트폰 등)를 취득할 수 있다.
계속해서, 제1 무선 통신 장치(2701) 및 제2 무선 통신 장치(2702)사이에 있어서 Service Discovery가 행하여진다(2712). 예를 들어, 제1 무선 통신 장치(2701)는, Device Discovery에서 발견한 제2 무선 통신 장치(2702)가 대응하고 있는 서비스를 조회하는 Service Discovery Query를 송신한다. 그리고, 제1 무선 통신 장치(2701)는, Service Discovery Response를 제2 무선 통신 장치(2702)로부터 수신함으로써, 제2 무선 통신 장치(2702)가 대응하고 있는 서비스를 취득한다. 즉, Service Discovery에 의해, 상대가 실행 가능한 서비스 등을 취득할 수 있다. 상대가 실행 가능한 서비스는, 예를 들어, service, protocol(DLNA(Digital Living Network Alliance) DMR(Digital Media Renderer) 등)이다.
계속해서, 유저에 의해 접속 상대의 선택 조작(접속 상대 선택 조작)이 행하여진다(2713). 이 접속 상대 선택 조작은, 제1 무선 통신 장치(2701) 및 제2 무선 통신 장치(2702) 중 어느 한쪽에만 발생하기도 한다. 예를 들어, 제1 무선 통신 장치(2701)의 표시부에 접속 상대 선택 화면이 표시되고, 이 접속 상대 선택 화면에서 접속 상대로서 제2 무선 통신 장치(2702)가 유저 조작에 의해 선택된다.
유저에 의해 접속 상대 선택 조작이 행하여지면(2713), 제1 무선 통신 장치(2701) 및 제2 무선 통신 장치(2702)사이에 있어서 Group Owner Negotiation이 행하여진다(2714). 도 136 및 도 137에서는, Group Owner Negotiation의 결과에 의해, 제1 무선 통신 장치(2701)가 그룹 오너(Group Owner)(2715)가 되고, 제2 무선 통신 장치(2702)가 클라이언트(Client)(2716)가 되는 예를 나타낸다.
계속해서, 제1 무선 통신 장치(2701) 및 제2 무선 통신 장치(2702)사이에 있어서, 각 처리(2717 내지 2720))가 행해짐으로써 다이렉트 접속이 확립된다. 즉, Association(L2(제2층) link 확립)(2717), Secure link 확립(2718)이 순차 행하여진다. 또한, IP Address Assignment(2719), SSDP(Simple Service Discovery Protocol) 등에 의한 L3 상에서의 L4 setup(2720)이 순차 행하여진다. 또한, L2(layer2)는 제2층(데이터 링크층)을 의미하고, L3(layer3)은 제3층(네트워크층)을 의미하고, L4(layer4)는 제4층(트랜스포트층)을 의미한다.
계속해서, 유저에 의해 특정한 애플리케이션의 지정 또는 기동 조작(어플리케이션 지정·기동 조작)이 행하여진다(2721). 이 어플리케이션 지정·기동 조작은, 제1 무선 통신 장치(2701) 및 제2 무선 통신 장치(2702) 중 어느 한쪽에만 발생하기도 한다. 예를 들어, 제1 무선 통신 장치(2701)의 표시부에 어플리케이션 지정·기동 조작 화면이 표시되고, 이 어플리케이션 지정·기동 조작 화면에서 특정한 애플리케이션이 유저 조작에 의해 선택된다.
유저에 의해 어플리케이션 지정·기동 조작이 행하여지면(2721), 이 어플리케이션 지정·기동 조작에 대응하는 특정한 애플리케이션이 제1 무선 통신 장치(2701) 및 제2 무선 통신 장치(2702)사이에서 실행된다(2722).
여기서, Wi-Fi Direct 규격 이전의 사양(IEEE802.11로 표준화된 사양)의 범위 내에서, AP(Access Point)-STA(Station)간의 접속을 행하는 경우를 상정한다. 이 경우에는, 제2층에서 접속하기 전(IEEE802.11 용어로는 association 전)에는, 어떤 디바이스와 연결하려고 하고 있는지를 사전에 알 수 없었다.
이에 반해, 도 136 및 도 137에 도시한 바와 같이, Wi-Fi Direct에서는, Device discovery나 Service Discovery(option)에 있어서, 접속 후보 상대를 찾을 때에, 접속 상대의 정보를 취득할 수 있다. 이 접속 상대의 정보는, 예를 들어, 기본적인 디바이스의 타입이나, 대응하고 있는 특정한 애플리케이션 등이다. 그리고, 그 취득된 접속 상대의 정보에 기초하여, 유저에게 접속 상대를 선택시킬 수 있다.
이 구조를 확장하여, 제2층에서 접속하기 전에 특정한 애플리케이션을 지정하여, 접속 상대를 선택하고, 이 선택 후에, 자동으로 특정한 애플리케이션을 기동시키는 무선 통신 시스템을 실현하는 것도 가능하다. 이러한 경우의 접속에 이르는 시퀀스의 일례를, 도 139에 나타내었다. 또한, 이 통신 처리에 있어서 송수신되는 프레임 포맷(frame format)의 구성예를 도 138에 나타내었다.
<프레임 포맷의 구성예>
도 138은, 본 기술의 기초가 되는 각 장치에 의한 통신 처리에 있어서 송수신되는 프레임 포맷(frame format)의 구성예를 모식적으로 도시하는 도이다. 즉, 도 138에는, 제2층에서의 접속을 확립하기 위한 MAC frame의 구성예를 나타낸다. 구체적으로는, 도 139에 나타내는 시퀀스를 실현하기 위한 Association Request/Response(2787)의 프레임 포맷의 일례이다.
도 138에 도시된 바와 같이, MAC frame은, Frame Control(2751) 내지 FCS(2758)를 포함하고, 그 중, Frame Control(2751)로부터 Sequence Control(2756)까지는 MAC 헤더이다. 또한, Association Request를 송신할 때에는, Frame Control(2751)에 있어서, B3B2="0b00", 또한, B7B6B5B4="0b0000"이 설정된다. 또한, Association Response를 encapsulate할 때에는, Frame Control(2751)에 있어서, B3B2="0b00", 또한, B7B6B5B4="0b0001"이 설정된다. 또한, 「0b00」은, 2진법으로 「00」인 것을 나타내고, 「0b0000」은, 2진법으로 「0000」인 것을 나타내고, 「0b0001」은, 2진법으로 「0001」인 것을 나타낸다.
여기서, 도 138에 나타내는 MAC frame(Frame body(2757))은, 기본적으로는, IEEE802.11-2007 사양서 section7.2.3.4절과 7.2.3.5절에 기재된 Association Request/Responseframe format이다. 단, IEEE802.11 사양서 내에서 정의되어 있는 Information Element(이하, IE라 생략함)(2759)뿐만 아니라, 독자적으로 확장한 IE를 포함하고 있는 점이 상이하다.
또한, Vendor Specific IE(2760)인 것을 나타내기 위해서, IE Type(Information Element ID(2761))에는, 10진수로 127이 세트된다. 이 경우, IEEE802.11-2007 사양 7.3.2.26절에 의해, Length 필드(2762)와, OUI 필드(2763)가 계속되고, 그 후에 vendor specific content(2764)가 배치된다.
Vendor specific content(2764)의 내용으로서는, 최초로 vendor specific IE의 type을 나타내는 필드(IE type(2765))를 설치한다. 그리고, 그 후에, 복수의 subelement(2766)를 저장할 수 있는 구성으로 하는 것을 생각할 수 있다.
subelement(2766)의 내용으로서, 사용되어야 할 특정한 애플리케이션의 명칭(2767)이나, 그 특정한 애플리케이션 동작 시의 디바이스의 역할(2768)을 포함시키는 것을 생각할 수 있다. 또한, 특정한 애플리케이션, 또는, 그 제어를 위하여 사용되는 포트 번호 등의 정보(L4 셋업을 위한 정보)(2769)나, 특정한 애플리케이션 내에서의 Capability에 관한 정보(Capability 정보)(2770)를 포함하는 것을 생각할 수 있다. 여기서, Capability 정보는, 예를 들어, 지정하는 특정한 애플리케이션이 DLNA인 경우에, 음성 송출/재생에 대응하고 있거나, 영상 송출/재생에 대응하고 있는 것 등을 특정하기 위한 정보이다.
이상과 같은 구성의 무선 통신 시스템에 있어서, 도 1 내지 도 118을 참조하여 상술한 바와 같은 본 기술을 적용함으로써, 도 1 내지 도 118을 참조하여 상술한 효과와 마찬가지의 효과를 얻을 수 있다. 즉, 부호화·복호에 필요한 기억 용량의 증대를 억제할 수 있다. 또한, 상술한 무선 통신 시스템에 있어서, 본 기술에 의해 부호화된 데이터를 송수신함으로써, 부호화·복호에 필요한 기억 용량의 증대를 억제할 수 있다.
또한, 본 명세서에서는, 화상 데이터의 부호화 데이터 이외의 각종 정보가, 부호화 스트림에 다중화되어서, 부호화측으로부터 복호측에 전송되는 예에 대하여 설명하였다. 그러나, 이들 정보를 전송하는 방법은 이러한 예에 한정되지 않는다. 예를 들어, 이들 정보는, 부호화 비트 스트림에 다중화되지 않고, 부호화 비트 스트림과 관련지어진 별개의 데이터로서 전송되거나 또는 기록되어도 된다. 여기서, 「관련짓는다」라는 용어는, 비트 스트림에 포함되는 화상(슬라이스 또는 블록 등, 화상의 일부이어도 됨)과 당해 화상에 대응하는 정보를 복호시에 링크시킬 수 있도록 하는 것을 의미한다. 즉, 정보는, 화상(또는 비트 스트림)과는 다른 전송로 상에서 전송되어도 된다. 또한, 정보는, 화상(또는 비트 스트림)과는 다른 기록 매체(또는 동일한 기록 매체의 다른 기록 에리어)에 기록되어도 된다. 또한, 정보와 화상(또는 비트 스트림)은, 예를 들어, 복수 프레임, 1 프레임, 또는 프레임 내의 일부분 등의 임의의 단위로 서로 관련지어져도 된다.
또한, 본 명세서에서, CTU(Coding Tree Unit)는, LCU(최대수의 CU)의 CTB(Coding Tree Block)와, 그 LCU 베이스(레벨)로 처리할 때의 파라미터를 포함하는 단위인 것으로 한다. 또한, CTU를 구성하는 CU(Coding Unit)는, CB(Coding Block)와, 그 CU 베이스(레벨)로 처리할 때의 파라미터를 포함하는 단위인 것으로 한다.
또한, 본 기술은 이하와 같은 구성도 취할 수 있다.
(1) 커런트 레이어의 복호에 있어서 움직임 보상을 행하는 움직임 보상부와,
상기 움직임 보상부에 의해 재구축되어, 다른 레이어의 복호에서의 상기 움직임 보상에 이용되는 상기 커런트 레이어의 움직임 벡터를 압축하는 제1 압축부
를 구비하는 화상 처리 장치.
(2) 상기 움직임 보상부에 의해 재구축된 상기 커런트 레이어의 움직임 벡터를, 상기 제1 압축부보다 고압축률로 압축하는 제2 압축부를 더 구비하고,
상기 움직임 보상부는, 상기 제2 압축부에 의해 압축된 상기 움직임 벡터를 사용하여, 상기 커런트 레이어의 복호에서의 상기 움직임 보상을 행하는, 상기 (1) 내지 (9) 중 어느 한 항에 기재된 화상 처리 장치.
(3) 상기 제2 압축부는, 상기 제1 압축부에 의해 압축된 상기 움직임 벡터를 더 압축하는, 상기 (2)에 기재된 화상 처리 장치.
(4) 상기 움직임 보상부는, 상기 제1 압축부에 의해 압축된 상기 움직임 벡터를 사용하여, 상기 커런트 레이어의 복호에서의 상기 움직임 보상을 행하는, 상기 (1) 내지 (9) 중 어느 한 항에 기재된 화상 처리 장치.
(5) 다른 레이어의 복호에서의 상기 움직임 보상에 이용되는 상기 커런트 레이어의 움직임 벡터를 압축할지 여부를 나타내는 플래그를 수취하는 수취부와,
상기 수취부에 의해 수취된 상기 플래그가 움직임 벡터를 압축하는 것을 나타내는 값일 경우, 상기 제1 압축부에 의해 압축된 상기 움직임 벡터를, 다른 레이어의 복호에서의 상기 움직임 보상에 이용되는 상기 커런트 레이어의 움직임 벡터로서 선택하고, 상기 수취부에 의해 수취된 상기 플래그가 움직임 벡터를 압축하지 않는 것을 나타내는 값일 경우, 상기 제1 압축부에 의해 압축되기 전의 상기 움직임 벡터를, 다른 레이어의 복호에서의 상기 움직임 보상에 이용되는 상기 커런트 레이어의 움직임 벡터로서 선택하는 선택부
를 더 구비하는, 상기 (1) 내지 (9) 중 어느 한 항에 기재된 화상 처리 장치.
(6) 상기 움직임 보상부는, 상기 수취부에 의해 수취된 상기 플래그의 값에 관계없이, 상기 제1 압축부에 의해 압축된 상기 움직임 벡터를 사용하여, 상기 커런트 레이어의 복호에서의 상기 움직임 보상을 행하는, 상기 (5)에 기재된 화상 처리 장치.
(7) 상기 제1 압축부는, 상기 움직임 보상부에 의해 재구축된 복수의 움직임 벡터로부터, 대표치로 하는 움직임 벡터를 선택함으로써, 상기 커런트 레이어의 움직임 벡터를 압축하는, 상기 (1) 내지 (9) 중 어느 한 항에 기재된 화상 처리 장치.
(8) 상기 제1 압축부는, 상기 움직임 보상부에 의해 재구축된 복수의 움직임 벡터를 사용하여, 대표치로 하는 움직임 벡터를 산출함으로써, 상기 커런트 레이어의 움직임 벡터를 압축하는, 상기 (1) 내지 (9) 중 어느 한 항에 기재된 화상 처리 장치.
(9) 상기 움직임 보상부는, 다른 레이어의 복호에서의 상기 움직임 보상에 있어서 재구축된 움직임 벡터를 사용하여 상기 움직임 보상을 행하는, 상기 (1) 내지 (8) 중 어느 한 항에 기재된 화상 처리 장치.
(10) 화상 처리 장치의 화상 처리 방법에 있어서,
상기 화상 처리 장치가,
커런트 레이어의 복호에 있어서 움직임 보상을 행하고,
상기 움직임 보상에 의해 재구축되어, 다른 레이어의 복호에서의 상기 움직임 보상에 이용되는 상기 커런트 레이어의 움직임 벡터를 압축하는,
화상 처리 방법.
(11) 커런트 레이어의 부호화에 있어서 움직임 예측·보상을 행하는 움직임 예측·보상부와,
상기 움직임 예측·보상부에 의해 생성되고, 다른 레이어의 부호화에서의 상기 움직임 예측·보상에 이용되는, 상기 커런트 레이어의 움직임 벡터를 압축하는 제1 압축부
를 구비하는 화상 처리 장치.
(12) 상기 움직임 예측·보상부에 의해 생성된 상기 커런트 레이어의 움직임 벡터를, 상기 제1 압축부보다 고압축률로 압축하는 제2 압축부를 더 구비하고,
상기 움직임 예측·보상부는, 상기 제2 압축부에 의해 압축된 상기 움직임 벡터를 사용하여, 상기 커런트 레이어의 부호화에서의 상기 움직임 예측·보상을 행하는, 상기 (11) 내지 (19) 중 어느 한 항에 기재된 화상 처리 장치.
(13) 상기 제2 압축부는, 상기 제1 압축부에 의해 압축된 상기 움직임 벡터를 더 압축하는, 상기 (12)에 기재된 화상 처리 장치.
(14) 상기 움직임 예측·보상부는, 상기 제1 압축부에 의해 압축된 상기 움직임 벡터를 사용하여, 상기 커런트 레이어의 부호화에서의 상기 움직임 예측·보상을 행하는, 상기 (11) 내지 (19) 중 어느 한 항에 기재된 화상 처리 장치.
(15) 다른 레이어의 부호화에서의 상기 움직임 예측·보상에 이용되는 상기 커런트 레이어의 움직임 벡터를 압축할지 여부를 제어하는 제어부와,
상기 제어부의 제어에 따라, 상기 제1 압축부에 의해 압축되기 전의 상기 움직임 벡터와, 상기 제1 압축부에 의해 압축된 상기 움직임 벡터 중 어느 한쪽을, 다른 레이어의 부호화에서의 상기 움직임 예측·보상에 이용되는 상기 커런트 레이어의 움직임 벡터로서 선택하는 선택부와,
상기 제어부의 제어에 따라, 다른 레이어의 부호화에서의 상기 움직임 예측·보상에 이용되는 상기 커런트 레이어의 움직임 벡터를 압축할지 여부를 나타내는 플래그를 생성하는 생성부와,
상기 생성부에 의해 생성된 상기 플래그를 전송하는 전송부
를 더 구비하는, 상기 (11) 내지 (19) 중 어느 한 항에 기재된 화상 처리 장치.
(16) 상기 움직임 예측·보상부는, 상기 제어부의 제어에 관계없이, 상기 제1 압축부에 의해 압축된 상기 움직임 벡터를 사용하여, 상기 커런트 레이어의 부호화에서의 상기 움직임 예측·보상을 행하는, 상기 (15)에 기재된 화상 처리 장치.
(17) 상기 제1 압축부는, 상기 움직임 예측·보상부에 의해 생성된 복수의 움직임 벡터로부터, 대표치로 하는 움직임 벡터를 선택함으로써, 상기 커런트 레이어의 움직임 벡터를 압축하는, 상기 (11) 내지 (19) 중 어느 한 항에 기재된 화상 처리 장치.
(18) 상기 제1 압축부는, 상기 움직임 예측·보상부에 의해 생성된 복수의 움직임 벡터를 사용하여, 대표치로 하는 움직임 벡터 산출함으로써, 상기 커런트 레이어의 움직임 벡터를 압축하는, 상기 (11) 내지 (19) 중 어느 한 항에 기재된 화상 처리 장치.
(19) 상기 움직임 예측·보상부는, 다른 레이어의 부호화에서의 상기 움직임 예측·보상에 있어서 생성된 움직임 벡터를 사용하여 상기 움직임 예측·보상을 행하는, 상기 (11) 내지 (18) 중 어느 한 항에 기재된 화상 처리 장치.
(20) 화상 처리 장치의 화상 처리 방법에 있어서,
상기 화상 처리 장치가,
커런트 레이어의 부호화에 있어서 움직임 예측·보상을 행하고,
상기 움직임 예측·보상에 의해 생성되어, 다른 레이어의 부호화에서의 상기 움직임 예측·보상에 이용되는, 상기 커런트 레이어의 움직임 벡터를 압축하는,
화상 처리 방법.
(21) 복수 계층화된 화상 데이터가 부호화된 계층 화상 부호화 데이터를 수취하는 수취부와,
상기 수취부에 의해 수취된 상기 계층 화상 부호화 데이터의 베이스 레이어의 커런트 에리어에 대해서, 인트라 예측 모드를 씨닝하는 씨닝 처리부와,
상기 씨닝 처리부에 의해 씨닝되고 남은 베이스 레이어의 인트라 예측 모드를 상기 커런트 에리어의 대표로서 기억하는 기억부와,
상기 기억부에 기억되어 있는 베이스 레이어의 인트라 예측 모드 중, 상기 수취부에 의해 수취된 상기 계층 화상 부호화 데이터의 인핸스먼트 레이어의 커런트 블록에 대응하는 베이스 레이어의 인트라 예측 모드를 상기 기억부로부터 판독하고, 판독한 상기 인트라 예측 모드를 사용하여 인트라 예측을 행하여, 상기 인핸스먼트 레이어의 상기 커런트 블록의 예측 화상을 생성하는 인트라 예측부와,
상기 인트라 예측부에 의해 생성된 상기 예측 화상을 사용하여, 상기 수취부에 의해 수취된 상기 계층 화상 부호화 데이터의 인핸스먼트 레이어를 복호하는 복호부
를 구비하는 화상 처리 장치.
(22) 상기 씨닝 처리부는, 상기 커런트 에리어 내의 최초로 인트라 예측이 행하여지는 블록의 인트라 예측 모드를 상기 커런트 에리어의 대표로 하고, 상기 커런트 에리어 내의 그 밖의 블록의 인트라 예측 모드를 파기하는, (21), (23) 내지 (29) 중 어느 한 항에 기재된 화상 처리 장치.
(23) 상기 씨닝 처리부는, 상기 커런트 에리어의 중심 부근의 블록 인트라 예측 모드를 상기 커런트 에리어의 대표로 하고, 상기 커런트 에리어 내의 그 밖의 블록의 인트라 예측 모드를 파기하는, (21), (22), (24) 내지 (29) 중 어느 한 항에 기재된 화상 처리 장치.
(24) 상기 수취부는, 또한 씨닝률을 수취하고,
상기 씨닝 처리부는, 상기 수취부에 의해 수취된 상기 씨닝률로 상기 베이스 레이어의 인트라 예측 모드를 씨닝하는, (21) 내지 (23), (25) 내지 (29) 중 어느 한 항에 기재된 화상 처리 장치.
(25) 상기 씨닝률은, 베이스 레이어의 해상도를 기준으로 설정되어 있는, (21) 내지 (24), (26) 내지 (29) 중 어느 한 항에 기재된 화상 처리 장치.
(26) 상기 씨닝률은, 상기 계층 화상 부호화 데이터의 소정의 위치에 저장되어서 전송되는, (21) 내지 (25), (27) 내지 (29) 중 어느 한 항에 기재된 화상 처리 장치.
(27) 상기 씨닝률은, 비디오 파라미터 세트에 있어서 전송되는, (21) 내지 (26), (28), (29) 중 어느 한 항에 기재된 화상 처리 장치.
(28) 상기 씨닝률은, 상기 계층 화상 부호화 데이터의 인핸스먼트 레이어의 시퀀스 파라미터 세트, 픽처 파라미터 세트, 또는 슬라이스 헤더에 있어서 전송되는, (21) 내지 (27), (29) 중 어느 한 항에 기재된 화상 처리 장치.
(29) 상기 복호부는, 또한, 상기 계층 화상 부호화 데이터의 인핸스먼트 레이어와 서로 다른 부호화 방식으로 부호화된 상기 계층 화상 부호화 데이터의 베이스 레이어를 복호하는, (21) 내지 (28) 중 어느 한 항에 기재된 화상 처리 장치.
(30) 복수 계층화된 화상 데이터가 부호화된 계층 화상 부호화 데이터를 수취하고,
수취된 상기 계층 화상 부호화 데이터의 베이스 레이어의 커런트 에리어에 대해서, 인트라 예측 모드를 씨닝하고,
씨닝되고 남은 베이스 레이어의 인트라 예측 모드를 상기 커런트 에리어의 대표로서 기억부에 기억하고,
상기 기억부에 기억되어 있는 베이스 레이어의 인트라 예측 모드 중, 수취된 상기 계층 화상 부호화 데이터의 인핸스먼트 레이어의 커런트 블록에 대응하는 베이스 레이어의 인트라 예측 모드를 상기 기억부로부터 판독하고, 판독한 상기 인트라 예측 모드를 사용하여 인트라 예측을 행하여, 상기 인핸스먼트 레이어의 상기 커런트 블록의 예측 화상을 생성하고,
생성된 상기 예측 화상을 사용하여, 수취된 상기 계층 화상 부호화 데이터의 인핸스먼트 레이어를 복호하는,
화상 처리 방법.
(31) 복수 계층화된 화상 데이터의 베이스 레이어의 커런트 에리어에 대해서, 인트라 예측 모드를 씨닝하는 씨닝 처리부와,
상기 씨닝 처리부에 의해 씨닝되고 남은 베이스 레이어의 인트라 예측 모드를 상기 커런트 에리어의 대표로서 기억하는 기억부와,
상기 기억부에 기억되어 있는 베이스 레이어의 인트라 예측 모드 중, 상기 화상 데이터의 인핸스먼트 레이어의 커런트 블록에 대응하는 베이스 레이어의 인트라 예측 모드를 상기 기억부로부터 판독하고, 판독한 상기 인트라 예측 모드를 사용하여 인트라 예측을 행하여, 상기 인핸스먼트 레이어의 상기 커런트 블록의 예측 화상을 생성하는 인트라 예측부와,
상기 인트라 예측부에 의해 생성된 상기 예측 화상을 사용하여, 상기 화상 데이터의 인핸스먼트 레이어를 부호화하는 부호화부와,
상기 부호화부에 의해 상기 화상 데이터가 부호화되어 얻어진 계층 화상 부호화 데이터를 전송하는 전송부
를 구비하는 화상 처리 장치.
(32) 상기 씨닝 처리부는, 상기 커런트 에리어 내의 최초로 인트라 예측이 행하여지는 블록의 인트라 예측 모드를 상기 커런트 에리어의 대표로 하고, 상기 커런트 에리어 내의 그 밖의 블록의 인트라 예측 모드를 파기하는, (31), (33) 내지 (39) 중 어느 한 항에 기재된 화상 처리 장치.
(33) 상기 씨닝 처리부는, 상기 커런트 에리어의 중심 부근의 블록 인트라 예측 모드를 상기 커런트 에리어의 대표로 하고, 상기 커런트 에리어 내의 그 밖의 블록의 인트라 예측 모드를 파기하는, (31), (32), (34) 내지 (39) 중 어느 한 항에 기재된 화상 처리 장치.
(34) 씨닝률을 설정하는 씨닝률 설정부를 더 구비하고,
상기 씨닝 처리부는, 상기 씨닝률 설정부에 의해 설정된 상기 씨닝률로 상기 베이스 레이어의 인트라 예측 모드를 씨닝하는, (31) 내지 (33), (35) 내지 (39) 중 어느 한 항에 기재된 화상 처리 장치.
(35) 상기 씨닝률 설정부는, 상기 씨닝률을, 베이스 레이어의 해상도를 기준으로 설정하는, (31) 내지 (34), (36) 내지 (39) 중 어느 한 항에 기재된 화상 처리 장치.
(36) 상기 전송부는, 상기 씨닝률을, 상기 계층 화상 부호화 데이터의 소정의 위치에 저장하여 전송하는, (31) 내지 (35), (37) 내지 (39) 중 어느 한 항에 기재된 화상 처리 장치.
(37) 상기 전송부는, 상기 씨닝률을, 비디오 파라미터 세트에 있어서 전송하는, (31) 내지 (36), (38), (39) 중 어느 한 항에 기재된 화상 처리 장치.
(38) 상기 전송부는, 상기 씨닝률을, 상기 계층 화상 부호화 데이터의 인핸스먼트 레이어의 시퀀스 파라미터 세트, 픽처 파라미터 세트, 또는 슬라이스 헤더에 있어서 전송하는, (31) 내지 (37), (39) 중 어느 한 항에 기재된 화상 처리 장치.
(39) 상기 부호화부는, 또한, 상기 화상 데이터의 인핸스먼트 레이어와 상이한 부호화 방식으로, 상기 화상 데이터의 베이스 레이어를 부호화하는, (31) 내지 (38) 중 어느 한 항에 기재된 화상 처리 장치.
(40) 복수 계층화된 화상 데이터의 베이스 레이어의 커런트 에리어에 대해서, 인트라 예측 모드를 씨닝하고,
씨닝되고 남은 베이스 레이어의 인트라 예측 모드를 상기 커런트 에리어의 대표로서 기억부에 기억하고,
상기 기억부에 기억되어 있는 베이스 레이어의 인트라 예측 모드 중, 상기 화상 데이터의 인핸스먼트 레이어의 커런트 블록에 대응하는 베이스 레이어의 인트라 예측 모드를 상기 기억부로부터 판독하고, 판독한 상기 인트라 예측 모드를 사용하여 인트라 예측을 행하여, 상기 인핸스먼트 레이어의 상기 커런트 블록의 예측 화상을 생성하고,
생성된 상기 예측 화상을 사용하여, 상기 화상 데이터의 인핸스먼트 레이어를 부호화하고,
상기 화상 데이터가 부호화되어 얻어진 계층 화상 부호화 데이터를 전송하는,
화상 처리 방법.
(41) 복수 레이어를 포함하는 화상 데이터의 커런트 레이어의 부호화 데이터와, 상기 화상 데이터의 커런트 레이어의 복호에 사용하는 다른 레이어의 움직임 정보의 예측 방향을 나타내는 제어 정보를 수취하는 수취부와,
상기 다른 레이어의, 상기 수취부에 의해 수취된 상기 제어 정보에 의해 나타나는 상기 예측 방향의 움직임 정보를 취득하는 움직임 정보 취득부와,
상기 움직임 정보 취득부에 의해 취득된 상기 다른 레이어의 상기 예측 방향의 움직임 정보를 사용하여 움직임 예측을 행하고, 상기 커런트 레이어의 예측 화상을 생성하는 예측 화상 생성부와,
상기 예측 화상 생성부에 의해 생성된 상기 예측 화상을 사용하여 상기 커런트 레이어의 부호화 데이터를 복호하는 복호부
를 구비하는 화상 복호 장치.
(42) 상기 제어 정보는, 상기 예측 방향이 L0 방향인지를 나타내는 정보인, (41), (43) 내지 (49) 중 어느 한 항에 기재된 화상 복호 장치.
(43) 상기 제어 정보는, 상기 예측 방향이 L1 방향인지를 나타내는 정보인, (41), (42), (44) 내지 (49) 중 어느 한 항에 기재된 화상 복호 장치.
(44) 상기 제어 정보는, 상기 예측 방향이 L0 방향인지, L1 방향인지를 나타내는 정보인, (41) 내지 (43), (45) 내지 (49) 중 어느 한 항에 기재된 화상 복호 장치.
(45) 상기 제어 정보는, 상기 예측 방향을, 픽처를 복수로 분할하는 슬라이스마다 나타내는 정보인, (41) 내지 (44), (46) 내지 (49) 중 어느 한 항에 기재된 화상 복호 장치.
(46) 상기 수취부는, 상기 제어 정보를 상기 슬라이스마다 수취하는, (41) 내지 (45), (47) 내지 (49) 중 어느 한 항에 기재된 화상 복호 장치.
(47) 상기 움직임 정보 취득부에 의해 취득된 상기 다른 레이어의 움직임 정보의 예측 방향이, 사용시의 예측 방향과 상이한 경우, 상기 다른 레이어의 움직임 정보의 예측 방향을 변환하는 변환부를 더 구비하는, (41) 내지 (46), (48), (49) 중 어느 한 항에 기재된 화상 복호 장치.
(48) 상기 변환부는, 또한, 상기 움직임 정보 취득부에 의해 취득된 상기 다른 레이어의 움직임 정보를 상기 커런트 레이어 기준으로 변환하는, (41) 내지 (47), (49) 중 어느 한 항에 기재된 화상 복호 장치.
(49) 상기 움직임 정보 취득부는, 상기 다른 레이어의, 상기 커런트 레이어의 커런트 에리어에 대응하는 에리어의, 상기 제어 정보에 의해 나타나는 예측 방향의 움직임 정보를 취득하는, (41) 내지 (48) 중 어느 한 항에 기재된 화상 복호 장치.
(50) 복수 레이어를 포함하는 화상 데이터의 커런트 레이어의 부호화 데이터와, 상기 화상 데이터의 커런트 레이어의 복호에 사용하는 다른 레이어의 움직임 정보의 예측 방향을 나타내는 제어 정보를 수취하고,
상기 다른 레이어의, 수취된 상기 제어 정보에 의해 나타나는 상기 예측 방향의 움직임 정보를 취득하고,
취득된 상기 다른 레이어의 상기 예측 방향의 움직임 정보를 사용하여 움직임 예측을 행하여, 상기 커런트 레이어의 예측 화상을 생성하고,
생성된 상기 예측 화상을 사용하여 상기 커런트 레이어의 부호화 데이터를 복호하는,
화상 복호 방법.
(51) 복수 레이어를 포함하는 화상 데이터의 커런트 레이어의 부호화에 사용하는 다른 레이어의 움직임 정보의 예측 방향을 설정하는 예측 방향 설정부와,
상기 다른 레이어의, 상기 예측 방향 설정부에 의해 설정된 예측 방향의 움직임 정보를 취득하는 움직임 정보 취득부와,
상기 움직임 정보 취득부에 의해 취득된 상기 다른 레이어의 상기 예측 방향의 움직임 정보를 사용하여 움직임 예측을 행하고, 상기 커런트 레이어의 예측 화상을 생성하는 예측 화상 생성부와,
상기 예측 화상 생성부에 의해 생성된 상기 예측 화상을 사용하여 상기 화상 데이터의 커런트 레이어를 부호화하는 부호화부와,
상기 부호화부에 의해 생성된 상기 화상 데이터의 부호화 데이터와, 상기 예측 방향 설정부에 의해 설정된 상기 예측 방향을 나타내는 제어 정보를 전송하는 전송부
를 구비하는 화상 부호화 장치.
(52) 상기 제어 정보는, 상기 예측 방향 설정부에 의해 설정된 예측 방향이 L0 방향인지를 나타내는 정보인, (51), (53) 내지 (59) 중 어느 한 항에 기재된 화상 부호화 장치.
(53) 상기 제어 정보는, 상기 예측 방향 설정부에 의해 설정된 예측 방향이 L1 방향인지를 나타내는 정보인, (51), (52), (54) 내지 (59) 중 어느 한 항에 기재된 화상 부호화 장치.
(54) 상기 제어 정보는, 상기 예측 방향 설정부에 의해 설정된 예측 방향이 L0 방향인지, L1 방향인지를 나타내는 정보인, (51) 내지 (53), (55) 내지 (59) 중 어느 한 항에 기재된 화상 부호화 장치.
(55) 상기 예측 방향 설정부는, 상기 예측 방향을, 픽처를 복수로 분할하는 슬라이스마다 설정하는, (51) 내지 (54), (56) 내지 (59) 중 어느 한 항에 기재된 화상 부호화 장치.
(56) 상기 전송부는, 상기 제어 정보를 상기 슬라이스마다 전송하는, (51) 내지 (55), (57) 내지 (59) 중 어느 한 항에 기재된 화상 부호화 장치.
(57) 상기 움직임 정보 취득부에 의해 취득된 상기 다른 레이어의 움직임 정보의 예측 방향이, 사용시의 예측 방향과 상이한 경우, 상기 다른 레이어의 움직임 정보의 예측 방향을 변환하는 변환부를 더 구비하는, (51) 내지 (56), (58), (59) 중 어느 한 항에 기재된 화상 부호화 장치.
(58) 상기 변환부는, 또한, 상기 움직임 정보 취득부에 의해 취득된 상기 다른 레이어의 움직임 정보를 상기 커런트 레이어 기준으로 변환하는, (51) 내지 (57), (59) 중 어느 한 항에 기재된 화상 부호화 장치.
(59) 상기 움직임 정보 취득부는, 상기 다른 레이어의, 상기 커런트 레이어의 커런트 에리어에 대응하는 에리어의, 상기 예측 방향 설정부에 의해 설정된 예측 방향의 움직임 정보를 취득하는, (51) 내지 (58) 중 어느 한 항에 기재된 화상 부호화 장치.
(60) 복수 레이어를 포함하는 화상 데이터의 커런트 레이어의 부호화에 사용하는 다른 레이어의 움직임 정보의 예측 방향을 설정하고,
상기 다른 레이어의, 설정된 예측 방향의 움직임 정보를 취득하고,
취득된 상기 다른 레이어의 상기 예측 방향의 움직임 정보를 사용하여 움직임 예측을 행하여, 상기 커런트 레이어의 예측 화상을 생성하고,
생성된 상기 예측 화상을 사용하여 상기 화상 데이터의 커런트 레이어를 부호화하고,
상기 화상 데이터가 부호화되어 생성된 부호화 데이터와, 설정된 상기 예측 방향을 나타내는 제어 정보를 전송하는,
화상 부호화 방법.
100 : 화상 부호화 장치 114 : 움직임 예측·보상부
121 : 움직임 벡터 압축부 122 : 움직임 벡터 메모리
200 : 화상 복호 장치 211 : 움직임 보상부
221 : 움직임 벡터 압축부 222 : 움직임 벡터 메모리
300 : 화상 부호화 장치 314 : 움직임 예측·보상부
321 : 움직임 벡터 압축부 322 : 템포럴 메모리
323 : 움직임 벡터 압축부 324 : 움직임 벡터 메모리
400 : 화상 복호 장치 411 : 움직임 보상부
421 : 움직임 벡터 압축부 422 : 템포럴 메모리
423 : 움직임 벡터 압축부 424 : 움직임 벡터 메모리
500 : 화상 부호화 장치 514 : 움직임 예측·보상부
506 : 가역 부호화부 507 : 축적 버퍼
521 : 제어부 522 : 플래그 생성부
531 : 선택부 532 : 템포럴 메모리
533 : 움직임 벡터 압축부 534 : 움직임 벡터 메모리
535 : 선택부 600 : 화상 복호 장치
601 : 축적 버퍼 602 : 가역 복호부
621 : 제어부 631 : 선택부
632 : 템포럴 메모리 633 : 움직임 벡터 압축부
634 : 움직임 벡터 메모리 635 : 선택부

Claims (20)

  1. 커런트 블록의 레이어 방향으로 주변 블록의 움직임 벡터를, 시간 방향으로 주변 블록의 움직임 벡터와 동일한 압축율로 압축하는 압축부와,
    상기 압축부에 의해 압축된 움직임 벡터를, 상기 커런트 블록의 움직임 벡터에 대한 예측 움직임 벡터로서 이용하여, 상기 커런트 블록의 움직임 벡터를 재구축하고, 재구축된 상기 움직임 벡터를 이용하여 움직임 보상을 행하여 예측 화상을 생성하는 움직임 보상부와,
    상기 움직임 보상부에 의해 생성된 상기 예측 화상을 이용하여, 상기 커런트 블록을 복호하여, 복호 화상을 생성하는 복호부
    를 구비하는 화상 처리 장치.
  2. 제1항에 있어서,
    상기 움직임 보상부는, 상기 압축부에 의해 압축된 움직임 벡터를 이용하여, 상기 커런트 블록에 대한 예측 움직임 벡터의 후보를 결정하는, 화상 처리 장치.
  3. 제1항에 있어서,
    상기 압축부에 의해 압축된 상기 움직임 벡터를 기억하는 기억부를 더 구비하고,
    상기 움직임 보상부는, 상기 기억부에 기억된 상기 움직임 벡터를 상기 예측 움직임 벡터로서 이용하는, 화상 처리 장치.
  4. 제1항에 있어서,
    상기 압축부는, 상기 움직임 벡터의 정밀도를 16x16 정밀도로 압축하는, 화상 처리 장치.
  5. 제4항에 있어서,
    상기 압축부는, 상기 움직임 벡터의 정밀도를 4x4 정밀도로부터 16x16 정밀도로 압축하는, 화상 처리 장치.
  6. 제4항에 있어서,
    상기 압축부는, 상기 움직임 벡터의 정밀도를 8x8 정밀도로부터 16x16 정밀도로 압축하는, 화상 처리 장치.
  7. 제1항에 있어서,
    상기 압축부는, 상기 움직임 벡터의 정밀도를 8x8 정밀도로 압축하는, 화상 처리 장치.
  8. 제7항에 있어서,
    상기 압축부는, 상기 움직임 벡터의 정밀도를 4x4 정밀도로부터 8x8 정밀도로 압축하는, 화상 처리 장치.
  9. 커런트 블록의 레이어 방향으로 주변 블록의 움직임 벡터를, 시간 방향으로 주변 블록의 움직임 벡터와 동일한 압축율로 압축하고,
    압축된 움직임 벡터를, 상기 커런트 블록의 움직임 벡터에 대한 예측 움직임 벡터로서 이용하여, 상기 커런트 블록의 움직임 벡터를 재구축하고, 재구축된 상기 움직임 벡터를 이용하여 움직임 보상을 행하여 예측 화상을 생성하고,
    생성된 상기 예측 화상을 이용하여, 상기 커런트 블록을 복호하여, 복호 화상을 생성하는 화상 처리 방법.
  10. 삭제
  11. 삭제
  12. 삭제
  13. 삭제
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
KR1020157004523A 2012-09-03 2013-08-21 화상 처리 장치 및 방법 KR102122620B1 (ko)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
JP2012193607 2012-09-03
JPJP-P-2012-193607 2012-09-03
JPJP-P-2012-286726 2012-12-28
JP2012286726 2012-12-28
JP2013064131 2013-03-26
JPJP-P-2013-064131 2013-03-26
PCT/JP2013/072232 WO2014034480A1 (ja) 2012-09-03 2013-08-21 画像処理装置および方法

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020207010191A Division KR102221615B1 (ko) 2012-09-03 2013-08-21 화상 처리 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20150052016A KR20150052016A (ko) 2015-05-13
KR102122620B1 true KR102122620B1 (ko) 2020-06-12

Family

ID=50183295

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020157004523A KR102122620B1 (ko) 2012-09-03 2013-08-21 화상 처리 장치 및 방법
KR1020207010191A KR102221615B1 (ko) 2012-09-03 2013-08-21 화상 처리 장치 및 방법

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020207010191A KR102221615B1 (ko) 2012-09-03 2013-08-21 화상 처리 장치 및 방법

Country Status (8)

Country Link
US (3) US20150208074A1 (ko)
EP (2) EP3687173A1 (ko)
JP (2) JP6260534B2 (ko)
KR (2) KR102122620B1 (ko)
CN (4) CN104604231B (ko)
MX (1) MX340603B (ko)
RU (2) RU2658793C2 (ko)
WO (1) WO2014034480A1 (ko)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104704836B (zh) * 2012-10-03 2018-04-17 寰发股份有限公司 三维视频、多视图视频及可缩放视频的编码方法及装置
EP3163882B1 (en) 2014-06-30 2019-08-07 Sony Corporation Information processing device and method
WO2016143972A1 (ko) * 2015-03-11 2016-09-15 엘지전자(주) 비디오 신호의 인코딩/디코딩 방법 및 장치
US10602180B2 (en) 2017-06-13 2020-03-24 Qualcomm Incorporated Motion vector prediction
JP6977422B2 (ja) * 2017-09-13 2021-12-08 株式会社Jvcケンウッド トランスコード装置、トランスコード方法及びトランスコードプログラム
EP3700204A4 (en) 2017-10-20 2020-08-26 Fujitsu Limited MOVING IMAGE ENCODING DEVICE, MOVING IMAGE ENCODING PROCESS, MOVING IMAGE ENCODING COMPUTER PROGRAM, MOVING IMAGE DECODING DEVICE, MOVING IMAGE DECODING PROCESS AND PROGRAM MOVING IMAGE DECODING COMPUTING
KR102456474B1 (ko) * 2018-04-27 2022-10-20 삼성디스플레이 주식회사 영상 처리 회로, 영상 처리 회로를 포함하는 표시 장치 및 그것의 구동 방법
US11665365B2 (en) * 2018-09-14 2023-05-30 Google Llc Motion prediction coding with coframe motion vectors
MX2021013067A (es) * 2019-04-25 2021-12-14 Op Solutions Llc Candidatos en tramas con movimiento global.

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006074651A (ja) * 2004-09-06 2006-03-16 Victor Co Of Japan Ltd 符号化映像信号の記録方法

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002199399A (ja) * 2000-12-27 2002-07-12 Sony Corp 動きベクトル変換方法及び変換装置
KR100774296B1 (ko) * 2002-07-16 2007-11-08 삼성전자주식회사 움직임 벡터 부호화 방법, 복호화 방법 및 그 장치
TWI268715B (en) * 2004-08-16 2006-12-11 Nippon Telegraph & Telephone Picture encoding method, picture decoding method, picture encoding apparatus, and picture decoding apparatus
KR100888963B1 (ko) * 2004-12-06 2009-03-17 엘지전자 주식회사 영상 신호의 스케일러블 인코딩 및 디코딩 방법
KR20060088461A (ko) * 2005-02-01 2006-08-04 엘지전자 주식회사 영상신호의 엔코딩/디코딩시에 영상블록을 위한 모션벡터를베이스 레이어 픽처의 모션벡터로부터 유도하는 방법 및장치
KR100896279B1 (ko) * 2005-04-15 2009-05-07 엘지전자 주식회사 영상 신호의 스케일러블 인코딩 및 디코딩 방법
EP1897377A4 (en) * 2005-05-26 2010-12-22 Lg Electronics Inc METHOD FOR PROVIDING AND USING INTERLOCK PREDICTION INFORMATION FOR VIDEO SIGNAL
EP1946563A2 (en) * 2005-10-19 2008-07-23 Thomson Licensing Multi-view video coding using scalable video coding
US9014280B2 (en) * 2006-10-13 2015-04-21 Qualcomm Incorporated Video coding with adaptive filtering for motion compensated prediction
KR101375669B1 (ko) * 2006-11-07 2014-03-19 삼성전자주식회사 인터 예측 부호화, 복호화 방법 및 장치
CN101420609B (zh) * 2007-10-24 2010-08-25 华为终端有限公司 视频编码、解码方法及视频编码器、解码器
US8724697B2 (en) * 2008-09-26 2014-05-13 Qualcomm Incorporated Locating motion vectors for video data units
TW201041404A (en) * 2009-03-06 2010-11-16 Sony Corp Image processing device and method
WO2012096164A1 (ja) * 2011-01-12 2012-07-19 パナソニック株式会社 画像符号化方法、画像復号方法、画像符号化装置および画像復号装置
US8553769B2 (en) * 2011-01-19 2013-10-08 Blackberry Limited Method and device for improved multi-layer data compression
US20130188013A1 (en) * 2011-07-22 2013-07-25 Qualcomm Incorporated Mvc based 3dvc codec supporting inside view motion prediction (ivmp) mode
JP5950541B2 (ja) * 2011-11-07 2016-07-13 キヤノン株式会社 動きベクトル符号化装置、動きベクトル符号化方法及びプログラム、動きベクトル復号装置、動きベクトル復号方法及びプログラム
US9485503B2 (en) * 2011-11-18 2016-11-01 Qualcomm Incorporated Inside view motion prediction among texture and depth view components
US9900593B2 (en) * 2012-08-29 2018-02-20 Vid Scale, Inc. Method and apparatus of motion vector prediction for scalable video coding
CN104704836B (zh) * 2012-10-03 2018-04-17 寰发股份有限公司 三维视频、多视图视频及可缩放视频的编码方法及装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006074651A (ja) * 2004-09-06 2006-03-16 Victor Co Of Japan Ltd 符号化映像信号の記録方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Heiko Schwarz ET. AL., "3D video coding using advanced prediction, depth modeling, and encoder control methods", 2012 Picture Coding Symposium, 2012.05.07.*

Also Published As

Publication number Publication date
CN109413424B (zh) 2022-11-15
EP2892235B1 (en) 2020-07-22
US20190238881A1 (en) 2019-08-01
KR102221615B1 (ko) 2021-03-02
CN105141964B (zh) 2018-07-03
JP6260655B2 (ja) 2018-01-17
RU2018117906A3 (ko) 2019-02-01
CN104604231A (zh) 2015-05-06
WO2014034480A1 (ja) 2014-03-06
JP6260534B2 (ja) 2018-01-17
CN105141964A (zh) 2015-12-09
MX340603B (es) 2016-07-15
US10616598B2 (en) 2020-04-07
JPWO2014034480A1 (ja) 2016-08-08
EP2892235A1 (en) 2015-07-08
MX2015002453A (es) 2015-06-05
RU2658793C2 (ru) 2018-06-22
JP2016213875A (ja) 2016-12-15
CN109413424A (zh) 2019-03-01
EP3687173A1 (en) 2020-07-29
CN109413425B (zh) 2023-04-14
US20150208074A1 (en) 2015-07-23
EP2892235A4 (en) 2016-04-27
RU2015106126A (ru) 2016-09-10
RU2680741C2 (ru) 2019-02-26
CN109413425A (zh) 2019-03-01
KR20150052016A (ko) 2015-05-13
KR20200039836A (ko) 2020-04-16
US20170208338A1 (en) 2017-07-20
US10349076B2 (en) 2019-07-09
CN104604231B (zh) 2018-12-18
RU2018117906A (ru) 2018-07-25

Similar Documents

Publication Publication Date Title
KR102122620B1 (ko) 화상 처리 장치 및 방법
US11706448B2 (en) Image processing apparatus and image processing method
JP6607414B2 (ja) 画像符号化装置および方法
KR102135986B1 (ko) 화상 처리 장치 및 방법
US10841618B2 (en) Image processing device and method
WO2014050675A1 (ja) 画像処理装置および方法
WO2015005136A1 (ja) 画像符号化装置および方法、並びに、画像復号装置および方法
AU2016213857B2 (en) Image Processing Device

Legal Events

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