TW202218421A - 內容顯示處理 - Google Patents

內容顯示處理 Download PDF

Info

Publication number
TW202218421A
TW202218421A TW110108737A TW110108737A TW202218421A TW 202218421 A TW202218421 A TW 202218421A TW 110108737 A TW110108737 A TW 110108737A TW 110108737 A TW110108737 A TW 110108737A TW 202218421 A TW202218421 A TW 202218421A
Authority
TW
Taiwan
Prior art keywords
display
image data
image
content
user
Prior art date
Application number
TW110108737A
Other languages
English (en)
Inventor
丹尼爾 利亞姆 菲茨杰拉德
羅德尼 伊恩 蘭姆
Original Assignee
澳大利亞商伊門斯機器人控股有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 澳大利亞商伊門斯機器人控股有限公司 filed Critical 澳大利亞商伊門斯機器人控股有限公司
Publication of TW202218421A publication Critical patent/TW202218421A/zh

Links

Images

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/39Control of the bit-mapped memory
    • G09G5/395Arrangements specially adapted for transferring the contents of the bit-mapped memory to the screen
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/44004Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving video buffer management, e.g. video decoder buffer or video display buffer
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/017Head mounted
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/007Transform coding, e.g. discrete cosine transform
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/003Details of a display terminal, the details relating to the control arrangement of the display terminal and to the interfaces thereto
    • G09G5/006Details of the interface to the display terminal
    • 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
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • 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
    • 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/18Methods 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 a set of transform coefficients
    • 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/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234381Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by altering the temporal resolution, e.g. decreasing the frame rate by frame skipping
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
    • H04N21/440281Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display by altering the temporal resolution, e.g. by frame skipping
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/442Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
    • H04N21/44209Monitoring of downstream path of the transmission network originating from a server, e.g. bandwidth variations of a wireless network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/637Control signals issued by the client directed to the server or network components
    • H04N21/6377Control signals issued by the client directed to the server or network components directed to server
    • H04N21/6379Control signals issued by the client directed to the server or network components directed to server directed to encoder, e.g. for requesting a lower encoding rate
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/0093Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00 with means for monitoring data relating to the user, e.g. head-tracking, eye-tracking
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2310/00Command of the display device
    • G09G2310/08Details of timing specific for flat panels, other than clock recovery
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2340/00Aspects of display data processing
    • G09G2340/02Handling of images in compressed format, e.g. JPEG, MPEG
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2340/00Aspects of display data processing
    • G09G2340/04Changes in size, position or resolution of an image
    • G09G2340/0407Resolution change, inclusive of the use of different resolutions for different screen areas
    • G09G2340/0435Change or adaptation of the frame rate of the video stream
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2360/00Aspects of the architecture of display systems
    • G09G2360/18Use of a frame buffer in a display terminal, inclusive of the display panel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B7/00Radio transmission systems, i.e. using radiation field
    • H04B7/02Diversity systems; Multi-antenna system, i.e. transmission or reception using multiple antennas
    • H04B7/022Site diversity; Macro-diversity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/436Interfacing a local distribution network, e.g. communicating with another STB or one or more peripheral devices inside the home
    • H04N21/4363Adapting the video stream to a specific local network, e.g. a Bluetooth® network
    • H04N21/43637Adapting the video stream to a specific local network, e.g. a Bluetooth® network involving a wireless protocol, e.g. Bluetooth, RF or wireless LAN [IEEE 802.11]

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Optics & Photonics (AREA)
  • Databases & Information Systems (AREA)
  • Computer Graphics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Discrete Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Transition And Organic Metals Composition Catalysts For Addition Polymerization (AREA)
  • Separation By Low-Temperature Treatments (AREA)
  • Controls And Circuits For Display Device (AREA)

Abstract

本發明揭示一種用於顯示內容的系統,該系統包括一顯示裝置,該顯示裝置包括一配置成儲存影像資料之顯示緩衝區、及一配置成使用儲存在該顯示緩衝區中的影像資料來顯示影像之顯示器。該系統包括一輸入緩衝區,其配置成逐步接收已編碼影像資料部分的串流,每一已編碼影像資料部分係定義一表示相對影像部分的影像資料部分並儲存每一已編碼影像資料部分。一解碼器配置成逐步解碼每一已編碼影像資料部分,以產生一相對的影像資料部分,並將每一影像資料部分寫入該顯示緩衝區,以在該顯示緩衝區中逐步建構影像資料。一顯示控制器配置成使該顯示器根據儲存在該顯示緩衝區中的影像資料來顯示影像,以動態調整所顯示影像的影格率。

Description

內容顯示處理
本發明係關於一種用於顯示內容的系統及方法,並且在一特定範例中,關於一種用於動態調整顯示影格率的系統及方法。
本文中與任何公開參考文獻(或自其中衍生的資訊)或任何習知內容相關的敘述,皆非且不應被視為認可、承認或以任何形式主張公開參考文獻(或自其中衍生的資訊)或習知內容屬於本發明所屬技術領域中通常知識的一部分。
使用虛擬實境、擴增實境及混合實境系統時,一般會提供穿戴式顯示裝置,如頭戴式顯示器(HMD),該裝置基於自身的相對空間位置及/或方向,將相關資訊顯示給穿戴者觀看。此類系統會基於與顯示裝置的姿勢(位置及方向)相關的資訊生成影像,因此當顯示裝置移動時,影像會隨之更新以反映顯示裝置的新姿勢。
為避免穿戴者暈眩,由蒐集姿勢資訊到生成對應影像的時間差必須減到最小,尤其在當顯示裝置快速移動時。有鑑於此,再加上對生成高品質擬真影像的需求,便需要搭配能有效運作的處理硬體。於是,目前的高端系統通常需要使用靜態桌機,再透過高速頻寬及低延遲連線使桌機連線至顯示裝置。如此一來,現有的系統如HTC Vive TM、Oculus Rift TM、Valve Index TM及Playstation VR TM等,皆須在電腦及頭戴式顯示器之間建立有線連線,為相當不便利的情形。
雖然目前已開發出基於行動裝置的解決方案,譬如可結合行動電話,並針對頭戴式顯示器內的影像進行處理且予以顯示的Gear VR TM,但其處理資料的能力依舊有限,也就是所顯示的內容會受到限制,尤其就影像解析度與品質兩方面而言。
最近,用於壓縮影像資料以允許其進行無線傳輸的壓縮方案已熟知。
專利申請案WO2017/214671揭示一種將形成一部分數位實境內容的一或多個影像之影像資料壓縮的方法,該方法包括從影像資料獲得像素資料,該像素資料表示該等一或多個影像內一像素的陣列;決定該等一或多個影像內像素陣列相對於一已界定位置的一位置,該已界定位置至少部分指出使用者的一凝視點;及至少部分根據該已決定位置來壓縮像素資料,使得壓縮程度取決於該像素陣列的該已決定位置。
專利申請案WO2018/223179揭示一種將來自形成一部分數位內容串流的影像之影像資料壓縮的方法,該方法包括針對該數位內容串流中的一 n幅影像的序列;自該 n幅影像的每一者獲取影像資料;及使用一相對壓縮方案壓縮該等 n幅影像之至少一些者的影像資料。
專利申請案WO2019/100109揭示一種將表示一或多個影像的影像資料壓縮之方法,該方法包括從該影像資料獲得像素資料,該像素資料表示一或多個影像內的像素陣列;對像素資料進行轉換以決定表示像素陣列頻率係數的一組頻率係數;對該組頻率係數的選定子集進行編碼;產生表示已編碼頻率係數的索引並使用該已編碼頻率係數和該索引產生已壓縮影像資料。
專利申請案WO2019/100108揭示一種顯示形成一數位實境串流之一部分的影像之方法,該方法包括針對要顯示在一或複數個編碼器處理裝置內的每一影像,利用根據該數位實境串流的系統操作及該內容,差異壓縮指出該影像的影像資料,以產生已壓縮的影像資料,使得該影像的不同部分使用不同的壓縮程度來壓縮;運用一無線通訊鏈結,將該已壓縮影像資料無線傳輸至一顯示裝置;及在關聯該顯示裝置的一或多個解碼處理裝置中,差異解壓縮該已壓縮影像資料,藉此產生指出要顯示影像的影像資料。
然而,儘管此系統適合用於點對點連接,但是並不必然允許經由受固有頻寬和延遲時間限制的通訊網路進行傳輸,特別是當這些網路由多個使用者使用時。
對此,當影像資料傳送到顯示裝置時,其通常在輸入緩衝區中被接收,該輸入緩衝區操作上儲存影像資料直到可顯示為止。接收後,影像資料進行解碼,並通過介面(例如,行動產業處理器介面顯示器序列介面(Mobile Industry Processor Interface Display Serial Interface,MIPI-DSI))傳輸到視訊影格緩衝區,在該點上,顯示器閃存(display is flashed)並顯示圖像。這整個處理係根據顯示裝置的固定影格率來控制,以使用固定刷新時間(Refresh time)週期從輸入緩衝區中取得資料。
因此,輸入緩衝區需要足夠大,以調適在該時間週期內接收到的任何影像資料,這在首次接收資料的時間與該資料處理的時間之間導入顯著延遲。另外,丟棄在該刷新時間週期之外接收到的影像資料,這意味著如果在達到刷新時間時僅接收到一部分影像影格,則無法顯示影像並發生錯誤修正。這通常涉及在被稱為再投影的過程中,簡單地重新顯示先前影像。儘管這確保維持總體影格率,但是這導致由於重複一或多影格而影像序列似乎出現停滯的情況。
在例如經由無線鏈路(wireless link)或通訊網路將影像資料傳輸到顯示裝置的情況下,由於在無線鏈路(communications link)或網路上的等待時間可能導致影像資料在傳輸到顯示裝置之延遲,因此該問題更加嚴重,導致大量錯誤糾正事件。因此,用於數位實境應用的內容無線傳輸受到限制,並且特別是受限於高頻寬點對點連接,其通常只能在不受干擾的受控情況下使用。
在一廣義形式中,本發明的一態樣在於提供一種用於顯示內容之系統,該系統包括:一顯示裝置,其包括:一顯示緩衝區,其配置成儲存影像資料;及一顯示器,其配置成使用該顯示緩衝區中儲存的影像資料來顯示一影像;一輸入緩衝區,其配置成逐步:接收已編碼影像資料部分的串流,每一已編碼影像資料部分定義表示一相對影像部分的一影像資料部分;及儲存每一已編碼影像資料部分;一解碼器,其配置成逐步:解碼每一已編碼影像資料部分,以產生一相對影像資料部分;及將每一影像資料部分寫入該顯示緩衝區,藉此在該顯示緩衝區中逐步建構影像資料;及一顯示控制器,其配置成使該顯示器根據儲存在該顯示緩衝區中的影像資料顯示一影像,以動態調整顯示影像的影格率。
在一廣義形式中,本發明的一態樣在於提供一種使用一顯示裝置顯示內容之方法,其包括:一顯示緩衝區,其配置成儲存影像資料;及一顯示器,其配置成使用該顯示緩衝區中儲存的影像資料來顯示一影像,其中該方法包括:在一輸入緩衝區中,逐步:接收已編碼影像資料部分的串流,每一已編碼影像資料部分定義表示一相對影像部分的一影像資料部分;及儲存每一已編碼影像資料部分;在一解碼器中,逐步:解碼每一已編碼影像資料部分,以產生一相對影像資料部分;及將每一影像資料部分寫入該顯示緩衝區,藉此在該顯示緩衝區中逐步建構影像資料;及在一顯示控制器中,使該顯示器根據儲存在該顯示緩衝區中的影像資料顯示一影像,以動態調整顯示影像的影格率。
在一具體實施例中,該解碼器配置成實質上一旦接收到每個已編碼影像資料部分,則對其進行解碼。
在一具體實施例中,該輸入緩衝區配置成通過覆寫(overwriting)先前的已編碼影像資料部分以儲存每一已編碼影像資料部分。
在一具體實施例中,該系統包括一介面,並且其中該影像資料部分經由該介面寫入該顯示緩衝區。
在一具體實施例中,該介面為以下至少一者:一序列介面;一行動產業處理器介面(Mobile Industry Processor Interface,MIPI);一MIPI相機序列介面(MIPI Camera Serial Interface,MIPI-CSI);及一MIPI顯示器序列介面(MIPI Display Serial Interface,MIPI-DSI)。
在一具體實施例中,該介面配置成一旦該影像資料部分已解碼,則採用爆發模式(burst mode)操作以將每一影像資料部分寫入該顯示緩衝區。
在一具體實施例中,該介面配置成將影像資料部分寫入該顯示緩衝區,以覆寫(overwriting)先前影像對應部分的影像資料部分。
在一具體實施例中,該系統配置成動態調整顯示影格率,以調適接收已編碼影像資料部分的時序(timing)之變化。
在一具體實施例中,該顯示控制器配置成實質上一旦該顯示緩衝區儲存整個影像的影像資料部分,使該顯示器顯示一影像。
在一具體實施例中,該顯示控制器配置成動態調整該影格率,以實現一目標影格率。
在一具體實施例中,該顯示控制器配置成藉由調整以下至少一者以動態調整該影格率:一刷新間隔(refresh interval),其表示連續影像顯示之間所期望持續時間;及一目標影格率。
在一具體實施例中,該顯示控制器配置成:決定表示連續影像顯示之間所期望持續時間的一刷新間隔;及使該顯示器根據該刷新間隔顯示一影像。
在一具體實施例中,該顯示控制器配置成實質上一旦該顯示緩衝區儲存對應整個影像的影像資料部分並且經過該刷新間隔,使顯示器顯示一影像。
在一具體實施例中,該顯示控制器配置成根據一目前影格率和一目標影格率以計算該刷新間隔。
在一具體實施例中,該顯示控制器配置成使用平均影格率以計算該目前影格率,以顯示多個先前影像。
在一具體實施例中:若該目前影格率大於該目標影格率,則根據該目標影格率將該刷新間隔設定為一目標間隔;及若該目前影格率低於該目標影格率,則將該刷新間隔設定為低於該目標間隔。
在一具體實施例中,該顯示控制器配置成:決定表示連續影像顯示之間的一最大持續時間的臨界間隔;及該顯示器根據該臨界間隔顯示一影像。
在一具體實施例中,該顯示控制器配置成實質上一旦該臨界間隔結束(expired)時,使該顯示器顯示一影像,其中該顯示器基於儲存在該顯示緩衝區中的影像資料來顯示該影像,並且其中該顯示緩衝區儲存來自先前影像的至少一些影像資料部分。
在一具體實施例中,該顯示控制器配置成:監控一經過時間,該經過時間是從顯示前一影像以來的時間;若該經過時間小於該刷新間隔,則等待該刷新間隔結束(expire);若該經過時間大於該刷新間隔但小於該臨界間隔,並且該顯示緩衝區儲存對應於整個影像的影像資料部分,則使該顯示器顯示該影像;及若該經過時間達到該臨界間隔,則使該顯示器基於顯示緩衝區中的目前影像資料來顯示一影像。
在一具體實施例中,從與內容引擎相關聯的一編碼器接收該已編碼資料部分。
在一具體實施例中,經由一通訊網路接收該已編碼資料部分。
在一具體實施例中,該顯示控制器配置成動態調整該影格率,以調適通訊網路延遲。
在一具體實施例中:該顯示控制器配置成向該編碼器提供表示以下至少一者的顯示裝置度量:一顯示裝置目前影格率;及一顯示裝置刷新間隔;及該編碼器配置成以下至少一者:使一內容引擎根據該顯示裝置度量產生內容;及根據該顯示裝置度量以產生已編碼影像資料。
在一具體實施例中,該顯示控制器配置成基於以下至少一者來動態調整該影格率:來自一編碼器的指令;一目標頻寬;一目標壓縮;一實際壓縮;表示通訊網路效能的一或多個網路度量;及表示與每一使用者相關聯的內容顯示需求之一或多個使用者度量。
在一具體實施例中,系統包括一或多個處理裝置,其配置成:獲取一或多個表示通訊網路效能的網路度量;獲取該等複數個使用者之每一使用者的一或多個使用者度量,該等一或多個使用者度量表示有關每一使用者相關聯的內容顯示需求;至少部分基於該網路度量和該等使用者度量,以動態計算該等複數個使用者之每一使用者的一目標壓縮;使每一使用者的內容根據該使用者的目標壓縮進行壓縮。
在一具體實施例中,該等一或多個處理裝置配置成至少部分基於用於將內容傳輸給所有使用者的一可用網路頻寬,以計算該目標壓縮。
在一具體實施例中,該等一或多個處理裝置配置成:使用至少一網路度量,決定一可用的網路頻寬;及使用至少一使用者度量,計算用於該等複數個使用者中之每一者的一目標頻寬。
在一具體實施例中,該等一或多個處理裝置配置成使用該目標頻寬及以下至少一者以計算每個使用者的該目標壓縮:使用者度量;一目標品質;及一內容大小。
在一具體實施例中,該網路包括複數個節點,並且其中該等一或多個處理裝置配置成動態計算每一節點上的該等複數個使用者之每一者的一目標壓縮。
在一具體實施例中,該等一或多個處理裝置配置成使用以下至少一者以計算該等複數個使用者之每一使用者的該目標頻寬和一目標品質之至少一者:網路度量;使用者組態度量;內容度量;顯示裝置組態度量;及顯示裝置狀態度量。
在一具體實施例中,該等一或多個處理裝置配置成使用以下一項或多項以計算該目標壓縮:一目標頻寬;一目標品質;及顯示度量。
在一具體實施例中,該等一或多個處理裝置配置成從以下至少一者以決定該等使用者度量:一提供使用者組態度量的服務供應商;一提供使用者組態度量的使用者;一提供以下至少一者的顯示裝置:顯示裝置組態度量;及顯示度量;及一配置成產生內容給該使用者的內容引擎,該內容引擎提供內容度量。
在一具體實施例中,該等一或多個處理裝置包括:一網路控制器,其配置成計算每一使用者的目標頻寬和目標品質之至少一者;及複數個編碼器,每一編碼器與產生內容給相對使用者的一內容引擎相關聯,其中該等編碼器配置成計算該相對使用者的該目標壓縮。
在一具體實施例中,每一編碼器配置成:接收顯示裝置狀態度量;將該顯示裝置狀態度量傳送至該內容引擎,以允許內容引擎產生該內容;使用至少該顯示裝置狀態度量及該目標頻寬和一目標品質之至少一者,以計算該目標壓縮;接收來自該內容引擎的該內容;及根據該目標壓縮以編碼該內容。
在一具體實施例中,該等一或多個處理裝置配置成在以下至少之一情況下計算一目標頻寬:實質上即時;每秒;每影像;每11 ms;每秒數百次;及每影像數百次。
在一具體實施例中,該等一或多個處理裝置配置成在以下至少之一情況下計算該目前目標壓縮:實質上即時;對於該內容內的複數個影像之每一者;對於該內容內的複數個影像之每一者的多個不同部分之每一者;對於該內容內的複數個影像之每一者內的多個不同像素陣列;及每影像數百次。
在一具體實施例中,該等一或多個處理裝置配置成:根據一目標壓縮和目標頻寬之至少一者以選擇一目標影格率;及使內容根據該影格率,以至少被產生和壓縮的其中之一者。
在一具體實施例中,該等一或多個處理裝置配置成:根據該目標壓縮選擇一壓縮方案;及使用該選定壓縮方案壓縮該內容。
在一具體實施例中,該等一或多個處理裝置配置成通過以下方式在該內容之內執行影像壓縮:從影像資料獲得像素資料,該像素料資料表示該等一或多個影像內的一像素陣列;對該像素資料套用一轉變,以決定表示該像素陣列的頻率係數之一組頻率係數;編碼該組頻率係數的一選定子集,該子集選定以優先編碼具有較高振幅的頻率係數;及產生一表示該已編碼頻率係數的索引;及使用該已編碼的頻率係數和該索引以產生已壓縮影像資料。
在一具體實施例中,該網路度量包括以下任一項或多項:目前網路負載;一網路頻寬;一網路延遲;至少一網路錯誤度量(error metrics);一使用者服務品質;及一網路服務品質。
在一具體實施例中,該網路度量係針對網路的不同部分來定義,並且其中該等一或多個處理裝置配置成決定以下至少一者的目標壓縮:用於網路的每一部分;用於每一使用者;用於網路之每一部分上的每一使用者;及獨立用於網路的每一部分。
在一具體實施例中,該等使用者度量包括以下任一項或多項:表示以下使用者組態度量:一使用者類型;一使用者優先權限;及一使用者目標品質;表示以下內容度量:一內容類型;一影像不同部分的內容;一影像不同部分的不透明度;一影像內的興趣區域;一影像內的興趣位置;有關一影像的一或多個提示;及一影像內的一或多個顯示物件;表示以下至少一者的顯示裝置組態度量:一顯示裝置類型;一顯示裝置影格率;一顯示裝置移動;一顯示裝置視野;及顯示裝置鏡頭屬性;及表示以下至少一者的顯示裝置狀態度量:一顯示裝置目前影格率;一顯示裝置刷新時間間隔;相對於該環境的一顯示裝置姿勢;相對於該環境的一顯示裝置移動;相對於該環境的一顯示裝置加速;一使用者提供的輸入命令;一使用者凝視;及該使用者的生理屬性。
應明白,本發明的廣泛形式及其相對特徵可結合使用及/或獨立使用,且對單獨廣泛形式的引用並非旨在限制。此外,將明白可使用系統或設備來執行該方法的特徵,並且可使用該方法來實施該系統或裝置的特徵。
現將參考第一圖說明顯示系統的範例。
在此範例中,顯示系統102包括一顯示裝置140,該顯示裝置140包括一顯示器145和一顯示緩衝區146。在使用上,顯示緩衝區146配置成儲存影像資料,而顯示器145配置成使用儲存在顯示緩衝區中的影像資料來顯示一影像。
顯示系統102更包括一輸入緩衝區131,其配置成儲存已編碼影像資料;及一解碼器132,其配置成解碼已編碼影像資料、產生可儲存在顯示緩衝區146中以允許其顯示的影像資料。
顯示系統102更包括顯示控制器141,其配置成控制顯示系統102,特別是控制顯示裝置,以觸發影像在顯示器145上的顯示。顯示控制器141可為任何適當形式,但通常包括一或多個電子處理裝置,諸如微處理器、微晶片處理器、邏輯閘組態、選擇性關聯於實施邏輯的韌體,諸如場可程式編輯閘陣列( Field Programmable Gate Array,FPGA)、一特殊應用積體電路(Application-Specific Integrated Circuit ,ASIC)、一系統晶片(system on a chip,SoC)或任何其他電子裝置、系統或配置。
為了便於說明,其餘的描述將大體上參考處理裝置,但是應明白,可使用多個處理裝置,並且根據需要在處理裝置之間分散處理,並且單數形式包括複數形式,反之亦然。
顯示裝置可包括任何形式的顯示裝置,並且可例如在可戴式顯示器上形成顯示螢幕,諸如頭戴式顯示器(Head Mounted Display,HMD)、行動電話、電腦系統中的顯示螢幕等。
影像的性質可根據較佳實施方式而有所不同,但是在一範例中表示要在顯示裝置上顯示的一系列影像。從以下說明可明白,在一特定範例中,該影像資料為調適成遠端顯示至一來源的一部分數位內容串流之系列影像,諸如在其中影像顯示於一可穿戴式顯示器上的虛擬、增強或混合實境圖形應用中,及/或在其中影像從諸如無人機搭載攝影機等遠端可控制系統顯示的遠程發送應用中。然而,應明白,儘管本說明書描述的技術對於數位實境應用特別有用,但是這並非限制,並且這些技術可用於任何內容串流,例如視頻串流、電腦圖形等等。
使用上,控制器141控制顯示裝置140的操作,以動態調整顯示影像的影格率,並且現將參考第二圖來描述此處理的範例。
在此範例中,在步驟200,輸入緩衝區131接收已編碼影像資料部分的串流。該已編碼影像資料可從任何來源接收,例如圖形卡等,儘管在一特定範例中,已編碼影像資料係經由通訊網路接收,在一特定範例為4G或5G行動網路,適用於行動及/或固定式無線應用。
在步驟210,輸入緩衝區131逐步儲存接收到的每個已編碼影像資料部分時,並重複此處理,以連續儲存影像部分。每一已編碼影像資料部分通常定義一表示相對影像部分的影像資料部分,因此表示影像的一小部分,諸如影像中的一或多個像素陣列,因此,輸入緩衝區僅需要儲存少量的資料,並因此在接收與處理的資料之間導入最小延遲。
在步驟220,解碼器132解碼已編碼影像資料部分,以產生相對的影像資料部分,然後可將其儲存在顯示緩衝區146中。在每一資料部分已儲存在輸入緩衝區131中時,再次逐步重複此處理,使得解碼器132將每一影像資料部分連續寫入顯示緩衝區中。
應明白,在重複該處理時,顯示緩衝區146逐步填充影像資料。因此相較於傳統技術,其中對應至少一影格的影像資料在解碼之前被接收及儲存在輸入緩衝器中,該方法逐步接收、儲存及解碼表示影像小部分的影像資料部分,諸如一或多個像素陣列的群組。在此配置中,影像資料逐步建構於顯示緩衝區中。
在步驟230,控制器141基於顯示緩衝區的內容來顯示一影像。在此配置中,影像資料寫入和傳輸至顯示緩衝區並不受靜態刷新率的限制,因此這允許控制器動態調整所顯示影像的影格率。
此配置具有一些效益。
例如,此允許使用較小的輸入緩衝區,從而減少與在解碼整個影像影格並將其儲存在顯示緩衝區之前儲存整個影像影格相關的延遲。這減少總體延遲時間,以使系統可在資料傳輸中調適更久延遲,而不會對影像的顯示產生不利影響,使其更適合網路型應用。
其次,能夠動態調整影格率允許增加或減小影格率以調適網路的延遲時間。例如,如果影格在傳輸過程中延遲很短時間,則可能會延遲刷新螢幕,有效地偏移(offsetting)相對於靜態影格率的影格顯示的時間。在連續的影格中,可提高刷新率,直到恢復偏移為止。同樣地,此偏移可用於調適具有比正常影像資料量大的影格,這可能需要更長的時間來編碼、傳輸或解碼。
採用一類似方式,系統可提早顯示影格,以允許其建立緩衝區來進一步調適延遲時間或其他問題。例如,如果可預期傳輸延遲及/或大量影像,則此允許系統提前顯示先前的影格,並在相對延遲或大量影格之前建立緩衝區。
而進一步的一效益是可採用更有效方式執行錯誤修正。例如,標準錯誤修正技術包括重新投影,其涉及重新顯示整個先前影像。由於錯誤修正的實施是在未接收到整個影格時發生的二進制事件(binary event),因此實際上意味著即使沒有及時接收到後來影像的數個像素,亦可顯示先前影像。相反,使用前述配置,可在與先前影像相關的影像資料上之影像緩衝區中逐步構建該影像資料,以允許覆寫先前影像資料。在此情況下,如果使用重新投影處理,則將建立一影像,其僅包括先前尚未被覆寫影像的部分。但是,由於這通常只是先前影像的一小部分殘留部分,因此相較於重新顯示整個影像,這通常不太明顯。
因此,前述處理通過在接收到影像資料部分時,對其進行逐步解碼和儲存,以在顯示緩衝區中逐步構建影像資料來進行操作。這導致一可動態調整顯示影格率的調適控制方案,以使顯示器更能夠處理可變的傳入資料,使其適合顯示經由通訊網路(在一範例中為無線通訊網路)接收的內容。
將明白,在一範例中,系統可配置成將目標影格率保持在顯示裝置的額定輸入影格率(nominal input framerate),諸如每秒80影格(fps)、90fps、120fps、144fps等,這取決於所使用的特定顯示裝置。然而,前述配置允許動態調整影格率,以允許根據需要實施影格率的微小變化,藉此調適準備好顯示的相對影像資料中之延遲,例如由於傳輸延遲時間或類似而引起的延遲。
現將描述多個進一步特徵。
在一範例中,解碼器配置成實質上一旦接收到每一已編碼影像資料部分,則對其進行解碼,從而有助於最小化有關該已編碼影像資料的解碼之延遲。
輸入緩衝區通常配置成通過覆寫先前的已編碼影像資料部分,以儲存每一已編碼影像資料部分,以在接收到影像資料部分時,將其傳遞給解碼器以立即解碼,以允許該輸入緩衝區使用下一連續影像資料部分來覆寫該已編碼影像資料部分。如前述,輸入緩衝區僅儲存一小部分影像,並且在一範例中,通常儲存少於1 ms的資料,以確保緩衝處理中的延遲時間不超過1 ms。
在一範例中,顯示系統包括一介面,諸如序列介面、一行動產業處理器介面(MIPI),特別是MIPI相機序列介面(MIPI-CSI)或MIPI顯示序列介面(MIPI-DSI),將解碼後的影像資料部分通過介面寫入顯示緩衝區。在一特定範例中,該介面配置成一旦該影像資料部分已解碼,採用爆發模式操作以將每一影像資料部分寫入該顯示緩衝區。該介面配置成將影像資料部分寫入該顯示緩衝區,以覆寫先前影像對應部分的影像資料部分。如前述,此方法意味著如果沒有完全接收到影像,則仍可顯示影像,其中包括未接收部分的影像取代成先前影像的相對部分,該先前部分影像在顯示緩衝區中尚未被覆寫。
在一範例中,該系統配置成動態調整顯示影格率,以調適接收已編碼影像資料部分的時序之變化。因此,如果延遲接收影像的一部分,則顯示器的刷新可延遲,直到接收並解碼該影像部分為止,以避免由於傳輸及/或解碼的延遲時間而導致的丟失影像影格。
在一範例中,該顯示控制器配置成實質上一旦該顯示緩衝區儲存整個影像的影像資料部分,使該顯示器顯示一影像。因此,在此範例中,一旦接收到影像的影像資料並對其進行解碼,即可顯示該影像。在此範例中,顯示器的影格率主要由影像資料的接收/解碼決定。但是,由於此高度變化,因此可能導致影格率不斷變化,進而導致某些影像之間的刷新間隔明顯比其他影像還長,因此在所有情況下並非理想。
在一範例中,該顯示控制器配置成動態調整該影格率,以實現一目標影格率。因此,可設置目標影格率,並控制影像的顯示,以嘗試滿足目標影格率。此允許基於一系列不同因素,諸如內容引擎產生內容的能力、有關內容的要求、可用的傳輸頻寬、使用者偏好等,以設置目標影格率。在另一範例中,如果在通訊網路上存在高延遲時間,則可降低目標影格率,以增加顯示系統能夠成功顯示所有影格的機會。因此,此允許最佳化目標影格率,以考慮到所要傳輸及/或顯示內容的特定情況。
除了調整目標影格率之外,或者調整替代目標影格率,可通過調整表示連續影像顯示之間期望持續時間的刷新間隔,以調整目前影格率。在此範例中,刷新間隔通常用於控制每個影像的顯示,其中刷新間隔係調整成以允許實現目標影格率。
因此,顯示控制器可配置成決定刷新間隔,然後使顯示器根據刷新間隔顯示影像。例如,一旦該顯示緩衝區儲存對應整個影像的影像資料部分並且經過該刷新間隔,實質上顯示影像。在此範例中,刷新間隔可用於提供其他控制,以減少影像顯示的變化性。
在一範例中,通過檢查目前影格率以決定刷新間隔,該速率通常使用平均影格率以計算,諸如基於多個先前影像的顯示而計算之滾動平均值。然後可通過調整刷新間隔,以調整目前影格率。例如,如果目前影格率落後或領先於目標影格率,則可通過減小或增加刷新間隔來對此進行修正。特別是在一範例中,如果該目前影格率大於(或等於)該目標影格率,則根據該目標影格率將該刷新間隔設定為一目標間隔。否則,如果目前影格率低於目標影格率,則將刷新間隔設置為低於目標間隔,使得以更快的速率顯示影像,藉此嘗試將目前影格率增加到目標影格率。
應明白,在實踐中這兩控制技術可結合使用。因此,例如目標影格率可配置成考慮在多個影像時間比例上發生的長期因素,例如考慮目前的網路狀況,例如可變頻寬等。另外,可變的刷新間隔可用於調適每個影像變化,例如控制顯示每個影像的時間,藉此嘗試保持目標頻寬,並考慮諸如傳輸單一影像影格的延遲時間等因素。
在一範例中,顯示控制器配置成決定表示連續影像顯示之間的最大持續時間之臨界間隔,然後根據該臨界間隔使顯示器顯示影像。具體上,臨界間隔可用於觸發錯誤修正,並且例如可對應於可合理顯示影像的最新時間,而相較於先前影像顯示,不會引入明顯及/或可察覺的延遲。在此範例中,該顯示控制器配置成使該顯示器實質上在該臨界間隔結束時顯示一影像,如此該影像基於目前儲存在顯示緩衝區中的影像資料,其可包括來自先前影像的至少一些影像資料部分。
因此,在一較佳範例中,顯示控制器配置成監視自從顯示先前影像以來經過的時間。如果該經過時間小於該刷新間隔,則控制器等待該刷新間隔結束。如果該經過時間大於(或等於)刷新間隔但小於臨界間隔,並且顯示緩衝區儲存對應於整個影像的影像資料部分,則顯示控制器導致顯示器顯示該影像。否則,如果經過時間達到臨界間隔,則控制器使顯示器基於顯示緩衝區中的目前影像資料來顯示一影像,而不管是否已經接收到對應整個影像的影像資料。
在一範例中,從一與內容引擎相關聯的編碼器接收該已編碼資料部分。儘管編碼器可直接連接到輸入緩衝區,但更典型的是,該已編碼影像資料部分係經由通訊網路接收,其中顯示控制器配置成動態調整影格率,以調適通訊網路的延遲時間。此允許經由無線或有線通訊網路來實現數位實境資料傳輸,此通常是無法以其他方式實現。
如前述,該顯示控制器可配置成動態調整該目標影格率。因此,儘管可使用單組目標影格率,諸如用於顯示裝置及/或所呈現內容的典型影格率,但是或者,可調整目標影格率以考慮其他範圍的因素。在此範例中,目標影格率可基於來自一編碼器、一目標頻寬、一目標壓縮、一實際壓縮、表示通訊網路性能的一或多個網路度量或表示與每一使用者相關聯的內容顯示需求之一或多個使用者度量的指令之任一或多者。
對此,並且如將在下面更詳細描述,編碼器可結合網路控制器使用,以動態計算目標壓縮。目標壓縮基於對網路和使用者度量的分析,旨在考慮網路上的可用頻寬。利用此資訊的知識,編碼器可識別對於內容壓縮和傳輸而言可行的影格率,例如在可用頻寬減少的情況下降低影格率,或類似情況。在此情況下,編碼器可指出顯示控制器降低影格率。或者及/或此外,可將使用者及/或網路度量提供給顯示控制器,以允許顯示控制器直接計算目標影格率。
前述處理可使用各種不同的網路度量來執行,例如,網路度量可包括目前網路負載、網路頻寬、網路延遲時間、至少一網絡錯誤度量、使用者服務品質、網路服務品質等之任一或多者。此外,可針對整個網路及/或每個節點以計算這些度量,如此應將網路服務品質理解為涵蓋節點服務品質。因此,將明白,網路度量術語將理解為包括反映網路將資料傳輸給使用者的能力之任何度量,並且將明白,可根據其可用性來使用其他度量。
使用者度量通常包括表示使用者類型、使用者優先權限或使用者目標品質的使用者組態度量。因此,使用者組態度量通常考慮到一般在組態處理中建立的使用者偏好或設定,例如,當使用者向服務提供商註冊時及/或當使用者發起內容串流對話時,及/或可由使用者指定。因此,如前述,如果使用者已註冊更高品質的串流體驗(streaming experience),則可分配比其他情況更高的頻寬給他們,以讓使用者可從降低的內容壓縮中受益,而潛在改善內容品質。
使用者度量亦可包括表示內容類型、影像不同部分的內容、影像不同部分的不透明度、影像內的興趣區域、影像內的興趣位置、與影像相關聯的一或多個提示或影像內的一或多個顯示物件之內容度量。因此,這可考慮到內容的性質,允許以最有效的方式對其進行壓縮,並考慮到可壓縮內容的程度,同時最大程度減少可察覺的品質下降。例如,如果使用者正在觀看相對簡單的內容,則壓縮程度通常比更複雜內容更高,而使用者不會察覺到內容品質降低,以可分配較少頻寬給使用者,而允許使用更高的壓縮率。
在一範例中,使用者度量包括表示顯示裝置類型、顯示裝置影格率、顯示裝置解析度、顯示裝置視野或顯示裝置鏡頭屬性之至少一者的顯示裝置組態度量。因此,例如具有較低解析度/視野的顯示裝置通常可承受比較高解析度/視野的裝置更高之壓縮率,而不會感覺到任何影像品質不足,以允許將此資訊用於分配頻寬給每一使用者。
使用者度量還可包括表示目前顯示裝置操作的顯示裝置狀態度量。這可包括諸如顯示裝置相對於環境的姿勢、顯示裝置相對於環境的移動、顯示裝置相對於環境的加速度、使用者提供的輸入命令、使用者凝視或使用者的生理屬性的資訊。例如,如果顯示裝置正在快速移動,則相較於顯示裝置靜止,通常可降低使用者在影像中可感知的細節多寡。因此,如果使用者的顯示器正在移動,則使用者通常不會注意到壓縮提高,因此可分配較少的頻寬。這亦可包括關於目前影格率及/或顯示刷新時間間隔的資訊。
除前述之外,顯示控制器可配置成將顯示裝置度量提供給編碼器,該度量指出顯示裝置目前影格率及/或顯示裝置刷新間隔。該資訊可由編碼器使用,以使內容引擎根據顯示裝置度量產生內容及/或根據顯示裝置度量產生已編碼的影像資料。
因此,將明白,在一範例中,該系統可作為端對端動態內容傳輸系統的一部分,在該系統中,使用一可變的影格率差別產生、壓縮和顯示內容,以優化內容的顯示,同時調適網路變化,諸如可用頻寬、網路延遲時間等的變化。
現將參考第三圖說明包括通訊網路環境的系統範例。
在此範例中,該系統包括經由網路360連接到一或多個顯示裝置302的一或多個電子處理裝置301。
網路360可包括一或多個有線或無線網路,其包括但不限於行動網路、諸如802.11網路之類的私用網絡、網際網路、LAN、WAN等。在一範例中,網路360的至少一部分由4G或5G行動網路形成,以允許將其用於行動和固定式無線應用。
一或多個電子處理裝置301配置成壓縮並且選擇性產生要在顯示裝置302上顯示的內容,以允許經由網路360來傳輸該內容。就這點而言,通過壓縮內容,如此縮小內容的大小,以減少需要由網路160傳輸的資料量,進而允許將內容更有效提供給多個使用者。
一或多個電子處理裝置301通常形成一或多個處理系統的一部分,例如電腦系統、伺服器等。在一範例中,一或多個電子處理裝置301至少部分由邊緣伺服器形成,其是一種提供進入網路的入口點之邊緣裝置,並且通常提供在接近末端使用者位置的物理位置中,例如靠近使用者的網際網路交換點附近。然而,這不是必需的,並且取決於較佳實施方式,可使用多種不同形式的處理裝置。為了便於說明,其餘的描述將大體上涉及處理裝置,但是應明白,可使用多個處理裝置,並且根據需要在處理裝置之間分散處理,並且單數形式包括複數形式,反之亦然。
顯示裝置302用於允許顯示內容,並且取決於內容性質而可具有任何適當形式。例如,顯示裝置102可包括諸如行動電話、可攜式電腦、平板電腦之類的客戶端裝置,或者可包括諸如可穿戴式或頭戴式顯示器、諸如虛擬、混合或增強實境頭戴式耳機或類似裝置之類的專用顯示裝置。
第四圖顯示用於第三圖內網路環境的顯示控制器配置之範例。
在此範例中,顯示系統302包括內含顯示器445和顯示緩衝區446的一顯示裝置440、一配置成儲存已編碼影像資料的輸入緩衝區431、及一配置成對該已編碼影像資料進行解碼的解碼器432。解碼器432經由諸如MIPI-CSI或MIPI-DSI這類介面433與顯示緩衝區446通訊。同時提供一顯示控制器441。
使用上,內容由內容引擎410產生,該內容引擎410耦接到由一或多個處理裝置301實施的對應編碼器420。編碼器連接到通訊網路360,以允許將該已編碼影像資料發送到顯示系統302。
現將參考第五圖描述操作顯示系統302來顯示內容。
在此範例中,在步驟500,輸入緩衝區431接收由內容引擎410產生並由編碼器420編碼的一已編碼影像資料部分。就此而言,編碼器420通常將基於分配給各個編碼器的可用目標頻寬來壓縮影像資料,並且下面將更詳細描述該處理的範例。
在步驟510,輸入緩衝區431儲存該影像資料部分,其在步驟520由解碼器432檢索和解碼。解碼器432經由介面433發送所得的影像資料部分,以在步驟530將其儲存在顯示緩衝區446中。
在步驟540,顯示控制器決定是否已經儲存整個影像的所有影像資料。如果為是,則在步驟550,顯示控制器441決定自從顯示先前影像以來刷新間隔是否已結束,並且如果為否,則等待直到發生為止。
基於目前影格率可計算刷新間隔,並且現將參考第六圖來描述此範例。
在此範例中,在步驟600,基於最後數個影格(例如最後十個影格)的滾動平均影格率,以計算目前影格率。在步驟610,將目前影格率與目標影格率進行比較,以在步驟620評估影格率是否低於目標影格率。如果為否,則在步驟630,顯示控制器441將刷新間隔設置為等於目標間隔,該間隔與針對目標影格率的連續影格顯示間之時間間隔相對應。否則,在步驟640,顯示控制器441將刷新間隔設置為低於目標間隔,以嘗試更早顯示影像,並藉此將目前影格率提高到目標影格率。
一旦已接收到影像的所有影像資料並且刷新間隔已結束,則在步驟560,顯示控制器441使顯示器顯示該影像;在步驟570,選擇性將包括刷新時間和目前影格率的顯示度量上載到編碼器420。
如果尚未將所有影像資料儲存在顯示緩衝區446中,則在步驟580,顯示控制器確定臨界間隔是否已結束。若為否,則處理回到步驟500,接收下一影像部分。否則,在步驟560,基於影像緩衝區446的目前內容顯示影像,並且在步驟570,將相對的顯示度量再次上載到編碼器420。
因此,前述處理操作以使用刷新間隔來控制影像的顯示,並且在臨界時間間隔結束的情況下採用錯誤修正。然後可將指出顯示處理的度量上載到編碼器,以允許在編碼端使用該度量,以幫助減輕諸如延遲等問題,例如通過利用更積極的加密,以減少正在傳輸的資料量。
現將參考第七A圖至第七E圖描述動態控制如何調整影像顯示之範例。
在第七A圖的範例中,顯示傳統的靜態顯示影格率。在此範例中,影像影格由方塊F1、F2 ... F6表示,各個方塊的長度表示產生、編碼、傳輸、解碼和準備顯示影像所花費的時間。軸顯示所顯示的影像。因此,在此範例中,以與顯示器的刷新速率相對應的設置間隔以產生每一影格。雖然成功產生並傳輸影像F1、F2、F4、F5、F6,但是在刷新顯示之前不會對影像F3進行解碼,因此影像F2會重新投影。
相反,使用前述的動態影格率處理,如第七B圖所示,可延遲影像影格F3的顯示,以能夠精確顯示影像。在此情況下,減少連續影像的刷新間隔,以可保持目標影格率。
在第七C圖的範例中,顯示傳統的靜態顯示影格率。在此範例中,在刷新顯示之前不對影像F2和F3進行解碼,因此影像F1被重新投影兩次。
相反,使用前述的動態影格率處理,如第七D 圖所示,可延遲影像F2和F3的顯示。在此情況下,連續影像的延遲導致在臨界間隔結束時尚未完全接收影像F3,這意味著執行錯誤修正,導致根據影像緩衝區的目前內容來顯示一影像,如此顯示的結果影像為合成影像,其中包含來自影像F3和F2(F3/F2)的影像資料。不過,當接收到影像F4、F5和F6時,可使用降低的刷新間隔,以使影格率能夠趕上目標影格率。
在第七E圖的範例中,通過使影像產生與影像顯示同步,以進一步修改該過程。因此,在顯示先前影像時產生影像,這可幫助確保根據顯示裝置移動產生將來的影像,這對動暈症(motion sickness)有幫助,並且還有助於確定影像已接收和可顯示。
因此,前述處理提供一種機制來使用自調適顯示影格率,以解決接收及/或解碼影像資料中的延遲,在一特定範例中執行該機制以減少網路延遲時間的影響。
對此,在複雜的網路上,峰值延遲與平均延遲的比率可能很高。再者,當需要低延遲時,延遲抖動變得更加重要。前述處理可通過刪除靜態緩衝以減少延遲來幫助解決此問題。具體來說,在此範例中,影像資料直接發送到顯示器的影格緩衝區。顯示影格率會有所變化,以補償網路抖動。當延遲時間超過定義的限制時,可召喚錯誤修正。
另外,可將度量反饋給內容引擎及/或編碼器,以允許將這些度量用於產生或編碼內容的處理中。例如,可將平均延遲時間反饋給內容引擎,以將其用於改進的姿勢預測。再者,在計算目標壓縮時可考慮延遲,例如,如果延遲高,則將資料壓縮到更高程度,以減少傳輸的資料量,並增加到達臨界間隔之前接收整個影像的可能性。
現將參考第八圖更詳細描述由第三圖中系統所執行,以控制內容壓縮以經由通訊網路進行傳輸之處理範例。
在此範例中,在步驟800,處理裝置301獲取一或多個表示通訊網路效能的網路度量(network metrics)。網路度量的性質及獲取這些度量的方式,將根據較佳實施方式而有所不同。例如,網路度量可包括目前網路負載及/或頻寬等的指示,並且可通過分析網路流量、從負責管理網路流量的硬體接收網路度量的指示等來決定。
在步驟810,處理裝置301獲取複數個使用者之每一使用者的一或多個使用者度量(user metrics),該等度量表示有關每一使用者的內容顯示需求。對此,針對以下目的,假定使用者是使用網路存取其壓縮將使用目前處理來控制的內容之任何個人。但是應注意,這並不排除該網路正在被未根據此處所描述方案壓縮內容的其他使用者使用,並且該術語不應視為係指所有網路使用者,而是僅指那些內容已壓縮的使用者。
使用者度量的性質及獲取這些度量的方式,將根據較佳實施方式而有所不同。例如,使用者度量可包括與使用者顯示裝置有關的度量,其包括可從顯示裝置接收到的顯示裝置之使用及/或配置。其他度量可包括可從服務提供商或使用者或類似者獲得的使用者偏好,諸如指派給使用者的優先順序,並且下面將更詳細描述進一步範例。
在步驟820,處理裝置301至少部分基於該網路度量和該等使用者度量,為複數個使用者之每一使用者動態計算目標壓縮。執行此操作的方式將根據較佳實施方式和可用度量的性質而有所不同,但是通常這涉及使用網路度量以計算可用的總頻寬,其中部分頻寬將根據使用者度量分配給每一使用者,以可根據每一使用者可用的頻寬,以計算每一使用者所需的壓縮。
在步驟830,處理裝置301使每一使用者的內容根據該使用者的目標壓縮而進行壓縮,例如通過配置編碼器以根據目標壓縮來執行壓縮。這可使用任何適當壓縮方案來執行,並且可涉及根據目標壓縮來選擇許多不同的壓縮方案之一者。下面將更詳細描述範例方案和可使用該方案的方式。
因此,前述系統用於分析度量的組合,其包括網路和使用者專屬度量,使用這些度量以計算針對傳遞給每一使用者的內容之目標壓縮,以最佳化網路和個別使用者的壓縮。
例如,這有助於確保所有使用者的內容集中壓縮到足以使用可用頻寬進行傳輸之程度。反過來,這有助於確保將內容盡可能有效地交付給使用者,特別是避免與傳輸延遲相關的延遲,同時確保網路不會過載。
另外,由於前述處理考慮了使用者度量,因此這還允許針對每一使用者調整壓縮。例如,可執行此操作,以使每一使用者接收具有相似可感知細節程度的內容。或者及/或此外,這可根據一系列因素,其包括使用者偏好、內容的性質及如何顯示。例如,可使用品質限制,使得支付額外費用的使用者具有比其他使用者更低的壓縮級別。另外,對於解析度較低顯示裝置的使用者,可使用更高級別的壓縮,因為在該裝置上無法感覺到壓縮提高。壓縮級別亦可根據內容進行控制,以對壓縮敏感的內容可減少壓縮量。同樣地,這可考慮顯示刷新間隔及/或目前影格率,以可根據網路頻寬可用性及顯示裝置處理影格率變化的能力,以確定目前壓縮。
因此,將明白,前述方法可採用對所有使用者公平的方式,幫助改善提供給多個使用者的內容品質,同時保持網路性能。
儘管上面已經針對由顯示裝置呈現的內容來描述,但是應明白,該技術可應用於需要壓縮的任何內容,並且不必然配置成視覺上可顯示的內容。
現將描述多個進一步特徵。
在一範例中,至少部分根據用於將內容傳輸給所有使用者的可用網路頻寬以計算目標壓縮,使得訂製針對每一使用者的目標壓縮,以確保有足夠的網路頻寬來將壓縮內容傳輸給所有使用者,視需要還可選擇為其他形式的內容提供額外容量。
在一範例中,為了實施這一點,處理裝置配置成使用至少一網路度量以計算總可用頻寬,然後使用該總可用頻寬以計算使用至少一使用者度量的複數個使用者之每一使用者的目標頻寬。因此,處理裝置可通過使用網路度量來確定可用於將內容傳輸給所有使用者的總頻寬,然後根據使用者度量將其一部分分配給各個使用者,以針對複數個使用者之每一使用者計算目標頻寬。對此,通過根據使用者度量分配總頻寬的一部分,這可考慮使用者偏好、優先順序、與內容相關聯的要求等。
例如,如果使用者有高級訂閱,則可分配更多頻寬給他們。同樣地,如果使用者正在觀看難以壓縮的內容,或具有高品質要求或體積較大的內容,則可分配更多頻寬給他們,以降低壓縮要求。
將明白,可使用能夠檢驗多個變數並計算頻寬最佳分佈的適當最佳化技術,以計算目標頻寬。這些的範例包括負載平衡演算法,並且如本領域中從其他應用中已知的那樣,將不對其進行詳細描述。
在確定每一使用者的目標頻寬之後,處理裝置可使用該目標頻寬和使用者度量之任一或多者、目標品質和內容大小(例如定義每一影像影格的位元組數),以計算每一使用者的目標壓縮。對此,將明白,這確保不僅根據目標頻寬來最佳化壓縮,而且還考慮其他因素,例如使用者度量、內容大小及/或品質,以確保內容被有效壓縮。因此,例如包含大量資料的內容可能需要更大程度的壓縮,以確保滿足目標頻寬要求。
因此,將明白,前述處理考慮一系列不同的度量,以分配適當的目標頻寬給使用者,該頻寬適合於其內容並且考慮到使用者偏好,然後將其用於計算所需壓縮量,以允許內容在目標頻寬限制之下傳輸。這確保多個不同使用者能夠接收以針對該使用者和內容性質量身定制之方式進行壓縮的內容。
通常,網路包括複數個節點,諸如無線網路中的多個傳輸天線及/或基地台。在此情況下,處理裝置可配置成針對每個節點上複數個使用者之每一者,動態計算目標壓縮。此允許在每個節點的基礎上執行最佳化,以減少對利用率不足的負載之壓縮,並增加對頻繁使用負載的壓縮,以幫助確保各個節點及整個網路的有效性。基於此將明白,取決於較佳實施方式和網路要求,可在網路層及/或節點層執行最佳化。
在一範例中,處理裝置配置成基本上即時計算目標頻寬。此允許壓縮迅速調適變化的網路條件,例如增加目標頻寬,以在網路負載減輕時減少壓縮,並且減少頻寬,而在網絡負載增加時提高壓縮。在一範例中,處理裝置配置成每當要顯示影像時,例如每11ms(對應於90Hz刷新率顯示器的典型影像顯示時間),或者以更高的速率,高達並包括每秒數百次或每影像影格,以計算每秒的目標頻寬。將明白,執行的越頻繁,系統越能迅速調適網路操作的變化。
同樣地,處理裝置可配置成實質上即時,並通常至少對於內容內的複數個影像之每一者,但是選擇性對於複數個影像之每一者的不同部分,或者對於內容內複數個影像之每一者內的多個不同像素陣列或每影像影格數百次,以計算目前目標壓縮。
前述處理可使用各種不同的網路度量來執行。例如,網路度量可包括目前網路負載、網路頻寬、網路延遲時間、至少一網絡錯誤度量、使用者服務品質、網路服務品質等之任一或多者。此外,可針對整個網路及/或每個節點以計算這些度量,如此應將網路服務品質理解為涵蓋節點服務品質。因此,將明白,網路度量術語將理解為包括反映網路將資料傳輸給使用者的能力之任何度量,並且將明白,可根據其可用性來使用其他度量。
使用者度量通常包括指出使用者類型、使用者優先順序或使用者目標品質的使用者組態度量。因此,使用者組態度量通常考慮到一般在組態處理中建立的使用者偏好或設定,例如,當使用者向服務提供商註冊時及/或當使用者發起內容串流對話時。因此,如前述,如果使用者已註冊更高品質的串流體驗,則可將比其他情況更高的頻寬分配給他們,以讓使用者可從降低的內容壓縮中受益,而潛在改善內容品質。
使用者度量亦可包括表示內容類型、影像不同部分的內容、影像不同部分的不透明度、影像內的興趣區域、影像內的興趣位置、與影像相關聯的一或多個提示或影像內的一或多個顯示物件之內容度量。因此,這可考慮到內容的性質,允許以最有效的方式對其進行壓縮,並考慮到可壓縮內容的程度,同時最大程度減少可察覺的品質下降。例如,如果使用者正在觀看相對簡單的內容,則壓縮程度通常比更複雜內容更高,而使用者不會察覺到內容品質降低,以可分配較少頻寬給使用者,而允許使用更高的壓縮率。
在一範例中,使用者度量包括指出至少顯示裝置類型、顯示裝置影格率、顯示裝置解析度、顯示裝置視野或顯示裝置鏡頭屬性之一者的顯示裝置組態度量(display device configuration metrics)。因此,例如具有較低解析度/視野的顯示裝置通常可承受比較高解析度/視野的裝置更高之壓縮率,而不會感覺到任何影像品質不足,以允許將此資訊用於分配頻寬給每一使用者。
使用者度量亦可包括指出目前顯示裝置操作的顯示裝置狀態度量。這可包括諸如顯示裝置相對於環境的姿勢、顯示裝置相對於環境的移動、顯示裝置相對於環境的加速度、使用者提供的輸入命令、使用者凝視或使用者的生理屬性的資訊。例如,如果顯示裝置正在快速移動,則相較於顯示裝置靜止,通常可降低使用者在影像中可感知的細節多寡。因此,如果使用者的顯示器正在移動,則使用者通常不會注意到壓縮提高,因此可分配較少的頻寬。
因此,從前述將明白,處理裝置可配置成使用網路度量、使用者組態度量、內容度量、顯示裝置組態度量及/或顯示裝置狀態度量,以為每一使用者計算目標頻寬或目標品質。同樣地,在確定目標頻寬之後,處理裝置可使用目標頻寬、目標品質或顯示器度量以計算目標壓縮。這可針對每一使用者的特定情況量身定制其目標頻寬和目標壓縮,以幫助最大程度提高每一使用者使用的壓縮,同時最大程度減少品質下降。
應明白,通過最小化目標頻寬並且最大化壓縮給不會感覺品質下降的使用者,這可用於增加頻寬分配給會感覺品質下降的使用者,以有助於確保每一使用者在觀看內容的品質方面具有類似體驗。
使用者度量的決定方式將根據使用者度量的性質而變,例如,處理裝置可配置成從服務提供商決定使用者組態度量,該服務提供商提供存取網路及/或相關服務的存取給使用者,例如存取串流內容。在此情況下,處理裝置通常可在使用者首次註冊服務時或在諸如遊戲對話或類似內容的內容對話開始時,決定使用者組態度量。
顯示裝置組態度量和顯示度量通常從顯示裝置接收。由於顯示裝置組態度量為靜態,因此通常在對話開始時以一次性流程的形式提供這些度量,而顯示度量通常會隨著顯示裝置使用的時間而變化,並因此在整個對話期間由顯示裝置提供該度量。
內容度量通常由內容引擎(content engine)提供,其配置成產生內容給使用者,並且通常隨著新內容產生而基本恆定提供這些內容。
為了實施前述功能,一或多個處理裝置可包括網路控制器,其配置成計算每一使用者的目標頻寬和目標品質之至少一者。一或多個處理裝置還可包括複數個編碼器,每一編碼器與內容引擎相關聯,該內容引擎產生內容給各個使用者。在此情況下,編碼器可配置成計算相對使用者的目標壓縮。因此,一相對編碼器提供給每一使用者,由此管理使用者的內容壓縮,而控制器則管理分配給每一使用者的頻寬。這降低編碼器的負擔,使其能夠快速執行編碼,這對於減少延遲很重要。相反,控制器需要監督網路和每個編碼器的操作,因此提供單一控制器。
將明白,控制器和編碼器可實施為軟體,例如在包括一或多個伺服器(例如雲端計算環境中的邊緣伺服器)的硬體平台上運行。或者及/或此外,可使用專用硬體來實施控制器及/或編碼器。這對於確保快速執行壓縮以減少延遲時間特別有利,並且將在下面更詳細描述範例組態。
使用上,每個編碼器配置成從顯示裝置接收顯示裝置狀態度量,並且將顯示裝置狀態度量傳遞到內容引擎,以允許內容引擎產生內容。對此,此允許內容引擎使用諸如頭戴式耳機姿勢或運動之類的輸入,以產生適合在頭戴式耳機上顯示的內容。當內容已經產生,該編碼器可使用控制器所供應的至少該顯示裝置狀態度量及該目標頻寬和一目標品質之至少一者,以計算該目標壓縮。然後,編碼器從內容引擎接收內容,以允許編碼器根據目標壓縮對內容進行編碼。
將明白,取決於諸如網路負載或類似因素,目標壓縮可顯著改變。此外,某些壓縮方案可能適用於某些類型的內容,但不適用於其他類型的內容。因此,在一範例中,處理裝置配置成根據目標壓縮來選擇壓縮方案,然後使用所選擇的壓縮方案來壓縮內容。
因此,例如,如果處理裝置提供足夠的壓縮程度,則其可選擇使用標準現有的壓縮方案,例如JPEG。如果需要額外的壓縮及/或縮短的延遲時間,則可使用其他壓縮方案,並且可在共同待審的專利申請案WO/2017/214671、WO2018/223179、WO/2019/100108和WO/2019/100109中找到範例壓縮方案,其內容通過交叉引用併入本說明書中。以下將更詳細說明特定範例壓縮方案。
現將參考第九圖更詳細說明用於控制內容壓縮的系統範例。
在此範例中,系統包括耦接到對應數量編碼器920的多個內容引擎910。編碼器920經由通訊網路960連接到相對的解碼器,該解碼器又連接到顯示裝置940。雖然顯示為單獨實體,但是解碼器可與顯示裝置一體成形,例如通過使用顯示裝置內的嵌入式解碼器整合式電路。
提供單一控制器950,其與編碼器920和解碼器930在操作上通訊。例如,控制器可直接耦接到編碼器,並且可經由網路連接到解碼器。另外,取決於較佳實施方式,可經由編碼器路由來自解碼器的通訊。無論如何,此允許控制器950接收關於內容的壓縮/解壓縮之反饋,並將其用於計算目標頻寬、品量及/或壓縮等級。
此配置提供高度並行化的架構,其中針對每一使用者獨立產生、編碼、解碼和顯示內容。然而,提供共用控制器950,其允許執行和協調對壓縮的整體控制,以在考慮到網路上可用頻寬的同時,根據使用者度量為每一使用者定制內容壓縮。這也使得只需添加其他內容引擎和編碼器,即可為其他使用者快速擴展系統。
在一範例中,前述配置係在伺服器型架構中實施,其範例顯示於第十圖中。在此範例中,提供硬體伺服器1001,其實施控制器1050的功能,以及多個內容引擎1010和編碼器1020。然而,還將明白,編碼器和內容引擎可由相對的硬體形成,並且在下面更詳細描述其範例。
現將參考第十一圖更詳細說明用於將單一內容串流編碼的功能範例。
在此範例中,控制器1150、編碼器1120和內容引擎1110設置在邊緣伺服器1101中,其又連接到通訊網路1160,在此範例中該網路包括多個無線電天線節點1161。使用上,編碼器經由網路1160從解碼器接收包括顯示裝置狀態度量的顯示資料。顯示資料被傳遞到內容引擎1110,然後將內容和內容度量返回到編碼器1120。此允許編碼器壓縮內容,經由網路1160供應已編碼內容,以傳輸到解碼器和顯示裝置(未顯示)。
控制器1150經由通訊網路接收使用者組態度量和網路度量,及從編碼器接收諸如內容度量和顯示度量的反饋。控制器1150產生包括目標頻寬及/或品質的目標,並將其提供給編碼器1120,以允許其基於目標頻寬執行壓縮。
現將參考第十二圖更詳細說明此系統的操作範例。
首先,當使用者加入內容對話(諸如虛擬實境遊戲對話或類似對話)時,使用者將分配給相對內容引擎1110和編碼器1120。此時,編碼器1120與使用者的顯示裝置及/或相關聯解碼器進行通訊,在步驟1200接收顯示器組態度量,並在步驟1205將其傳遞給控制器1150。發生此情況的同時,控制器1150還獲取使用者組態度量,通常從資料庫中擷取使用者組態度量,及/或從諸如電信公司、網際網路服務提供商等供應商處接收使用者組態度量。
在執行初始設定之後,開始提供內容的系統操作。就此而言,在步驟1210,編碼器1120從解碼器接收顯示裝置狀態度量,其指出使用者輸入及/或顯示裝置移動/姿勢、刷新間隔、目前影格率、目標影格率或其他類似資訊。在步驟1215,顯示裝置狀態度量傳遞到內容引擎1110,以允許內容引擎開始產生內容,特別是產生下一影像影格。在產生內容的同時,內容引擎可提供內容度量,這些度量通常指出內容可被壓縮的程度,例如提供不需要編碼的內容區域之細節、內容品質的細節或等等。在步驟1220,內容度量由編碼器1120接收,並傳遞給控制器1150。
在發生此處理的同時,控制器1150在步驟1225獲取具有網路度量,其具有諸如節點服務品質、可用頻寬或等等的網路度量。在步驟1230,控制器1150基於可用度量以計算目標品質和頻寬。實施該目標的方式將根據較佳實施方式而變化,但是這通常使用最佳化演算法及/或機器學習技術來實施。
在步驟1235,將目標品質和頻寬上載到編碼器1120,以允許其在步驟1240計算目標壓縮。具體而言,這將考慮內容度量,例如預期的內容大小,和顯示度量及目標品質和頻寬,這些度量指出內容可壓縮的程度,以可計算出壓縮量,如此壓縮後的內容滿足頻寬和品質要求。
在步驟1245,編碼器1120可選擇壓縮方案。關於這一點,編碼器可預編程來利用一系列不同的壓縮方案及/或不同的壓縮參數,並且基於一系列因素來選擇該方案及/或參數,例如目標壓縮、顯示裝置組態細節、壓縮方案的屬性,例如壓縮時間及/或品質等。壓縮演算法可包括標準已知演算法,並且可包括針對每一影像影格調整壓縮,及選擇性與可變影格率結合使用,以在不過度影響影像品質的情況下,滿足目標頻寬。在一特定範例中,可使用能夠在影像被壓縮時動態調整影像壓縮的定制演算法,並且將在下面更詳細描述此演算法的範例。
在步驟1250,從內容引擎接收內容,在步驟1255壓縮內容,並在步驟1260經由網路1160發送內容。
進一步將明白,在此處理當中,編碼器1120可產生用於顯示控制器441的指令。例如,編碼器1120可決定目前目標影格率太高或不夠高,在此情況下,編碼器可指出顯示控制器調整間隔並因此調整影格率。
前述處理用於動態調整目標壓縮,以允許針對目前網路組態最佳化內容的壓縮。如前述,前述處理可運用於任何形式的壓縮。然而,在一範例中,當壓縮影像內容時,可將其與能夠動態調整所執行壓縮級別的自調適壓縮演算法一起使用,現將參考第十三A圖和第十三B圖,描述用於壓縮和隨後解壓縮影量資料的合適方法範例。
在此範例中,在步驟1300,從影像資料獲得像素資料,該像素料資料表示該等一或多個影像內的一像素陣列。該像素資料可用任何適當方式獲取,這取決於該影像資料的格式。在一範例中,簡單選擇該影像資料之內特定位元組序列就可實現。該像素陣列通常對應至一組像素數量,諸如該等影像之一者內的一8x8像素區塊,不過亦可使用其他像素陣列。
在步驟1310,對該像素資料套用一轉換,以決定指出該像素陣列的頻率分量之一組頻率係數(frequency coefficients)。因此,該轉換通常為一頻率轉換,諸如傅立葉轉換等,並且在一範例內為2D離散餘弦轉換( Discrete Cosine Transform,DCT)。該轉換可用任何適當方式套用,例如使用已知的轉換技術,但是在一範例中以高並行方式執行,藉此縮短處理時間。
在步驟1320,對該組頻率係數的所選定子集進行編碼。對此,已編碼的頻率係數是所選定子集,以最大化已編碼頻率資訊的有效性,例如通過選擇具有最高振幅的頻率係數,並因此對於解壓縮的影像品質有最大貢獻。執行選擇的方式將根據較佳實施方式而變,但是在一範例中,這涉及選擇具有振幅逐步變小的頻率係數,因此可通過逐步減小的位元數來定義,直到達到某個限制。對此,將明白,所實現的壓縮等級將取決於被編碼的頻率係數量,因此在一範例中,可通過控制已編碼頻率係數的大小及/或數量,以控制壓縮水平。
然而,這不是必需的,並且可使用其他選擇方法。頻率係數可以任何適當方式編碼,其可根據較佳實施方式而變,並且在一範例中,可包括使用頻率係數的原始位元表示,或者執行一些其他形式的無損編碼,如下面有更詳細說明。
在步驟1330,建立索引,該索引指出已編碼的頻率係數。該索引用於識別頻率係數,讓這些頻率係數可用於在隨後解壓縮步驟中重新產生影像。這是必需的,因為不同的頻率係數對於每個像素陣列將具有不同的振幅,使得編碼的頻率係數將在每個像素陣列之間變化,因此需要將此資訊傳送到解碼器以用於解壓縮,特別是允許解碼器重構該頻率係數集合。
索引可為任何適當的形式,並且可採用任何適當方式識別頻率係數,例如通過識別係數的位置,例如在係數矩陣內。索引可與頻率係數分開提供,例如通過提供索引,然後是一串編碼頻率係數,或者可包括索引內的編碼頻率係數,如下面將有更詳細說明。
一旦執行編碼並建立索引,即可在步驟1340產生已壓縮影像資料,其中該已壓縮影像資料包括該已編碼頻率係數並與該索引一起提供。例如,這可通過建立包含該等已編碼頻率係數序列的一位元組流(byte stream)來執行,其中選擇性具有額外資訊,諸如旗標或其他標記,以識別新影像等等的開始。
因此,前述處理允許通過對所選頻率係數進行編碼,並使用索引來建立壓縮影像資料,以識別已編碼頻率係數。通過允許隨意選擇頻率係數,例如根據其振幅,這可在隨後解壓縮影像時導致更高的影像品質。
對此,傳統方法集中於編碼對應於較低頻率的頻率係數,基於這些頻率係數通常對影像品質貢獻最大。在此情況下,通過在每次執行編碼時對相同的頻率係數進行編碼,這使得解碼處理成為可能,但是相反地意味著所執行的編碼不針對每個像素陣列進行最佳化,以導致諸如長條狀的偽影像(artefacts)。
對照下,在目前方法中,可選擇頻率係數以最佳化所得到的影像,例如通過對最大振幅係數進行編碼,這反過來對所得影像的外觀提供最大貢獻。最大振幅頻率係數不限於最低頻率係數,意味著亦可編碼更大的高頻係數。在此情況下,通過在已壓縮影像資料中包括索引來促進影像的解壓縮,這意味著所選擇的頻率係數可針對每個像素區塊而變,允許針對每個像素區塊及/或影像進行最佳化壓縮,同時最小化對影像品質的衝擊。
對此,在步驟1350獲得已壓縮影像資料,然後在步驟1360解碼該已編碼頻率係數,以建立頻率係數的子集。應明白,所執行的方式將根據所執行編碼的性質而變。
然後,在步驟1370,該索引用於產生全套頻率係數,通常通過定義具有空值的未編碼頻率係數。然後,在步驟1380,對該組頻率係數套用一逆轉換,以決定表示該等一或多個影像內一像素陣列的像素資料。特別是,其通常為逆向頻率轉換的形式,諸如逆向傅立葉轉換2D DCT等。
因此,前述處理允許通過對所選擇的頻率係數子集進行編碼,以對影像資料進行編碼,並使用索引來識別已編碼頻率係數,然後可在對已編碼頻率係數進行解壓縮時使用該索引。該方法本質上是自調適的,意味著所選擇的頻率係數將根據所編碼像素陣列的內容而變,以確保針對內容最佳化壓縮,允許最大化可實施的壓縮量,同時最小化對影像品質的衝擊。
除了前述優點,該方案可同時實施,這反過來使得能夠快速執行該處理,以減少等待時間,這在許多應用中相當重要,諸如虛擬實境應用,其中反應顯示裝置的移動而建立影像,並且必須快速將其傳輸到該顯示裝置來顯示。
現將描述多個進一步特徵。
在一範例中,該方法包括選擇具有 n位元的頻率係數,其中 n是最初設定為最大位元數的整數,然後選擇具有逐步減小的 n位元值之頻率係數。這執行來編碼具有更大振幅並因此具有更多位元數的頻率係數,優先於具有較小振幅並因此具有更少位元數的頻率係數,這反過來對影像品質的影響更小。
通常,執行逐步選擇較小數量位元的處理,直到滿足編碼參數,並且特別是確定已經達到該目標壓縮。如此,在一範例中,頻率係數經過選擇來實施一目標壓縮。例如在需要積極壓縮的事件中,這由只對少許大振幅頻率係數編碼來執行,然而若需要較不積極壓縮,則涉及編碼大量係數。
如前述,考量到不同因數範圍,可決定該目標壓縮及因此選定的該頻率係數。這可包括使用顯示度量、顯示組態度量、內容度量等,以確保壓縮程度滿足目標頻寬。
該顯示度量可定義目前的顯示裝置姿勢及/或動作,其可用於評估相較於先前影像的冗餘,或者生理屬性,諸如定義使用者凝視,其可評估使用者正在關注影像的哪些區域,並且因此需要更高的影像品質及較少壓縮。同樣地,內容度量可用於決定影像內的興趣區域,例如基於視覺內容及/或其他上下文提示,例如可聽到的提示,再次允許確定需要更高影像品質的區域。
該顯示裝置組態度量通常定義該影像在顯示裝置視野之外的部分,因此不顯示,及/或在影像的未顯示區域中,因此可使用更積極的壓縮而不會降低影像品質。
最後,該目標頻寬可根據目前頻寬及/或延遲,用來控制所使用的總體壓縮,以確保可及時傳輸該已壓縮影像資料。
因此,該方法可包括使用前述度量來選擇目標壓縮,而該目標壓縮又可用於允許選擇已編碼的頻率係數。
此外,這些配置可用於動態調整壓縮程度,並且具體上可用於調整每一像素陣列的壓縮。例如,一影像某些部分的相對品質可能不如其他部分那麼重要。在虛擬實境的案例中,由於顯示鏡頭的影像扭曲,所以影像周邊部分通常不會確實顯示給使用者。因此,這些影像部分應使用一有效零品質編碼,藉此在不損失該可視影像的任何影像品質之下,可大幅減少壓縮影像資料量。
同樣地,在虛擬實境應用中,可執行觀察者觀看影像哪個部分之分析,例如使用眼睛追蹤技術或類似技術,然後以較高品質編碼靠近該凝視點的影像部分。對此,一觀察者對於周邊區域的注視通常會減少,如此通常比較不會注意到影像品質下降。因此,用較高品質編碼靠近觀察者凝視點的影像,這會讓整體品質較差的影像被觀察者認為具有一般水準品質。對此,應明白,只要保持整個影像的傳輸時間,在視野中心附近的像素陣列是否包含更多位元並且需要更長時間來傳輸並不重要,因為這可通過減少發送該影像周邊附近位元數來因應。
因此,在一範例中,該方法包括差異壓縮該影像資料,如此使用不同的壓縮程度來壓縮該影像的不同部分,這反過來允許最大化壓縮程度而不會感覺到影像品質降低。此允許對影像的不同部分進行差分壓縮,同時仍然滿足整個影像的目標壓縮。
在一範例中,通過決定一或多個影像內的該像素陣列的位置,然後根據該位置選擇頻率係數的子集來實現該處理,使得該像素資料的壓縮程度取決於該像素陣列的已決定位置。
該索引通常指出在定義的序列中或在係數矩陣之內,每個已編碼頻率係數的位元數及頻率係數的位置。例如,根據該矩陣之內一座標位置,或簡單根據一係數排序清單內一相對位置或一係數矩陣的Z字形遍歷,該索引可識別該頻率係數。利用根據一位置來識別該頻率係數,這將識別該係數所需的位元數最少化,同時確保在解碼時可正確識別該位元。
在此情況下,可針對多個頻率係數指定位元數一次,允許反覆建構該索引,例如通過指定位元數n,然後列出具有該指定位元數n的每個已編碼頻率係數之位置。然後針對逐步減少的位元數 n重複此步驟,直到完成該索引,例如當已經滿足該編碼參數時。也應明白,一索引可建構用於所有頻率係數,然後只有其中某些已編碼並且提供該索引的對應部分做為該已壓縮影像料的一部分。
雖然該索引可在每次傳送時指定前述資訊,但是應明白,可重複某些索引,例如若影像中的特定像素陣列基本相同時。在此情況下,該索引可代替一代碼,例如參考前一像素區塊的索引,在此情況下,該方法可包括決定指出該索引的一索引代碼並使用該索引代碼產生該已壓縮影像資料。
在一範例中,該索引指出每一頻率係數之值,雖然這並不重要,並且另外該索引可與該已編碼頻率係數分開儲存,例如提供這些當成個別資料結構。
頻率係數可採用任何適當方式編碼,並且這可包括將頻率係數編碼為原始位元序列(即沒有改變)、編碼頻率係數而不縮放及/或無有損編碼。在一特定範例中,由於編碼該值所需的位元數是已知的,因此第一位元必須是「1」值(本質上,如果其為「0」,則可使用較少位元數), 這意味著可省略該值,以通過去除一第一位元,使用n-1位元對具有n位元的頻率係數進行編碼。
然而,應明白,可使用其他形式的編碼,例如使用位元編碼方案,其中一些該已編碼頻率係數具有減少的位元數。這可例如通過縮放及/或省略較大位元數來實施。
因此,將縮放因數(scaling factor)應用於至少一些頻率係數,可用於減小頻率係數振幅並因此減少要編碼的位元數。然後,當已執行解壓縮時可套用類似的縮放因數,藉此將個別頻率係數縮放回其原始振幅。在此處理期間,通常執行捨入,如此該已縮放的頻率係數為整數值,或具有有限數量的有效數據,藉此將用來編碼該等係數的位元數字最少化。將明白,當執行時,該等重新建立的頻率係數之精準度會下降,但是這效果對於結果影像品質的影響可忽略不計。
此外,可使用較少位元數來編碼具有較小振幅的頻率係數,例如通過簡單減少所使用的位元數。雖然這同樣導致精確度下降,但相較於通過確保準確編碼較高振幅頻率係數所獲得之精確度,這是最小的。
亦應明白,定義用於選擇頻率係數及/或不同縮放因子的不同編碼參數之不同編碼方案可用於不同像素陣列。在此情況下,編碼器通常選擇複數個編碼方案之一者,並使用該選定的編碼方案編碼該像素資料。此允許根據因子,諸如目標壓縮,以選擇不同的編碼方案。如此例如,某些像素陣列不用縮放就可編碼,而其他則可縮放用於具有少於5位元的任何頻率係數。同樣,所使用的該編碼方案可指定為該索引的一部分,以幫助解碼。
在一範例中,該影像資料定義複數個通道,並且其中該方法包括針對每一通道選擇性編碼頻率係數。通過單獨編碼不同通道,此允許對不同通道進行不同編碼,例如使用不同位元編碼方案,或忽略不同頻率係數。此外,單獨編碼通道可允許通道同時編碼,如此可大幅幫助縮短編碼執行時間,因此降低編碼延遲。
在一範例中,該像素資料定義RGB通道,並且該方法包括將該等RGB通道轉換成亮度與色度通道YCbCr,並轉換該等YCbCr通道。對此,人眼對於亮度與色度通道的感受並不同,允許色度通道使用較大壓縮程度來編碼,因此品質相較於該亮度通道較低,但無損所感受到的品質。如此在此範例中,該方法可包括針對該Y通道比該Cb或Cr通道選擇性編碼更多頻率係數,並且類似可包括針對該Y通道用超過該等Cb和Cr通道的位元來選擇性編碼頻率係數。
在進一步範例中,在該像素資料定義RGB通道之處,該方法可包括將該等RGB通道轉換成YCbCr通道,並利用編碼該等CbCr通道並使用該Y通道以產生該已壓縮影像資料。實際上在此範例中,該Y通道並未有效編碼,表示保留該亮度通道內含的完整資訊。這在某些編碼場景中特別有用,例如當編碼顯示漸層的像素陣列時,這可幫助保留色彩變化,因此改善畫質,同時僅導致壓縮些微減小。
通常,當將RGB通道轉換為YCbCr通道時,並且另外當隨後轉換YCbCr通道以產生個別頻率係數時,使用最小位元大小來執行轉換和轉變步驟。特別是,使用高於原生位元數的萬元數對每個係數進行編碼,使得在計算頻率係數的步驟期間不存在細節損失。例如,當轉換為YCbCr並隨後計算頻率係數時,8位元RGB係數可視為10位元係數,以避免在此處理期間遺失資訊。應明白,隨後對頻率係數進行編碼及/或縮放,這不會增加壓縮資料的總振幅,但是避免編碼時資訊遺失,因此可導致改善的影像品質並且特別是減少了條紋。
然而,將明白,這並非必需並且處理可另外在該等RGB通道內執行,在此案例中色彩轉換並非必要。這通常也避免損失精準度,並導致改善的影像品質。
如前述,該等不同通道可同時編碼。在此案例中,產生已壓縮影像資料的該方法通常包括同時執行來並列至串列(parallel to serial)位元組編碼,如此將該等頻率係數串列成一位元組串流,然後進行位元組編碼。
對此,位元組編碼可用來提供一額外無損壓縮步驟。這通常牽涉到代碼序列,其由解析該已壓縮影像資料的一系列位元組形成部分、識別包含一些相同位元組的子序列,並且將該子序列替換成指出該等相同位元組之值及該子序列內一些相同位元組之代碼來執行。在一範例中,當相同位元組的子序列包括三或多個位元組時,該代碼包括二位元組,不過將明白,應可使用其他適當編碼方案。
雖然通常稱為變動長度編碼法(Run Length Encoding)的代碼替換可以在任何位元組序列上執行,但是在一範例中,該位元組序列為從該已編碼頻率係數形成的該位元流。對此,通常有許多該等已編碼頻率係數擁有零值,表示當將從該等已編碼頻率係數形成的該位元流當成位元組序列分析時,在序列內頻繁存在許多零值位元組。因此,通過將這些替換為一代碼,此允許減少位元組數量。
雖然可從任何來源獲取影像資料,不過在一範例中,該方法包括從一視頻饋送中,諸如要顯示的一系列影像,獲取該像素資料。在另一範例中,該方法用來當成數位實境系統的一部分,並且在一特定範例中,用於無線傳輸數位實境內容,諸如增強實境、虛擬實境、混合實境,遠端呈現等。
在一範例中,實施前述壓縮方案,以基於目標壓縮執行個別像素陣列的動態壓縮。特別是在此範例中,使用目標壓縮搭配關於先前像素陣列實施的壓縮程度之資訊,以決定應當用於一或多個未來像素陣列的壓縮程度。特別是,這用於選擇位元編碼方案,然後至少部分利用前述方法來編碼頻率係數,使得可優先編碼具有更高振幅的頻率係數,儘管這並非必需。在此情況下,然後產生要指出該選定位元編碼方案的索引,因此允許執行對應的解碼。
對此,可根據該頻率係數的振幅及所需的壓縮,以選擇不同的位元編碼方案。此允許針對一或多個像素陣列群組動態調整壓縮,使得群組中的像素陣列進行最佳編碼,同時確保在整個影像上獲得期望的目標壓縮。
以下將更詳細說明此方式的進一步特徵。
在一範例中,該方法用於利用經由一通訊網路,接收來自一計算裝置的該已壓縮影像資料,在一可戴式數位實境頭戴組顯示影像資料。這可包括從雲端計算環境將已壓縮影像傳輸至本機裝置,諸如頭戴式智慧型手機,允許使用雲端計算來執行影像建立。合適連接的範例,其包括一有線GB網際網路、至行動電話的串流,例如透過行動通訊網路,諸如3G、4G或5G網路,透過有線連接傳輸至一綁定HMD,或透過無線連接傳輸至未綁定HMD等。
另應明白,可使用前述系統,以幫助解壓縮已壓縮影像資料。
例如,系統可使用前述的形式索引搭配該已解碼的頻率係數來重建一組頻率係數、一已定義的頻率係數序列及/或一係數矩陣。在一範例中,此處理涉及解碼每個已編碼的頻率係數,決定每個頻率係數的位置,將該已解碼的頻率係數添加到該已定義的序列或係數矩陣中,並且將空值添加到至少該已定義序列和係數矩陣之一者內的空位置中。
在一範例中,其中該索引已當成代碼發送,該方法包括從該壓縮影像資料決定一索引代碼,並從該索引代碼決定該索引。
通常,該方法包括不縮放及/或無有損解碼來解碼每個編碼頻率係數,其中執行該解碼的方式根據頻率係數的編碼方式而變化。
在一特定範例中,通過簡單省略第一位元來編碼頻率係數(因為這總是設置為值「1」),在此情況下,該方法包括對於具有n-1位元的編碼頻率係數,通過添加一第一位元建立使用n位元的頻率係數。
然而,另外及/或替代地,可根據當編碼該頻率係數時使用的位元編碼方案,以使用一位元編碼方案。例如,這可包括再生對應於較小頻率係數的一些遺失頻率係數,通常為空值,允許應用後續的逆轉換,如下面將更詳細說明。該方法也包括將一縮放因數套用到至少某些該等頻率係數,如此轉變已縮放的頻率係數。
如前述,該影像資料通常定義複數個通道,而已編碼頻率係數選擇性單獨解碼每一通道。該等通道通常包括YCbCr通道,而該方法包括執行該等YCbCr通道的逆轉換,並且將該等已轉換YCbCr通道轉換成RGB通道。通常,該逆轉換為一逆2-D離散餘弦轉換,不過可使用其他適當轉換。將明白,若該Y通道尚未編碼,如前述,該方法可包括解碼該等CbCr通道,然後將該等已解碼CbCr通道和該Y通道轉換成RGB通道。如壓縮該影像資料的範例中,該方法通常包括比該Y通道產生更多頻率係數給該等Cb或Cr通道。
該方法亦可包括同時解碼通道,在案例中已壓縮影像資料通過串聯至並聯位元組解碼進行至少部分解碼,有效將該傳入位元組串流區分成單獨位元編碼頻率係數,然後同時進行解碼。
在亦執行無損編碼的事件中,該方法通常包括識別序列位元組之內一代碼,並將該代碼替換成包含一些相同位元組的子序列。在此案例中,該代碼通常指出該子序列內該等相同位元組及一些相同位元組之值。同樣,該子序列通常包括三個或更多位元組,必且該代碼包含兩位元組,不過亦可使用其他適當配置。通常在該已壓縮影像資料上執行此處理,用此以產生該位元串流,然後用來建立該等已編碼頻率係數。
該已解壓縮資料亦可進行進一步處理,諸如使用一去區塊濾波器,用來在使用區塊編碼技術等等時,平順巨區塊之間形成的銳利邊緣。這又可以允許使用更高程度的壓縮,同時避免影像品質的相對降低。
如前述,壓縮影像通常由包括一電子編碼器處理裝置的一編碼器來執行,其中該裝置從該影像資料獲得像素資料、執行一頻率轉換、選擇性編碼至少某些該等頻率係數、產生指出該已編碼頻率係數的一索引,及使用該已編碼頻率係數和該索引產生已壓縮影像資料。
同樣地,使用通常包括一電子解碼器處理裝置的一解碼器來執行該已壓縮影像資料的解壓縮,其中該裝置獲得已壓縮影像資料、從該已壓縮影像資料決定一組已編碼頻率係數、執行該等已編碼頻率係數的位元解碼、使用頻率係數的該子集及該所引以產生一組頻率係數,及將一逆轉換套用至該組頻率係數,以決定呈現該等一或多個影像內一像素陣列的像素資料。
現將參考第十四圖更詳細說明該硬體組態的範例。
此範例將用個別硬體編碼器與解碼器來例示,但是將明白,這並非必需並且該相同技術可與整合式硬體結合使用。再者,雖然參考虛擬實境應用,同樣這並非必需,並且該技術可用來套用至其中要傳輸影像資料的任何環境,特別是當要使用有限頻寬傳輸影像資料時,同時保持可接受的影像品質及期望的延遲,諸如在虛擬實境、增強實境或遠端發送應用中。
在此範例中,設備1400再次包括一內容引擎1410、編碼器1420、解碼器1430及HMD或類似形式的一顯示裝置1440。另外顯示一用於計算目標頻寬的控制器1450。現將更詳細說明這些組件每一者。
在此範例中,內容引擎1410包括一微處理器1411、一記憶體1412、一選配輸入/輸出裝置1413,諸如鍵盤及/或顯示器,及如所示透過一匯流排1415互連的一外部介面1414。外部介面1414可用於將內容引擎1410連接到周邊裝置,諸如通訊網路、儲存裝置、週邊設備等。雖然顯示單一外部介面1414,不過這僅為範例,並且實際上可提供使用許多方法(例如乙太網路、序列、USB、無線等等)的多個介面。在此特定範例中,該外部介面包括至少一資料連接,諸如USB,及視頻連接,諸如DisplayPort、HMDI、Thunderbolt等等。
使用上,微處理器1411執行儲存在記憶體1412內應用程式軟體形式的指令,允許執行所需的處理。該應用程式軟體可包括一或多個軟體模組,並且可在適當執行環境內執行,諸如一作業系統環境等。
因此,將明白,可從任何適當處理系統形成內容引擎1410,諸如適當程式編輯PC等等。在一特定範例中,內容引擎1410為標準處理系統,諸如Intel架構型處理系統,其執行儲存在非揮發性(例如硬碟)儲存設備內的軟體應用程式,不過這並非必要。然而,將明白,該處理系統可為任何電子處理裝置,諸如微處理器、微晶片處理器、邏輯閘組態、選擇性關聯於實施邏輯的韌體,諸如FPGA(場可程式編輯閘陣列)、一特殊應用積體電路(ASIC)、一晶片上系統(SoC)、一圖形處理單元(GPU)、數位信號處理(DSP)或任何其他電子裝置、系統或配置。
再者,雖然內容引擎1410顯示為單一實體,將明白,實際上內容引擎1410應由多個實體裝置所形成,可選擇性分配在多個地理個別位置上,例如一部分雲端環境。
編碼器1420通常包括一編碼器輸入緩衝區1421,依序耦接到一編碼器處理裝置1422、一編碼器輸出緩衝區1423及一收發器1424。提供一個別資料緩衝區1425來耦接到收發器1424。
使用上,影像資料,並且在一特定範例中,視頻資料已接收,並且在送至編碼器處理裝置1422進行壓縮之前,暫時儲存在輸入緩衝區1421內。對此,該編碼器輸入緩衝區通常緩衝對應至該影像的接下來 m-1列像素,然後接下來 m列像素之影像資料,因此獲得接下來 mx m像素區塊的像素資料。如此,從此可了解,該處理並未要求整個影像緩衝,而是只有在開始處理之前先將 m-1列像素及來自下一列的進一步 m個像素緩衝即可。一旦已經完成,則編碼接下來m個像素,重複此步驟直到已獲取並已編碼來自前m列像素的像素資料。然後針對該影像內後續像素列重複此處理,直到已獲取整個影像的像素資料,在此點上以類似方式處理下一影像。 m值通常為整數並且可根據因素來設定,諸如選擇規則、所需的壓縮程度、像素陣列的位置等。在一範例 m=14內,在此情況下該處理包括緩衝七列該影像的像素,然後緩衝下列像素的接下來八個像素,如此編碼器處理裝置1422從其開始編碼之前的該已緩衝影像資料獲得接下來14x14像素區塊。
針對此方式的結果,該編碼器輸入緩衝區從來不需要儲存超過影像資料。此外,針對已獲取像素資料,這可使用該編碼處理立即處理,即使在緩衝影像資料的接下來八個像素之前。這有兩個主要衝擊,換言之縮短處理時間,然後造成延遲顯著縮小,同時降低整體記憶體需求。
然後,該結果已壓縮影像資料儲存在編碼器輸出緩衝器1423內,例如依序通過編碼位元內的讀數,藉此透過收發器1424,在傳輸至解碼器1430之前,執行並列至序列位元組編碼。收發器1424也調適成透過編碼器資料緩衝區1425傳輸其他資料,諸如接收自HMD 1440的一感測器資料。
根據較佳具體實施例,緩衝區1421、1423、1425可為任何適當暫時儲存設備形式,並且在一範例中,可包括高效能先進先出( First-In-First-Out,FIFO)場記憶體晶片等等。該輸入緩衝區通常連接到HDMI連接埠、顯示器連接埠輸出或任何其他適當視頻源,而資料緩衝區1435連接到USB連接埠,藉此允許等效連接到該電腦系統。
收發器1424可具有任何適當的形式,但是在一範例中,允許經由網路1460(例如5G網路或類似網路)進行無線通訊。
處理裝置1422可為能夠執行本說明書所說明該壓縮處理的任何裝置。處理裝置1422可包括根據記憶體中儲存的軟體指令操作之通用處理裝置。然而,在一範例中,為了確定適當的快速壓縮時間,該處理裝置包括配置成執行該壓縮處理的客製化硬體。這應包括選擇性關聯於實施邏輯的韌體,諸如一FPGA(場可程式編輯閘陣列)、一圖形處理單元(Graphics Processing Unit ,GPU)、一特殊應用積體電路(ASIC)、一晶片上系統(SoC)、數位信號處理器(Digitial Signal Processor,DSP)或任何其他電子裝置、系統或配置。在較佳範例中,編碼器處理裝置1422配置成執行每一DCT的個別通道並行處理,及個別頻率係數的並行編碼。如此,雖然顯示單一編碼器處理裝置1422,實務上,可提供個別編碼器處理裝置1422來同時編碼每一該等通道,或另外可使用、一GPU或其他類似並行處理架構。在諸如該Y通道這類通道未編碼的事件中,該編碼器處理裝置可在將該個別資料發送至編碼器輸出緩衝區1423當中簡單導入一延遲,確定這仍舊與該等已編碼CbCr通道同步。
在前述範例中,編碼器1420和內容引擎1410為分開的實體,但是應明白,在實際上並不必要如此,在一範例中,該編碼器的功能在內容引擎1410之內的硬體內實施,諸如在GPU等等內。
解碼器1430通常包括一收發器1434,其耦接到一解碼器輸入緩衝區1431,然後耦接到一解碼器處理裝置1432和一介面1433。另外提供一個別資料緩衝區1435,其耦接到收發器1434。
使用上,透過收發器1434從編碼器1420接收已壓縮影像資料,並且在送至編碼器處理緩衝區1432進行壓縮之前,暫時儲存在輸入緩衝區1431內。然後將所得影像資料通過介面1433傳輸到顯示裝置1440,以儲存在顯示緩衝區1446中。收發器1424也調適成透過解碼器資料緩衝區1435傳輸其他資料,諸如接收自顯示裝置1440的一感測器資料。
根據較佳具體實施例,緩衝區1431、1435可為任何適當暫時儲存設備形式,並且在一範例中,可包括高效能FIFO(先進先出)場記憶體晶片等等。
收發器1434可具有任何適當的形式,但是在一範例中,允許經由網路1460進行通訊。
處理裝置1432可包括根據記憶體中儲存的軟體指令操作之通用處理裝置。然而,在一範例中,為了確定適當的低解壓縮時間,該處理裝置包括配置成執行該解壓縮處理的客製化硬體。這應包括選擇性關聯於實施邏輯的韌體,諸如一FPGA(場可程式編輯閘陣列)、一圖形處理單元(GPU)、一特殊應用積體電路(ASIC)、一晶片上系統(SoC)、數位信號處理器(DSP)或任何其他電子裝置、系統或配置。在較佳範例中,解碼器處理裝置1432配置成執行每一DCT的個別通道並行處理,及個別頻率係數的並行編碼。同樣,雖然顯示單一解碼器處理裝置1432,實務上,可提供個別解碼器處理裝置1432來同時編碼每一該等通道,或另外可使用、一GPU或其他類似並行處理架構。在諸如該Y通道這類通道未編碼的事件中,該解碼器處理裝置可在將該個別資料發送至解碼器輸出緩衝區1433當中簡單導入一延遲,確定這仍舊與該等已解碼CbCr通道同步。
顯示裝置1440包括至少一微處理器1441、一記憶體1442、一選配輸入/輸出裝置1443,諸如鍵盤或輸入按鈕、一或多個感測器1444、一顯示器1445,及如所示透過一匯流排1447互連的一顯示緩衝區1446。
顯示裝置1440可為HMD形式,因此提供於適當外殼內,然後可讓使用者佩戴,並包括相關透鏡,允許觀看到該顯示器,熟習該項技藝者將會了解。
在此範例中,外部介面1447經過調適,用來透過有線連接,將該顯示裝置正常連接到內容引擎1410。雖然顯示單一外部介面1447,不過這僅為範例,並且實際上可提供使用許多方法(例如乙太網路、序列、USB、無線等等)的多個介面。在此特定範例中,該外部介面通常包括至少一資料連接,諸如USB,及視頻連接,諸如DisplayPort、HMDI、Thunderbolt等等。
使用上,微處理器1441執行儲存在記憶體1442內應用程式軟體形式的指令,允許執行所需的處理。該應用程式軟體可包括一或多個軟體模組,並且可在適當執行環境內執行,諸如一作業系統環境等。因此,將明白,該處理裝置可為任何電子處理裝置,諸如微處理器、微晶片處理器、邏輯閘組態、選擇性關聯於實施邏輯的韌體,諸如FPGA(場可程式編輯閘陣列)、一圖形處理單元(GPU)、一特殊應用積體電路(ASIC)、一晶片上系統(SoC)、數位信號處理(DSP)或任何其他電子裝置、系統或配置。
感測器1444通常用於感測顯示裝置1440的方位及/或位置,並且可包括慣性感測器、加速度計等。可提供諸如光感測器或近接感測器這些額外感測器,以決定目前是否正在佩戴該顯示裝置,而眼睛追蹤感測器可用於提供表示使用者凝視點。
在前述範例中,解碼器1430和顯示裝置1440為分開的實體,但是應明白,在實際上並不必要如此,在一範例中,該解碼器的功能在顯示裝置1440之內的硬體內實施。
在一範例中,該顯示裝置可因此為現有商業顯示裝置,諸如HTC Vive TM、Oculus Rift TM或Playstation VR TM頭戴組,不過將明白,這並非必需並且可使用任何適當配置。例如,該顯示裝置可為行動電話或結合到可穿戴式耳機中的其他類似顯示裝置之形式,其中數位實境內容通過一或多個無線網路,從遠端電腦(例如雲端型系統)產生和提供。
控制器1450包括一微處理器1451、一記憶體1452、一選配輸入/輸出裝置1453,諸如鍵盤及/或顯示器,及如所示透過一匯流排1455互連的一外部介面1454。外部介面1454可用於將控制器1450連接到週邊裝置,例如通訊網路、儲存裝置、週邊設備等,並且通常允許控制器至少連接到編碼器1420和網路1460。雖然顯示單一外部介面1454,不過這僅為範例,並且實際上可提供使用許多方法(例如乙太網路、序列、USB、無線等等)的多個介面。在此特定範例中,該外部介面包括至少一資料連接,諸如USB,及視頻連接,諸如DisplayPort、HMDI、Thunderbolt等等。
使用上,微處理器1451執行儲存在記憶體1452內應用程式軟體形式的指令,允許執行所需的處理。該應用程式軟體可包括一或多個軟體模組,並且可在適當執行環境內執行,諸如一作業系統環境等。
因此,將明白,可從任何適當處理系統形成控制器1450,諸如適當程式編輯PC等等。在一特定範例中,控制器1450為標準處理系統,諸如Intel架構型處理系統,其執行儲存在非揮發性(例如硬碟)儲存設備內的軟體應用程式,不過這並非必要。然而,將明白,該處理系統可為任何電子處理裝置,諸如微處理器、微晶片處理器、邏輯閘組態、選擇性關聯於實施邏輯的韌體,諸如FPGA(場可程式編輯閘陣列)、一特殊應用積體電路(ASIC)、一晶片上系統(SoC)、一圖形處理單元(GPU)、數位信號處理(DSP)或任何其他電子裝置、系統或配置。
現將更詳盡說明該影像壓縮/解壓縮的操作範例。
為了該範例的目的,假設內容引擎1410正在執行產生顯示在顯示裝置1440上內容的應用程式軟體,其中根據來自顯示裝置1440上感測器1445及選配的其他感測器之感測器資料,動態地顯示內容,例如手持控制器或位置檢測系統(未顯示),如熟習該項技藝者將了解的。
由內容引擎1410所執行的動作,係由處理器811根據在記憶體1412中儲存為應用程式軟體的指令來執行,及/或透過I/O裝置1413或其他週邊(未顯示)接收自使用者的輸入指令來執行。顯示裝置1440所執行的動作由處理器1441根據在記憶體1442中儲存為應用程式軟體的指令來執行。
編碼器1420和解碼器1440當成內容引擎1410與顯示裝置1440之間的介面,允許影像資料顯示於顯示裝置1440上之前壓縮、無線傳輸然後解壓縮,同時也允許感測器資料或輸入指令資料回傳至內容引擎1410。由編碼器1420和解碼器1430所執行的動作通常由個別處理裝置1422、1432根據已定義的程式編輯來執行,並且在一範例中,根據一客製化硬體組態及/或嵌入式韌體內的指令來執行。
同樣地,由控制器執行的動作係由處理器1451根據在記憶體1452中儲存為應用程式軟體的指令來執行,及/或透過I/O裝置1453或其他週邊(未顯示)接收自使用者的輸入指令來執行。
然而,將明白,針對以下範例目的所假設的前述組態並非必需,並且可使用許多其他組態。
現將參考第十五A圖和第十五B圖來描述範例壓縮處理,以使得針對每一像素區塊動態調整壓縮程度。
在此範例中,在步驟1500,編碼器1420從內容引擎1410接收來自影像資料的像素資料,該像素料資料通常呈現該等一或多個影像內一像素陣列。
在步驟1505,已決定一目標壓縮,而基於控制器1450提供的目標頻寬以計算目標壓縮。這指出所需的壓縮程度,並且可與關於先前像素區塊的壓縮資訊一起使用,以在步驟1510選擇位元編碼方案,然後可用於編碼一或多個像素區塊,以下將有更詳細說明。
在步驟1515,對該像素資料套用一轉換,以決定指出該像素陣列的頻率分量之一組頻率係數。這通常通過執行2D DCT來實施,如先前例如關於步驟1310所說明的。
在步驟1520,已編碼頻率係數。可對頻率係數進行編碼,如此選擇頻率係數的子集,以通常通過選擇具有最高振幅的頻率係數,以最大化已編碼的頻率資訊之有效性。或者及/或另外,可通過縮放頻率係數來執行編碼。對此,通常一些位元編碼方案通過同時執行縮放及選擇性編碼頻率係數來操作。然而,另應明白,根據所需的壓縮程度,在一些範例中,位元編碼方案可僅執行頻率係數的縮放,或者可僅執行所選頻率係數的編碼,這取決於該較佳實施方式。
在步驟1525,已產生索引,該索引至少部分指出所選擇的位元編碼方案,並且選擇性指出該縮放因數及/或已選擇並編碼的縮放係數。
在步驟1530,已產生已壓縮影像資料並根據需要提供,例如通過將該已壓縮影像資料發送到解碼系統,該系統在步驟1535接收該已壓縮影像資料,並且在步驟1540操作以解碼頻率係數。
為了達成此,解碼器將根據該已壓縮影像資料決定該索引,並用來識別在壓縮期間使用的位元編碼方案。然後,此允許解碼器產生一組頻率係數,並且如果在步驟1545需要,則可選擇性應用縮放因數來對頻率係數進行解縮放。此後,在步驟1550可應用逆2D DCT轉換,然後在步驟1555用於產生影像資料。
因此應明白,前述配置提供一種機制,以根據目標壓縮程度陣列目標動態壓縮各個像素陣列,以可根據多個位元編碼方案之一者對像素區塊進行差異編碼,此允許執行頻率係數縮放或選擇性頻率係數編碼中的一或多者,以維持整體目標壓縮,同時最佳化所得到的影像品質。
現將描述多個進一步特徵。
可採用多種方式中之任一者來選擇位元編碼方案,並且這通常會將多個先前像素陣列的累積位元總數列入考慮。在一特定範例中,這將影像的累積位元總數和目標壓縮程度或目標位元率列入考慮。因此在此情況下,可計算一組先前像素陣列的總位元數,例如10、50、500、1000、5000、10000等,然後量身定制目前像素陣列的壓縮,以確保維持整體位元率。
所獲得的壓縮將取決於諸如一或多個影像內像素陣列的位置、顯示度量、顯示器組態度量等因素。由此可了解,此允許根據總體目標壓縮及諸如影像內像素陣列位置、可用的通訊頻寬等之類的因素,通過最佳化在每個像素陣列上使用的壓縮,確保足夠的整體壓縮,以調整單一及/或像素陣列群組的壓縮。
在一特定範例中,針對多個前述像素陣列以決定累積的位元總數,如果累積的位元總數超過累積的位元總臨界值,則決定用於先前像素陣列數的壓縮程度,使用該壓縮程度及該目標壓縮來選擇位元編碼方案,不過應了解可使用其他方式。
雖然前述處理可通過如前述對頻率係數的子集進行編碼來單獨執行,但是或者及/或另外,這可通過利用縮放因數縮放頻率係數來實施。在一較佳範例中,根據已縮放係數的振幅,兩方式結合已縮放的頻率係數及已編碼的該已縮放頻率係數之選定子集一起使用。
在一特定範例中,該方法涉及識別最高振幅頻率係數、計算將最高振幅頻率係數減小到目標位元數所需之最小縮放因數,然後使用該最小縮放因數或較大縮放因數縮放頻率係數。這可用於例如確保所有頻率係數減小到七位元或更小振幅、選擇最高振幅係數以形成該已壓縮影像資料,儘管將明白係數矩陣中的第一係數(通常稱為DC係數)可從此處理中排除,但是允許DC係數無縮放發送,例如當成八、九、十或十一位元數,這取決於該較佳實施方式。保持未縮放的DC分量可例如通過減少條紋的影響而明顯改善所得的影像品質。
在一特定範例中,通過選擇多個位元編碼方案之一者來實現前述處理,其中每個位元編碼方案定義可用的縮放因數和一或多個位元臨界值。在此範例中,然後使用至少是最小縮放因數的多個可用縮放因數之一者來縮放頻率係數,然後根據位元臨界值對縮放的頻率係數進行編碼,例如通過僅編碼具有比位元臨界值更多位元的頻率係數及/或丟棄具有比位元臨界值更少位元的縮放頻率係數。
因此應明白,在此範例中,位元編碼方案定義位元臨界值和縮放因數的組合,其可用於實施不同的壓縮程度。然後可根據陣列目標來選擇用於任何個別像素陣列的位元編碼方案,而該陣列目標又取決於多個前述像素陣列的累積位元總數。
在一範例中,每個位元編碼方案為不同顏色通道定義相對的位元臨界值,特別是對於亮度和色度通道。通常,這包括色度通道的位元臨界值高於亮度通道的位元臨界值,使得色度通道比亮度通道丟棄更多的頻率係數。這有助於保留觀看影像的個人所感知之影像內資訊,以保持影像品質。另外如前述,當轉換顏色通道並產生頻率係數時,通常使用更高的精準度水準來處理係數,例如使用10位元來編碼8位元係數,以避免四舍五入不精確性。
因此,在一範例中,該方法包括將轉換應用於像素數據、計算最小縮放因數、選擇位元編碼方案、縮放頻率係數,然後根據個別顏色通道的位元臨界值對已縮放頻率係數子集進行編碼。
在一較佳範例中,該方式涉及從位元編碼方案的一已排序清單(an ordered list)中選擇一位元編碼方案,該清單已經排序來提供逐步增加的壓縮。此允許根據所需壓縮程度進行初始位元編碼方案選擇,其中根據滿足陣列目標所需的壓縮,針對不同區塊群組改變所選方案。
通常通過增加可用縮放因數的振幅,減小最低可用縮放因數和逐步增加位元臨界值,以實施壓縮的逐步增加。可使用的縮放因數可為一、二、四或八個之任一或多者,但是應明白,可適當地選擇其他因素。同樣地,位元臨界值可為一、二、三、四、五或六個之任一或多者,但是根據特定實施可再次使用其他臨界值。
應明白,可利用與上面分別與第一A圖至第十圖描述的特徵和硬體類似的特徵和硬體來執行前述技術,因此將不再進一步詳細描述這些特徵。
現將參考第十六A圖至第十六D圖、第十七A圖至第十七C圖和第十八A圖至第十八E圖來描述編碼方式的更具體範例。
在此範例中,在步驟1600和1602,編碼器1420從內容引擎1410接收呈現一系列影像中一或多者的影像資料,並且將此資料暫時儲存在編碼器輸入緩衝區1421內。然後分析該影像資料,例如通過解析該資料來識別限定標題的該資料內之旗標、識別一影像的開頭等等,在步驟1604獲取對應至該影像資料中接下來8x8像素區塊的像素資料。對此,當緩衝該資料時,該編碼器從該影像要求一初始8x8像素區塊,以開始處理。因此,在開始處理之前,在編碼器輸入緩衝區1421內填入一影像的頭七行像素,及第八行像素的頭八個像素。隨著接收到接下來八個像素,然後處理接下來8x8區塊,然後重複到已經處理完該影像頭八列內所有像素。然後用類似方式處理接下來八列群組。
在獲取像素陣列之前,在步驟1604,可選擇性確定多個前述像素陣列的目前壓縮程度,例如在已編碼一定數量的像素陣列之後,或者當累積位元總數時,這是用於編碼多個前述像素區塊的總位元數,達到臨界值,如下面將有更詳細的描述。
在步驟1606,已從控制器1450決定目標壓縮程度,其表示應當保持用於壓縮目前影像或影像目前部分之平均壓縮比。
在步驟1608,已選擇位元編碼方案。特別是,從已排序清單中選擇下一位編碼方案,根據目前壓縮程度是高於還是低於目標壓縮,選擇該方案以提供比先前選擇方案更多或更少的壓縮。對此,位元編碼方案清單通常包括提供逐步更高壓縮的位元編碼方案清單,使得朝向清單頂部的方案具有最小縮放因數,而對於在清單底部的方案則增加縮放因數。因此,可根據需求將清單往上或往下移動來選擇下一方案。
下表1描述此清單的範例。在此情況下,假設選擇位元編碼方案8或更高,則將使用4或8的縮放參數,以能夠實現期望的縮放程度。 表1
編碼方案 位元臨界 縮放因數
1 0 1, 2, 4, 8
2 1 1, 2, 4, 8
3 2 1, 2, 4, 8
4 0 2, 4, 8
5 1 2, 4, 8
7 2 2, 4, 8
8 0 4, 8
9 1 4, 8
一旦選擇位元編碼方案並獲取像素陣列,則在步驟1012,將RGB通道轉換為亮度和色度通道,其中在步驟1614將2D DCT應用於每個通道,藉此將通道轉換成頻率領域。此處理可用已知的技術執行,並且在較佳範例中,由處理裝置1422以並行度非常高的方式執行,藉此縮短處理時間。每一通道上的轉換處理結果為8x8矩陣,具有64個頻率係數,表示該個別影像通道內不同頻率係數的振幅。
在步驟1616,對每個係數矩陣內的頻率係數進行排序,用此排序在步驟1618識別最高振幅的頻率係數。然後在步驟1620,通過計算所需縮放因數以決定最小縮放參數,以將最大振幅係數的振幅減小到低於設定量。特別是,在一較佳範例中,這將最大振幅係數的振幅減小到127以下,使得可使用七位元來編碼。然而應明白,根據較佳實施方式,可使用63或更低的替代數字。
在步驟1622,通過首先縮放頻率係數然後選擇用於編碼的該已縮放頻率係數,以對頻率係數進行編碼,這用於在步驟1624建立一索引輸入。
現將參考第十七A圖至第十七C圖描述建立索引輸入的方式。
在第十七A圖的範例中,顯示包括多個頻率係數的矩陣,該頻率係數具有可由不同位元數量定義之值,其包括0到8位元,由 C 0 C 8 表示。
若要建立索引,使用第十七B圖中所示的Z字形遍歷路徑遍歷該係數矩陣,直到達到第一8位元數 C 8 。此時,基於0到63之間的數字,或使用表示矩陣行列的0到7間之兩個值,以決定頻率係數的位置。應明白,在每種情況下,可使用6位元來表示位置,在第十七C圖中圖解顯示索引輸入的範例。
在此範例中,該索引包括欄1701,其包括定義目前位元數 n的輸入、表示位置的第二欄1702和表示頻率係數值的第三欄1703。雖然在此範例中頻率係數值包括在索引中,但是應明白,這不是必需的,並且另外該索引和頻率值可在單獨的資料結構中提供。
作為該處理的一部分,頻率係數通常經歷編碼。對此,第一頻率係數以7位元顯示,而第一位元可基於必須是值「1」而省略,否則頻率係數將是7位元值。然而,另應明白,可採用其他編碼方案來進一步減少位元數,例如通過縮放等,並且將不再進一步詳細描述這些處理。
因此,應明白,使用上面定義的處理,遞迴搜索係數矩陣以獲得位元數 n的連續遞減值,直到達到極限。索引和頻率係數的結果位元數將取決於頻率係數的實際值,這對於不同的像素陣列將顯著變化。不同 n個臨界值所需的總位元數之範例顯示在下面的表2中。若要編碼64個8位元字通常需要512位元,因此在此情況下,很明顯只要編碼不小於4位元頻率係數,則會減少需要編碼的位元數。 表2
n臨界值 位元數
8 42
7 93
6 184
5 267
4 451
3 510
2 561
1 660
實際上,大多數係數矩陣具有更大數量有小值的頻率係數,因此位元數的減少要大得多,這意味著實際上可實施更大的壓縮。另應明白,當在矩陣中存在諸如10或12位元振幅頻率係數的較高位元頻率係數時,所獲得的壓縮程度相對較高,這意味著對於較高品質影像通常有益處。
不管獲得的該相對壓縮程度如何,另一重要因素是保留最重要的頻率係數,特別是具有最高振幅的頻率係數,以將對所得影像品質的影響最小化。
在上面的範例中,一旦識別出要編碼的頻率係數子集,則停止索引處理。然而應明白,這不是必需的,並且另外可針對所有頻率係數振幅遍歷整個係數矩陣,有效地建立所有頻率係數的索引。在此情況下,可在建立索引之後套用該臨界值,如此僅將所選頻率係數子集合併到該已壓縮影像資料中。應明白,這有相同的因此,因此將不再進一步詳細說明。
一旦已經執行編碼,即可在步驟1626上通過同時執行序列位元組編碼,將索引和該已編碼頻率係數子集連接成一位元串流,特別是通過組合三個通道中每一者的索引和頻率係數。
在步驟1628,可通過解析該等位元組以識別相同位元組的子序列,以執行額外編碼,然後將這些子序列替換為代碼,以執行代碼替換編碼。特別是,此方式用於識別三或多個相同位元組的子序列,然後替換成一代碼,不損失任何資訊。特別是針對大部分影像,在該結果編碼頻率係數內有零字串,在此該等已縮放的係數捨入為零。因此,這些可取代成一代碼,其可由該解碼器識別,允許該解碼器重新插入相同位元組的子序列。
雖然該代碼可為任何適當形式,在一範例中,該代碼包括識別該特定位元組為代碼的一標題,及對應至相同位元組的值與編號之資訊。在較佳配置當中,使用布林OR運算將一2位元組代碼與一列(1-8)內零編號組合。在一範例中,該零數字編號呈現為N-1,如此0-7的數字與該2位元組代碼進行OR運算,如此只採用該第二位元組的3位元,例如,所使用的該代碼可為(1111 1111 ; 1111 1000),其中該第二位元組根據零的數字與0-7進行OR運算。將明白,類似方式可用於不同值。
此方式運作良好,因為該編碼很少導致連續數字超過或等於248之值,如此該解碼演算法可簡單搜尋具有255值的一位元組及具有值大於或等於248的後續位元組,將其識別為與已編碼頻率係數相反地代碼。然後用對應至具有由該第二位元中最後3位元所表示一系列零數字的該資料之位元組來取代此代碼。這可導致在根據最新測試的該位元編碼階段之後,資料可進一步縮小19-25%。
在這之後,在步驟1630輸出已壓縮影像資料。
在步驟1632,決定多個前述像素陣列的累積位元總數,這用於在步驟1634上評估是否已超過累積位元總臨界值。若為否,則處理回到步驟1610來獲取下一像素陣列。否則處理回到步驟1604,以決定壓縮率並如前述選擇位元編碼方案。因此應明白,在建立一定數量的壓縮位元之後,已選擇新的位元編碼方案。此時,檢查那些區塊的累積壓縮率,並重新選擇位元編碼,以在需要時進行變更,以即使在目標壓縮因網路需求改變而改變,也能確保達到目標壓縮。
應明白,此允許對多個區塊進行編碼,其中位元編碼方案根據所產生已壓縮影像資料的總量而動態更新。因此,對於實施較少壓縮的影像區域,位元編碼方案可更快地切換,以幫助確保最佳化所選方案。一般而言,已選擇累積位元總數的臨界值,使得位元編碼方案在無線封裝的大小內改變若干次,以控制將通過無線系統發送的位元率,並確保沒有壓縮比峰值或大幅變化。
然而,或者是可在已處理設定數量的區塊之後重新選擇位元編碼方案。這可包括單一區塊,儘管系統通常不太穩定,因此通常會使用更多數量的區塊。
在步驟1636,由解碼器1430接收已壓縮影像資料,並且將已編碼影像資料部分儲存在解碼器輸入緩衝區1431中。如前述,該已編碼影像資料部分通過解析以識別資料內的代碼,在步驟1640執行系列到並列位元組編碼之前,在步驟1638用重複相同位元組的子序列取代這些代碼,以重建該等三個顏色通道之每一者的該索引和頻率係數。
在步驟1642,執行選擇性位元解碼,特別是解碼該等已編碼頻率係數之每一者。應明白,在其最簡單的形式中,簡單涉及將「1」位元添加到每個該等已編碼頻率係數的開始處。然後根據該索引中已標識的位置,將該已解碼頻率係數插入一頻率係數矩陣中。對於矩陣中的任何空白空間用空值填充,然後在步驟1646重新建構該係數矩陣。步驟1646可應用掃描,在步驟1648將逆轉換套用至頻率係數之前,其中在步驟1650將色度和亮度通道轉換為RGB通道,並且在步驟1652輸出8×8像素區塊,並儲存在顯示緩衝區846內。
將明白,對於多個影像部分重複該處理,以允許重構整個影像的影像資料,以允許其根據前述自調適影格率處理隨後顯示。
此方式的結果範例顯示於第十八A圖至第十八H圖。
特別是,第十八A圖顯示包括兩個影像區域1801、1802的範例影像,其為跨越影像延伸的條紋。
在第十八B圖中,顯示整體壓縮比,因為對於整個影像中的連續區塊來逐步壓縮該影像。對此,值得注意的是,當壓縮比逐步增加時,壓縮比最初約為0.76,並且隨著影像上的壓縮進展,平均值大約是0.805。所使用的位元編碼方案變化如第十八C圖所示,每個像素區塊的壓縮程度如第十八D圖所示。
這展示出位元編碼方案如何在區塊已壓縮時改變,並且突顯出位元編碼方案1到4優先用於編碼該影像的天空區域,而每個像素區塊的壓縮仍然約束在0.75與0.9之間。
條紋1801、1802的壓縮分別顯示於第十八E圖和第十八F圖及第十八G圖和第十八H圖中。特別是,這顯示出使用位元編碼方案1至4優先壓縮天空,而通常使用壓縮方案4至7壓縮岩石。
在此特定範例中,位元編碼方案1至4通常使用較少的縮放,如果需要,通過丟棄頻率分量來實施壓縮。其原因在於天空區域傾向於具有相對恆定的顏色和飽和度,這表示頻率係數矩陣由通常具有小值,但是在整個矩陣上具有相對恆定值的頻率係數來形成。因此,單獨最小的縮放足以提供必要的壓縮,而不需要省略頻率係數。
相較之下,在壓縮條紋1802中的岩石特徵時,影像內容存在許多變化,這表示存在高振幅頻率係數,使得縮放需要更積極。
通過減少跨區塊中顏色變化最小的區域之縮放,如此顯著減少使用更傳統壓縮技術所獲得的帶狀偽影像。然而,通過動態調整所使用的位元編碼方案,系統能夠保持總體期望的壓縮程度,同時允許以最適當方式壓縮不同類型的內容,以避免壓縮偽影象,並因此維持影像品質。
在所有前述範例中,係數矩陣中的第一係數(通常稱為DC係數)可從該處理中排除,根據較佳實施方式允許DC係數當成八、十或十二位元數發送。
因此,前述配置提供有效的DCT動態位元編碼和索引方案,這特別適用於諸如無條紋串流傳輸高品質視訊的應用,例如用於數位實境應用,諸如虛擬實境與增強/混合實境應用。
傳統的DCT壓縮,諸如JPEG壓縮,通過在頻率係數矩陣中保留較低頻率係數來操作,在特定等級上丟棄較高頻率係數,與這些頻率係數的大小無關。通過以降低精準度為代價,以縮放係數可實施進一步壓縮。此方法在數位實境應用中屬於次優,其中影像為動態,具有變化很大的內容。特別是,此壓縮方式會造成條紋問題。
因此,前述方法通過在DCT矩陣中保留較大值來尋求保持DCT係數之精準度,以避免此情況,DCT矩陣在最終影像的品質中有更重要的作用,並且可通過最小化顏色空間轉換(例如從RGB到YCbCr並返回到RGB)引起的精準度損失,選擇性通過最小化來尋求進一步的改進。
對此,由於不可能預先知道較大振幅係數的位置,因此識別最大振幅係數,運用產生的該索引以識別矩陣中這些係數的位置。該索引可作為該已壓縮影像資料的一部分進行傳輸,並用於在解壓縮期間重建矩陣,以避免遺失較大振幅的分量。這與已集中於保留較低頻率係數並且丟棄較高頻率係數的傳統方法形成對比,傳統方法又可能導致較高振幅頻率係數的損失。
特別是在條紋化的背景下,前述方法避免損失較高振幅係數、減少條紋效應,並且通過避免顏色轉換步驟的精準度損失來實現進一步改進。儘管可選擇性避免顏色轉換步驟,但是其係針對整性而提供,並且通常包含與否將取決於具體實施及顏色轉換是否強制。例如,許多影像處理系統具有RGB < - > YCbCr轉換處理,因此可能需要顏色轉換步驟。另外,轉換到替代顏色空間有助於壓縮,允許色度通道的壓縮程度高於亮度通道,因此如果需要進一步壓縮,這是有益的。但是,轉換到替代顏色空間會導致喪失精準度,具體取決於轉換後像素的表示(例如,如果將8位元轉換為8位元整數),可能會讓使用者看見一些條紋,因此顏色空間轉換通常不偏好。
為了保留較大振幅的頻率係數,系統採用優先順序和索引框架,其中首先發送最重要係數,然後是越來越不重要的係數,發送的係數數量係根據因素來控制,例如所需的壓縮程度、可用頻寬等。因此,該方法允許每個像素陣列的位元數根據應用而增加或減少,並且結果是針對最少數量位元發送最重要的值。這對於本說明書件內說明的不同應用範例具有重要的益處。
該方法通常涉及從最高位元值數(例如8位元數)開始,在該係數矩陣內從1級到整個表搜索這些值,通常遵循Z字形圖案。對於每個頻率係數,對數字進行編碼,並且建立索引位元以表示頻率係數的位置。如該處理的一部分,由於每個已識別頻率分量具有定義的位元數,因此可移除有效位元以節省位元,例如將8位元數編碼為包括符號的7位元。在所有最高位元數已編碼之後,可依序對較低位元值數重複該處理,即:7、6、4、3、2、,對表中所有數進行編碼而不會喪失任何精準度。
下面列出一種可能實施的虛擬碼。 迴路(每個位元數重複8到2位元); 7 迴路:N = 8到2 a.          找尋數 +/-  <(2^N)和 >=(2^(N-1))  (找尋DCT矩陣內所有N位元數)於係數2-64內( 所有等級 ) i.            如此對向量進行比較,並根據值是否存在,將結果向量設置為0或1(有效表向量) ii.            如前述,AC係數為+/-,因此在沒有符號位元的情況下執行檢查,然後在表示中包括該位元 iii.            對於將符號位元儲存為一單獨向量可能有用 b.         取得值數(表示為M-1)[6位元] i.            如果沒有找到值,則將[0](1位元)附加到輸出並移至下一迴路反覆 c.          產生一索引(0-63)[6位元],根據以下係數順序在向量內定義位置: i.            執行Z字形遍歷以向量形式列出係數,以建立查找表,該表可支援所有符號數的索引 ii.            取向量並從SECOND值(第一AC係數)開始,並建立一63值長數(int 16類型) d.         資料: i.            將資料儲存為(VALUE-1)   [大小N-2位元] ii.            備註:資料從最高(第一)位元移除,因為其總是具有最高位元集合 iii.            備註:對於2位元數,沒有發送資料位元,只有符號位元,其可在解碼端上建立+/- 1值 e.          封裝資料 i.            [1(資料發現)]  [數值 - 1(6位元)]  [第一索引(6位元)]  [第一符號位元(1位元)]  [第一資料(N-2位元 - 6、5、4、3、2、1位元)]   …   [最低有效位元(6位元)]  [最低符號位元(1位元)]  [最後資料(N-2位元 - 6、5、4、3、2、1)] f.           重複數位元值8到2
在編碼之後,可發送最高有效頻率分量,同時可丟棄不同數量的最低有效頻率分量,以獲得顯著程度的壓縮。應明白,此允許根據要實施的壓縮比,以調整所傳輸的頻率分量數量。
另應明白,可將各種方法用於前述及隨後通過通訊媒體發送的該等位元之封裝化。
特別是,以上允許實施固定或動態位元編碼方案。該固定情況使用預定義規則,以提供位元數的輸出來傳送每像素陣列,而在該範圍之外的位元則丟棄。此範例涉及根據像素陣列遠離使用者眼睛位置的距離,以保持每像素陣列的固定位元數。這可用來提供注視點壓縮。
相較之下,動態編碼使用有關位元編碼處理的資訊,其中每個像素陣列由需要多少位元才能完全表示該像素陣列所表示,例如取決於像素陣列內容的複雜性。在此情況下,可動態編碼每個像素陣列,使得更複雜的像素陣列需要比其他像素陣列更多的位元配置。
因此,前述範例使用不同的位元編碼方案對影像內不同像素陣列進行編碼,以在整個影格中改變壓縮,以允許獲得相對的目標壓縮。然而將明白,這並不重要並且可使用其他技術來實現目標壓縮。
例如,壓縮可在影格之間變化。在此範例中,這可通過在整個影格上使用相對壓縮方案、相對位元編碼方案或相對壓縮/編碼參數來實現,其中壓縮/編碼方案/參數在影格之間變化,以允許獲得目標壓縮。
在另一範例中,可改變影格率以實施整體目標頻寬。例如,降低影格率可用於減少需要壓縮的資料量,以允許使用降低的壓縮程度來滿足目標頻寬要求,及/或允許使用降低的目標頻寬來滿足相同的壓縮程度。因此,將明白,這可在有限頻寬的情況下使用,降低影格率以滿足目標頻寬,同時允許在不過度影響最終影像品質的情況下實施這一目標。在此範例中,處理裝置可配置成根據至少目標壓縮和目標頻寬之一者來選擇目標影格率,並且根據影格率讓內容為已產生和已壓縮之至少一者。
因此,前述系統通過分析網路和使用者度量來操作,以決定多個使用者中每一使用者的目標頻寬。此資訊用於計算目標壓縮,而動態壓縮演算法用於動態壓縮影像,以滿足所需的目標壓縮。
因此,前述系統可提供一種方法,其針對每一使用者對不斷變化的網路狀況做出反應,並設定目標頻寬並因此針對每一使用者設定壓縮,以維持每一使用者的品量,同時確保網路不過載。
在一範例中,壓縮方法可對混合實境裝置使用者的特定瞬時事件條件做出反應,例如根據顯示裝置的移動瞬間改變壓縮。
在一範例中,這使用有關內容遞送解決方案的編碼器/解碼器之多個實例來實現,以允許遠端產生並透過通訊網路提供諸如VR、AR和混合實境之類的數位實境內容,同時使延遲時間最小化。
在一範例中,該系統實施一種控制器,其基於每一使用者的網路能力來驅動目標頻寬。可使用各種網路架構來實施該系統,其包括使用單一伺服器解決方案來支援連接到多個接入點(Access Point,AP)/天線(節點)的低延遲網路,其中每個AP上有多個使用者。
可將控制器配置成注意各種節點、每個節點上的使用者數量和類型,並考慮到度量,諸如使用者優先順序(本地電信公司提供)、每個節點的網路服務品質、或每個AP上的使用者服務品質等等。
控制器可基於顯示裝置類型及基於特定內容,以控制頻寬分配,其中該顯示裝置類型定義要針對該使用者、解析度、影格率、壓縮技術等採用的VR/AR/PC特定壓縮演算法。
該系統隨時決定使用者的瞬時運動,此資訊會反饋給控制器以調節壓縮率,例如提高壓縮用於具有較高旋轉和平移運動的使用者。對於使用者的不同運動狀態,可使用不同的壓縮技術來實施不同的壓縮。因此,如果使用者不經常移動,則影格率可能會下降以保留細節,而如果顯示裝置快速移動,則可能會保留影格率,但壓縮率會增加。
目標頻寬和壓縮可在系統發出的每個封包上即時更改,這可使用多種壓縮技術來滿足,例如動態偏移、自調適控制、掩蔽、眼球差異、影格率控制等,以滿足目標壓縮要求。
系統可配置成支援不同的使用者級別類型,例如提供不同的體驗/品質給不同類型的使用者。同樣地,系統可為不同裝置類型支援不同的品質等級。例如,相較於高端VR HMD,AR眼鏡具有更高的壓縮/不同的品質。
因此,在一範例中,前述配置可針對諸如5G之類網路上的多個使用者提供進階頻寬控制。在一範例中,該系統可通過使用VR/MR系統中的可用資訊,並指定目標平均頻寬給每個播放器的各個編碼器,以維持每一使用者的品質。不同的優先順序可分配給不同的使用者,並因此調整頻寬及/或壓縮。在一範例中,此允許系統在已知可用網路頻寬的情況下,嘗試提供相似的視覺品質等級給每種類型的使用者。
在本說明書和文後申請專利範圍中,除非上下文另有要求,否則用語「包含」及諸如「包括」或「含有」之類的變體將被理解為暗示包括所述一整數或多個群組或步驟的群組,但不排除任何其他整數或多個整數的群組。如本說明書的使用並且除非另有說明,否則術語「約」表示±20%。
熟習該項技藝者將明白,許多變化和修改將變得更顯然。熟習該項技藝者應明白所有這些變化和修改,且應廣泛在前述本發明的精神和範疇內。
102:顯示系統 131,431:輸入緩衝區 132,432,930,1430:解碼器 140,440,940,1440:顯示裝置 141,441:顯示控制器 145,445,1445:顯示器 146,446,1446:顯示緩衝區 301:電子處理裝置 302:顯示裝置 360,960,1460:網路 410,910,1010,1110,1410:內容引擎 420,920,1020,1120,1430:編碼器 433:介面 811:處理器 950,1150,1450:控制器 1001:硬體伺服器 1101:邊緣伺服器 1160:通訊網路 1161:無線電天線節點 1400:設備 1411,1441,1451:微處理器 1412,1442,1452:記憶體 1413,1443,1453:輸入/輸出裝置 1414,1454:外部介面 1415,1447,1455:匯流排 1421:編碼器輸入緩衝區 1422:編碼器處理裝置 1423:編碼器輸出緩衝區 1424,1434:收發器 1425,1435:資料緩衝區 1431:解碼器輸入緩衝區 1432:解碼器處理裝置 1433:介面 1444,1445:感測器 1701:欄 1702:第二欄 1703:第三欄 1801,1802:影像區域
現將參考附圖說明本發明的各種範例和具體實施例,其中:
第一圖為顯示系統範例的示意圖;
第二圖為控制第一圖中顯示系統的方法範例流程圖;
第三圖為一簡化通訊網路環境範例的示意圖;
第四圖為第三圖中該通訊網路環境內所使用的顯示系統範例之示意圖;
第五圖為控制第四圖中顯示系統的方法範例流程圖;
第六圖為設定刷新間隔的方法範例流程圖;
第七A圖為例示使用靜態影格率的顯示處理之第一範例之示意圖;
第七B圖為例示使用動態影格率的顯示處理之第一範例之示意圖;
第七C圖為例示使用靜態影格率的顯示處理之第二範例之示意圖;
第七D圖為例示使用動態影格率的顯示處理之第二範例之示意圖;
第七E圖為例示使用動態影格率的顯示處理之第三範例之示意圖;
第八圖為用於控制內容壓縮以經由一通訊網路傳輸的方法範例流程圖;
第九圖為用於控制內容壓縮以經由一通訊網路傳輸的系統功能性範例之示意圖;
第十圖為用於控制內容壓縮以經由一通訊網路傳輸的伺服器組態範例之示意圖;
第十一圖為用於控制內容壓縮以經由一通訊網路傳輸的功能組態範例之示意圖;
第十二圖為用於控制內容壓縮以經由一通訊網路傳輸的方法範例流程圖;
第十三A圖和第十三B圖為用於壓縮及後續解壓縮影像資料的一方法範例流程圖;
第十四圖為用於壓縮與解壓縮影像資料的一虛擬實境系統合併設備之特定範例示意圖;
第十五A圖和第十五B圖為用於壓縮及後續解壓縮影像資料的一方法之進一步範例流程圖;
第十六A圖至第十六D圖為用於壓縮及後續解壓縮影像資料的一方法之進一步特定範例流程圖;
第十七圖為係數矩陣範例的示意圖;
第十七B圖為第十七A圖中係數矩陣的遍歷路徑範例之示意圖;
第十七C圖為第十七A圖中係數矩陣的一索引之位元結構範例之示意圖;
第十八A圖為一已壓縮影像的範例;
第十八B圖為例示用於第十八A圖中該影像壓縮的一整體壓縮率之圖式;
第十八C圖和第十八D圖為例示用於第十八A圖中該影像的像素區塊壓縮之一選定位元編碼方案及對應壓縮率的圖式;
第十八E圖和第十八F圖為例示用於第十八A圖的該影像第一位置的像素區塊壓縮之一選定位元編碼方案及對應壓縮率的圖式;及
第十八G圖和第十八H圖為例示用於第十八A圖上該影像第二位置的像素區塊壓縮之一選定位元編碼方案及對應壓縮率的圖式。
S200~S230:步驟

Claims (43)

  1. 一種用於顯示內容的系統,該系統包括: a)     一顯示裝置,其包括: i)                     一顯示緩衝區,其配置成儲存影像資料;及 ii)                  一顯示器,其配置成使用該顯示緩衝區中儲存的影像資料來顯示一影像; b)    一輸入緩衝區,其配置成逐步: i)                     接收已編碼影像資料部分的串流,每一已編碼影像資料部分定義表示一相對影像部分的影像資料部分;及 ii)                  儲存每一已編碼影像資料部分; c)     一解碼器,其配置成逐步: i)                     解碼每一已編碼影像資料部分,以產生一相對影像資料部分;及 ii)                  將每一影像資料部分寫入該顯示緩衝區,以在該顯示緩衝區中逐步建構影像資料;及 d)    一顯示控制器,其配置成使該顯示器根據儲存在該顯示緩衝區中的影像資料顯示一影像,以動態調整顯示影像的影格率。
  2. 如請求項1之系統,其中該解碼器配置成實質上一旦接收到每個已編碼影像資料部分則對其進行解碼。
  3. 如請求項1或2之系統,其中該輸入緩衝區配置成通過覆寫先前的已編碼影像資料部分以儲存每一已編碼影像資料部分。
  4. 如請求項1至3任一項之系統,其中該系統包括一介面,並且其中該影像資料部分經由該介面寫入該顯示緩衝區。
  5. 一種如請求項4之系統,其中該介面為以下至少一者: a)     一序列介面; b)    一行動產業處理器介面(MIPI); c)     一MIPI相機序列介面(MIPI-CSI);及 d)    一MIPI顯示器序列介面(MIPI-DSI)。
  6. 一種如請求項4或5之系統,其中該介面配置成一旦該影像資料部分已解碼,則採用爆發模式操作以將每一影像資料部分寫入該顯示緩衝區。
  7. 如請求項4至6任一項之系統,其中該介面配置成將影像資料部分寫入該顯示緩衝區,以覆寫先前影像對應部分的影像資料部分。
  8. 如請求項1至7任一項之系統,其中該系統配置成動態調整顯示影格率,以調適接收已編碼影像資料部分的時序之變化。
  9. 如請求項1至8任一項之系統,其中該顯示控制器配置成實質上一旦該顯示緩衝區儲存整個影像的影像資料部分,使該顯示器顯示一影像。
  10. 如請求項1至9任一項之系統,其中該顯示控制器配置成動態調整該影格率,以實現一目標影格率。
  11. 如請求項1至10任一項之系統,其中該顯示控制器配置成藉由調整以下至少一者,以動態調整該影格率: a)     一刷新間隔,其表示連續影像顯示之間所期望持續時間;及 b)    一目標影格率。
  12. 如請求項1至11任一項之系統,其中該顯示控制器配置成: a)     決定一表示連續影像顯示之間所期望持續時間的刷新間隔;及 b)    使該顯示器根據該刷新間隔顯示一影像。
  13. 如請求項12之系統,其中該顯示控制器配置成實質上一旦該顯示緩衝區儲存對應至整個影像的影像資料部分並且經過該刷新間隔,使該顯示器顯示一影像。
  14. 如請求項11至13任一者之系統,其中該顯示控制器配置成根據一目前影格率和一目標影格率以計算該刷新間隔。
  15. 如請求項14之系統,其中該顯示控制器配置成使用平均影格率以計算該目前影格率,以顯示多個先前影像。
  16. 如請求項11至15任一項之系統,其中: a)     若該目前影格率大於該目標影格率,則根據該目標影格率將該刷新間隔設定為一目標間隔;及 b)    若該目前影格率低於該目標影格率,則將該刷新間隔設定為低於該目標間隔。
  17. 如請求項1至16任一項之系統,其中該顯示控制器配置成: a)     決定一表示連續影像顯示之間的最大持續時間的臨界間隔;及 b)    使該顯示器根據該臨界間隔顯示一影像。
  18. 如請求項17之系統,其中該顯示控制器配置成實質上一旦在該臨界間隔結束時,使該顯示器顯示一影像,其中該顯示器基於儲存在該顯示緩衝區中的影像資料來顯示該影像,並且其中該顯示緩衝區儲存來自先前影像的至少一些影像資料部分。
  19. 如請求項1至18任一項之系統,其中該顯示控制器配置成: a)     監控一經過時間,該經過時間是從顯示前一影像以來的時間; b)    若該經過時間小於該刷新間隔,則等待該刷新間隔結束; c)     若該經過時間大於該刷新間隔但小於該臨界間隔,並且該顯示緩衝區儲存對應於整個影像的影像資料部分,則使該顯示器顯示該影像;及 d)    若該經過時間達到該臨界間隔,則使該顯示器基於顯示緩衝區中的目前影像資料來顯示一影像。
  20. 如請求項1至19任一項之系統,其中從與內容引擎相關聯的一編碼器接收該已編碼資料部分。
  21. 如請求項20之系統,其中經由一通訊網路接收該已編碼資料部分。
  22. 如請求項21之系統,其中該顯示控制器配置成動態調整該影格率,以調適通訊網路延遲。
  23. 如請求項20至22任一項之系統,其中: a)       該顯示控制器配置成向該編碼器提供一表示以下至少一者的顯示裝置度量: i)                       一顯示裝置目前影格率;及 ii)                    一顯示裝置刷新間隔;及 b)      該編碼器配置成以下至少一者: i)                       使一內容引擎根據該顯示裝置度量產生內容;及 ii)                    根據該顯示裝置度量以產生已編碼影像資料。
  24. 一種如請求項1至23任一項之系統,其中該顯示控制器配置成基於以下至少一者,以動態調整該影格率: a)     來自一編碼器的指令; b)    一目標頻寬; c)     一目標壓縮; d)    一實際壓縮; e)     表示通訊網路效能的一或多個網路度量;及 f)      表示與每一使用者相關聯的內容顯示需求之一或多個使用者度量。
  25. 如請求項1至24任一項之系統,其中系統包括一或多個處理裝置,其配置成: a)     獲取一或多個表示通訊網路效能的網路度量; b)    獲取該等複數個使用者之每一使用者的一或多個使用者度量,該等一或多個使用者度量表示有關每一使用者相關聯的內容顯示需求; c)     至少部分基於該網路度量和該等使用者度量,以動態計算該等複數個使用者之每一使用者的一目標壓縮; d)    使每一使用者的內容根據該使用者的目標壓縮進行壓縮。
  26. 如請求項25之系統,其中該等一或多個處理裝置配置成至少部分基於用於將內容傳輸給所有使用者的一可用網路頻寬,以計算該目標壓縮。
  27. 如請求項25或26之系統,其中該等一或多個處理裝置配置成: a)     使用至少一網路度量,決定一可用的網路頻寬;及 b)    使用至少一使用者度量,計算用於該等複數個使用者中之每一者的一目標頻寬。
  28. 如請求項27之系統,其中該等一或多個處理裝置配置成使用該目標頻寬及以下至少一者以計算每個使用者的該目標壓縮: a)     使用者度量; b)    一目標品質;及 c)     一內容大小。
  29. 如請求項27或28之系統,其中該網路包括複數個節點,並且其中該等一或多個處理裝置配置成動態計算每一節點上的該等複數個使用者之每一者的一目標壓縮。
  30. 如請求項25至29任一項之系統,其中該等一或多個處理裝置配置成使用以下至少一者以計算該等複數個使用者之每一使用者的該目標頻寬和一目標品質之至少一者: a)     網路度量; b)    使用者組態度量; c)     內容度量; d)    顯示裝置組態度量;及 e)     顯示裝置狀態度量。
  31. 如請求項25至30任一項之系統,其中該等一或多個處理裝置配置成使用以下一項或多項以計算該目標壓縮: a)     一目標頻寬; b)    一目標品質;及 c)     顯示度量。
  32. 如請求項25至31任一項之系統,其中該等一或多個處理裝置配置成從以下至少一者以決定該等使用者度量: a)     提供使用者組態度量的一服務供應商; b)    提供使用者組態度量的一使用者; c)     提供以下至少一者的一顯示裝置: i)                     顯示裝置組態度量;及 ii)                  顯示度量;及 d)    配置成產生內容給該使用者的一內容引擎,該內容引擎提供內容度量。
  33. 如請求項25至32任一項之系統,其中該等一或多個處理裝置包括: a)     一網路控制器,其配置成計算每一使用者的目標頻寬和目標品質之至少一者;及 b)    複數個編碼器,每一編碼器與產生內容給相對使用者的一內容引擎相關聯,其中該等編碼器配置成計算該相對使用者的該目標壓縮。
  34. 如請求項33之系統,其中每一編碼器配置成: a)     接收顯示裝置狀態度量; b)    將該顯示裝置狀態度量傳送至該內容引擎,以允許內容引擎產生該內容; c)     使用至少該顯示裝置狀態度量及該目標頻寬和一目標品質之至少一者,以計算該目標壓縮; d)    接收來自該內容引擎的該內容;及 e)     根據該目標壓縮以編碼該內容。
  35. 如請求項25至34任一項之系統,其中該等一或多個處理裝置配置成從以下至少一者以計算一目標頻寬: a)     實質上即時; b)    每秒; c)     每影像; d)    每11ms; e)     每秒數百次;及 f)      每影像數百次。
  36. 如請求項25至35任一項之系統,其中該等一或多個處理裝置配置成從以下至少一者以計算該目前目標壓縮: a)     實質上即時; b)    對於該內容內的複數個影像之每一者; c)     對於該內容內的複數個影像之每一者的多個不同部分之每一者; d)    對於該內容內的複數個影像之每一者內的多個不同像素陣列;及 e)     每影像數百次。
  37. 如請求項25至36任一項之系統,其中該等一或多個處理裝置配置成: a)     根據一目標壓縮和目標頻寬之至少一者以選擇一目標影格率;及 b)    使內容根據該影格率,以至少被產生和壓縮的其中之一者。
  38. 如請求項25至37任一項之系統,其中該等一或多個處理裝置配置成: a)     根據該目標壓縮選擇一壓縮方案;及 b)    使用該選定壓縮方案壓縮該內容。
  39. 如請求項25至38任一項之系統,其中該等一或多個處理裝置配置成從以下方式在該內容之內執行影像的壓縮: a)     從影像資料獲得像素資料,該像素料資料表示該等一或多個影像內的一像素陣列; b)    對該像素資料套用一轉變,以決定表示該像素陣列的頻率係數之一組頻率係數; c)     編碼該組頻率係數的一選定子集,該子集選定以優先編碼具有較高振幅的頻率係數;及 d)    產生一表示該已編碼頻率係數的索引;及 e)     使用該已編碼的頻率係數和該索引以產生已壓縮影像資料。
  40. 如請求項25至39任一項之系統,其中該網路度量包括以下任一項或多項: a)     目前網路負載; b)    一網路頻寬; c)     一網路延遲; d)    至少一網路錯誤度量; e)     一使用者服務品質;及 f)      一網路服務品質。
  41. 一種如請求項24至40任一項之系統,其中該網路度量係針對網路的不同部分來定義,並且其中該等一或多個處理裝置配置成決定以下至少一者的目標壓縮: a)     用於網路的每一部分; b)    用於每一使用者; c)     用於網路之每一部分上的每一使用者;及 d)    獨立用於網路的每一部分。
  42. 如請求項24至41任一項之系統,其中該等使用者度量包括以下任一項或多項: a)     表示使用者組態度量: i)                     一使用者類型; ii)                  一使用者優先權限;及 iii)               一使用者目標品質; b)    表示內容度量: i)                     一內容類型; ii)                  一影像不同部分的內容; iii)               一影像不同部分的不透明度; iv)                一影像內的興趣區域; v)                  一影像內的興趣位置; vi)                有關一影像的一或多個提示;及 vii)             一影像內的一或多個顯示物件; c)     表示以下至少一者的顯示裝置組態度量: i)                     一顯示裝置類型; ii)                  一顯示裝置影格率; iii)               一顯示裝置移動; iv)                一顯示裝置視野;及 v)                  顯示裝置鏡頭屬性;及 d)    表示以下至少一者的顯示裝置狀態度量: i)                     一顯示裝置目前影格率; ii)                  一顯示裝置刷新時間間隔; iii)               相對於該環境的一顯示裝置姿勢; iv)                相對於該環境的一顯示裝置移動; v)                  相對於該環境的一顯示裝置加速; vi)                一使用者提供的輸入命令; vii)             一使用者凝視;及 viii)           該使用者的生理屬性。
  43. 一種使用顯示裝置來顯示內容之方法,該裝置包括: a)       一顯示緩衝區,其配置成儲存影像資料;及 b)      一顯示器,其配置成使用該顯示緩衝區中儲存的影像資料來顯示一影像,其中該方法包括: i)                     在一輸入緩衝區中,逐步: (1)      接收已編碼影像資料部分的串流,每一已編碼影像資料部分定義一表示相對影像部分的影像資料部分;及 (2)      儲存每一已編碼影像資料部分; ii)                  在一解碼器中,逐步: (1)      解碼每一已編碼影像資料部分,以產生一相對影像資料部分;及 (2)      將每一影像資料部分寫入該顯示緩衝區,以在該顯示緩衝區中逐步建構影像資料;及 iii)               在一顯示控制器中,使該顯示器根據儲存在該顯示緩衝區中的影像資料顯示一影像,以動態調整顯示影像的影格率。
TW110108737A 2019-10-18 2021-03-11 內容顯示處理 TW202218421A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201962923145P 2019-10-18 2019-10-18
PCT/AU2020/051115 WO2021072500A1 (en) 2019-10-18 2020-10-16 Content display process
WOPCT/AU2020/051115 2020-10-16

Publications (1)

Publication Number Publication Date
TW202218421A true TW202218421A (zh) 2022-05-01

Family

ID=75537389

Family Applications (1)

Application Number Title Priority Date Filing Date
TW110108737A TW202218421A (zh) 2019-10-18 2021-03-11 內容顯示處理

Country Status (5)

Country Link
US (1) US20230395041A1 (zh)
EP (1) EP4229467A1 (zh)
AU (1) AU2020368424A1 (zh)
TW (1) TW202218421A (zh)
WO (1) WO2021072500A1 (zh)

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7692642B2 (en) * 2004-12-30 2010-04-06 Intel Corporation Method and apparatus for controlling display refresh
US20080055318A1 (en) * 2006-08-31 2008-03-06 Glen David I J Dynamic frame rate adjustment
US8897365B2 (en) * 2008-11-19 2014-11-25 Nvidia Corporation Video rate control processor for a video encoding process
US9811874B2 (en) * 2012-12-31 2017-11-07 Nvidia Corporation Frame times by dynamically adjusting frame buffer resolution
US10510317B2 (en) * 2016-06-03 2019-12-17 Apple Inc. Controlling display performance with target presentation times
CN116456097A (zh) * 2017-04-28 2023-07-18 苹果公司 视频流水线
WO2019100108A1 (en) * 2017-11-21 2019-05-31 Immersive Robotics Pty Ltd Image compression for digital reality

Also Published As

Publication number Publication date
EP4229467A1 (en) 2023-08-23
AU2020368424A1 (en) 2023-07-06
WO2021072500A1 (en) 2021-04-22
US20230395041A1 (en) 2023-12-07

Similar Documents

Publication Publication Date Title
AU2018373495B2 (en) Frequency component selection for image compression
US11151749B2 (en) Image compression method and apparatus
AU2018280337B2 (en) Digital content stream compression
AU2019253866B2 (en) Image compression method and apparatus
CN112655210A (zh) 使用多区段重采样的快速目标区域编码
US20230099405A1 (en) Image data transfer apparatus, image display system, and image data transfer method
TW202218424A (zh) 用於網路傳輸的內容壓縮
TW202218421A (zh) 內容顯示處理
GB2606502A (en) Encoding and transmission of display data
EP1841237A1 (en) Method and apparatus for video encoding
WO2021193362A1 (ja) 画像処理装置および画像処理方法