TW521526B - Method and apparatus for video decoding on a multiprocessor system - Google Patents

Method and apparatus for video decoding on a multiprocessor system Download PDF

Info

Publication number
TW521526B
TW521526B TW089127730A TW89127730A TW521526B TW 521526 B TW521526 B TW 521526B TW 089127730 A TW089127730 A TW 089127730A TW 89127730 A TW89127730 A TW 89127730A TW 521526 B TW521526 B TW 521526B
Authority
TW
Taiwan
Prior art keywords
processor
patent application
item
video
decoding
Prior art date
Application number
TW089127730A
Other languages
English (en)
Inventor
Boon-Lock Yeo
Valery Kuriakin
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Application granted granted Critical
Publication of TW521526B publication Critical patent/TW521526B/zh

Links

Classifications

    • 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/436Methods 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 using parallelised computational arrangements
    • 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
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Image Processing (AREA)
  • Reverberation, Karaoke And Other Acoustics (AREA)

Description

521526
521526 五、發明說明(2) 圖像具有一或多個獨立元素。經由分享記憶體處理器群組 中之第一處理器,至少指定一個獨立元素給每個處理器, 以便經由平行的處理器解碼;以及解碼平行的視訊流之獨 立元素。 圖表簡要描述 圖1為Μ P E G位元流中之階層關係圖。 圖2為根據具體實施例之編碼與解碼視訊資料之方塊 圖。 圖3為圖像切片架構之方塊圖。 - 圖4為根據具體實施例,描述使用平行多處理器解碼視 訊資料步驟之流程圖。 圖5為根據具體實施例,具有使用已儲存架構之電腦可 讀媒體之多處理器電腦系統圖。 詳細描述 揭露在多處理器系統中用以解碼壓縮視訊之方法及裝 置,在下列描述中,為了解釋之緣故,特定的命名是為了 提供對本發明完全的瞭解。然而很明顯的是,對於熟悉本 技藝之人士而言,為了實行本發明這些特定的細節並非是 必須的。例如,雖然下列所討論之具體實施例描述用來解 碼視訊貢料之本發明’乃根據Μ P E G標準編碼視訊貢料,另 一方面在不違反本發明之下,視訊編碼/解碼標準便能使 用。 MPEG解碼 在正常形式中,MPEG系統流由兩層組成:系統層包括時
521526 五、發明說明(3) 間及其他用來解構聲音和視訊流,以及在播放期間同步化 聲音和視訊之資訊;以及包括聲音和視訊資料流之壓縮 層。 在mpeg位元流中階層之具體實施例說明於下列順序之 中,如圖1所示:序列、圖像群組(G 〇p )、圖像切片、巨集 方塊以及方塊。以獨特的、稱之為起始碼之位元—直線 排列碼標示著視訊流每個不同的部分。這些起始碼用來辨 別視訊流的某些部分,以及對視訊流作隨機存取。 rrnt層、Γ I取:水準層為序列層。序列是由圖像群組- ί ί,每張圖像群組是—些相鄰圖像的群組,建立 廷樣可視為同一的群组夕η & 心 # y 4 、、之目的為,提供對視訊流一個隨機 存,點,以執行控制功能(快轉、回轉等等)。 二::個圖像群組中有許多的圖像,棚g_2中支援交 ‘ ΐ二:::)張:像符合原始視訊流中之圖框(連續 或Λ域(交錯式視訊流)。 段。切片勺二、U 每個切片決定圖像中排之片 16x16 * -ψΜ ί 的巨集方塊,在具體實施例中為 丄ox 1 b 1素群組,此群組句 ^ 度與色控資料。 解馬圖像中畫素所用之照 巨集方塊分割為方塊,在呈體每 素群組,此群組進—步描述二知例中之方塊為8x8-晝 方塊為資料基本單元!群組中之照度與色控。 集方塊與方塊並未具有與其;接=里處理編碼視訊流。巨 是在解碼時暗中發現的。 起始碼,它們的分界線 第7頁 521526 五、發明說明(4) 編石馬 如上所述,方塊為資料處理基本單元。如圖2所示,在 視訊序列中之資料方塊之具體實施例中,編碼器典型上執 行下列五步驟以產生編碼方塊;動態預測、不連續COS角 轉換(D C T)、量化、長度運轉、霍夫曼碼法。 在第一階段動態預測中,編碼器試著利用圖像中暫時多 餘的圖像。編碼器的下四個階段利用在壓縮視訊序列中之 空間相互關係,在視訊序列中之所有方塊上執行這五個編 碼階段之結果,為MPEG編碼視訊流。視訊流曾經可能被編 碼,然後在傳送媒體上傳送以及/或是依照需求而儲存。 然而,在每次瀏覽視訊流時,解碼是象徵上必須的。 解碼 用於MPEG編碼視訊流之解碼程序典型上反向執行這五個 編碼階段。首先,霍夫曼碼法與長度運轉解碼應用於產生 量化方塊。執行反轉的量化以獲得方塊頻率光譜,從這裡 可得到反轉的不連續COS角轉換,然後,假如有需要的 話,從預測錯誤、動態向量以及參考圖像使用動態補償以 產生最後的巨集方塊資料。 在編碼與解碼程序中最大的不同為,在前者中當於參考 圖像中搜尋最相似的巨集方塊時,花費較多的時間於動態 預測,另一方面在後者中,動態向量已經是有效的,此向 量可使得動態補償比動態預測更為便宜。 具有平行多處理裔之解碼視訊貧料 為了增加解碼MPEG視訊資料之速度,以便提供視訊資料
521526 五、發明說明(5) 更多的應用,在單一系統中之多處理器之間具體實施例提 供平行解碼視訊資料,以及分享記憶體。特別的是,在具 體實施例之中,於切片週期時解碼視訊資料之工作量在處 理器之間分配。於另一具體實施例中,在不違反本發明之 下,解碼視訊資料之工作量可在非切片週期之其他週期 裡在處理器之間分配。 特別的是,一如標準所定義,Μ P E G中之切片是一連串圖 像之列中巨集方塊之隨機數字。圖3圖示一標準的切片架 構,每一個切片至少包括一個巨集方塊,而且連續的切另 並不會重複。切片在位元流中以它們所遭遇的順序產生, 在圖像的左上角開始,並以粗略掃描方式從左到右及上到 下進行。然而從圖像到圖像,切片並不需要保持相同的架 構:可能會有不同的切片數以及/或是不同的切片大小。 圖4為根據具體實施例,描述在平行多處理器間解碼視 訊資料步驟之流程圖。在步驟4 0 2中,第一處理器執行第 一個程序,從磁碟或其他壓縮視訊來源掃描/讀取視訊序 列到記憶體裡。 在步驟4 0 4中,第一處理器進一步讀取視訊序列辨識切 片起始碼,以便辨識出在視訊序列中切片之起點。在步驟 406中,第一處理器進一步讀取在每個切片中之巨集方 塊,以便預測出解碼相對切片之工作量。 在步驟408中,第一處理器對包含在系統中處理器群組 中之每個處理器指定一或多個切片解碼。在具體實施例之 中,以一個順序指定切片給不同的處理器,以便在處理器
521526 五、發明說明(6) 之間公平地分配工 — 巨集方塊,將可处# = 例如’假如第一個切 >;包括許多 片將指定給第—=化。費更多的時間解碼。因此,較多的切 費更多的時間艇 °°角午碼’因為至少一個切片可能將花 方塊,因此更夕^奴後相鄰的切片可能包括更少的巨集 切片之第三處;哭=二將,定給具有包含較少巨集方塊之 器將接收切Η 4杰解碼。最後,具體實施例中之每個處理 在步驟41〇中目對第的_工作^以解碼。 後指定切片舍你々^ 一处理器寫入共享記憶體,第一和最 片。例如,二士 Γ固處理器的位置變數,提供用來解瑪-切 將解碼切片4二'〜一處理器將解碼切片卜3,第三處理器 相對的處理器y四處理器將解碼切片9- 12,針對每個 相對於在共同可^ ^寫=至記憶體中以當作位置變數。 針對每個相對的产=哭=切片序列中提供切片而言, 定切片之優點二識切片以當作位置變數而指 時,避免處理器之間發生衝^便辨識即將解碼之切片 例如在使用切片序列案例中,一曰 片,便將返回序列中以便、> $ π —處理為元成解碼切 斤α τ μ 1更决疋下一個即將 ^之外I處理器將增加辨識下一個即將解碼之切片之^示 標,所以下一次處理器存取序列時將接收到即將曰 鄰切片。此外,序列也將屢次公正地被存取。因此在相 序列之處理器間發生之衝突也將很頻繁,然而針對 對的處理器經由指定即將解碼切片以當作位置變數,=, 取記憶體之處理器間發生之衝突將大大地減少。 在存
第10頁 521526 五、發明說明(7) 在步驟412 t,相對處理器讀取其相對的位 乂 便決定將解碼哪個切片,並且從記憶體讀取切片以數以 上述解碼程序解碼切片。在具體實施例之中,指定即將 碼切片之處理裔也指定其自身,一或多個即將解碼之切 片,其中處理器因此能與其他處理器進行解碼。此外在具 體實施例中,相對的處理器經由執行儲存於記憶體中之軟 體常式,與提供上述執行解碼之步驟(例如霍夫曼碼法、人 長度運轉),以便執行解碼切片之步驟。 & 〆 之後第一處理器繼續於視訊資料中掃描/讀取,並浐— 才目鄰的切片、給處理器以便針對想要的肖定量之即將解曰疋 ^讯解碼。此外如上所述,經由分配多處理器間之工作 里’解碼視訊資料之方法可即時執行。 理口5圖示出根據具體實施例’可解碼多切片之平行多處 厂糸統。如圖所示,系統包括共享記憶體之多處理哭 不k Λ稱Λ多處理器架構)。在另一具體實施例之中:在 發明之下’多處理器可存取獨立個別記憶體 F共旱同一記憶體。 多1卜’ ί圖5中之系統記憶體所* ’如上所述經由一或 使用^ ΐ器i可提供一組即將執行之電腦指令給透過平行 之夕处理器邏輯單元而執行解碼視訊資料之方法。除此 存於」ΐ行解碼視訊資料步驟之邏輯單元也將提供於/儲 器)、。。己憶體之中,以當作一組電腦指令(例如mpeg解碼 蜮可二上:脚述’執行此方法之指令也能夠以其他電腦/機 項某體之形式儲存,包括磁帶與光碟等。例如,本
第11頁 521526 五、發明說明(8) 發明之方法可儲存於電腦/機械可讀取媒體,像是磁帶或 光碟等,經由磁碟裝置(或是電腦可讀取媒體裝置)這些都 是可存取的,如同圖5中所示之磁碟裝置。
另一方面,執行包括經由平行多處理器解碼視訊資料 之方法等如上所述之邏輯單元,可在其他的電腦以及/或 是機械可讀取媒體,例如巨積整合電路(LS Γ s )、特定應 用整合電路(ASIC’ s)、電子式可消除程式化唯讀記憶體 (EEPROM’ s),以及電子式、光學式、聲波式或其他傳導信 號(載波、紅外線信號、數位信號等)形式之不連續硬體_元 件。 、
第12頁 521526 圖式簡單說明
第13頁

Claims (1)

  1. 521526 修正 案號 89127730 六、申請專利範圍 1 · 一種用以解碼壓縮視—ϋϋ,包括: 讀取壓縮視訊流至記憶體之中,該視訊具有許多圖 像,每張圖像具有一或多個獨立元素; 經由共享記憶體之處理器群組中之第一處理器,指定 每一個處理器至少一個即將由平行處理器解碼之獨立元 素;以及 平行解碼視訊之獨立元素。 其中獨立元素包括切 其中指定獨立元素包 其中指定獨立元素包 其中指定獨立元素包 2 .如申請專利範圍第1項之方法 片。 3. 如申請專利範圍第2項之方法 括指定一切片變數給每個處理器。 4. 如申請專利範圍第3項之方法 括指定相符的工作量給處理器。 5. 如申請專利範圍第4項之方法 括放置於記憶體中以當作每個處理器之位置變數,將解碼 之切片經由相對處理器解碼。 6. 如申請專利範圍第5項之方法,其中每個切片至少包 括一巨集方塊。 7. 如申請專利範圍第6項之方法,其中該視訊以MPEG編 碼〇 8. 如申請專利範圍第7項之方法,其中該解碼方法是以 即時方式執行。 9. 一種電腦可讀取媒體,其具有當處理器執行時,用以 解碼壓縮視訊使得處理器執行一方法之儲存指令集包括:
    O:\67\67774-910717.ptc 第14頁 521526 案號 89127730 B 修正 六、申請專利範圍 讀取壓縮視訊流至記憶體中,該視訊具有多張圖像 每張圖像具有一或多個獨立元素; 經由分享該記憶體之處理器群組中之第一處理器,為 每個處理器指定至少一個獨立元素,以便於平行處理器解 碼;以及 平行解碼視訊之獨立元素。 10. 如申請專利範圍第9項之電腦可讀取媒體,其中獨立 元素包括切片。 11. 如申請專利範圍第1 0項之電腦可讀取媒體,其中指 定獨立元素包括指定切片變數給獨立的處理器。 1 2.如申請專利範圍第11項之電腦可讀取媒體,其中指 定獨立元素包括指定相符的工作量給處理器。 1 3.如申請專利範圍第1 2項之電腦可讀取媒體,其中指 定獨立元素包括放置於記憶體中以當作每個處理器之位置 變數,將解碼之切片經由相對處理器解碼。 14.如申請專利範圍第13項之電腦可讀取媒體,其中每 個切片至少包括一個巨集方塊。 1 5.如申請專利範圍第1 4項之電腦可讀取媒體,其中視 訊是以Μ P E G標準編碼。 1 6.如申請專利範圍第1 5項之電腦可讀取媒體,其中該 解碼方法是以即時方式執行。 1 7. —種電腦系統,包括: 多個處理器; 連接至多個處理器之記憶體;
    O:\67\67774-910717.ptc 第15頁 ίΕ /彿)^月7
    521526 修正 案號 89127730 六、申請專利範圍 讀取壓縮視訊流至記憶體中之第一邏輯單元,該視訊 具有多張圖像,每張圖像具有一或多個獨立元素;以及 經由分享該記憶體之處理器群組中之第一處理器,第 一邏輯單元為每個處理器進一步指定至少一個獨立元素, 以便於平行處理器解碼。 其中獨立元素 其中第一邏輯 其中第一邏輯 其中第一邏輯 二位置變數,4 其中每個切片 其中視訊是以 其中電腦系統 1 8.如申請專利範圍第1 7項之電腦系統 包括切片。 1 9.如申請專利範圍第1 8項之電腦系統 單元指定切片之變數給每個處理器。 2 0.如申請專利範圍第1 9項之電腦系統 單元指定相符之工作量給處理器。 2 1 .如申請專利範圍第2 0項之電腦系統 單元放置於記憶體中,以當作每個處理器之位置變數,切 片將經由相對處理器解碼。 2 2 .如申請專利範圍第2 1項之電腦系統 至少包括一個巨集方塊。 2 3 .如申請專利範圍第2 2項之電腦系統 MPEG標準編碼。 2 4 .如申請專利範圍第2 3項之電腦系統 以即時方式解瑪該視訊。 Φ
    0:八67\67774-910717.ptc 第16頁
TW089127730A 1999-12-22 2000-12-30 Method and apparatus for video decoding on a multiprocessor system TW521526B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US09/470,299 US7227589B1 (en) 1999-12-22 1999-12-22 Method and apparatus for video decoding on a multiprocessor system

Publications (1)

Publication Number Publication Date
TW521526B true TW521526B (en) 2003-02-21

Family

ID=23867036

Family Applications (1)

Application Number Title Priority Date Filing Date
TW089127730A TW521526B (en) 1999-12-22 2000-12-30 Method and apparatus for video decoding on a multiprocessor system

Country Status (8)

Country Link
US (1) US7227589B1 (zh)
EP (1) EP1245119B1 (zh)
AT (1) ATE335363T1 (zh)
AU (1) AU2724901A (zh)
DE (1) DE60029828T2 (zh)
HK (1) HK1046799B (zh)
TW (1) TW521526B (zh)
WO (1) WO2001047284A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9621905B2 (en) 2012-06-29 2017-04-11 Qualcomm Incorporated Tiles and wavefront parallel processing

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100362868C (zh) * 2001-07-04 2008-01-16 矽统科技股份有限公司 分散式视频数据流解码系统与方法
US8401084B2 (en) * 2002-04-01 2013-03-19 Broadcom Corporation System and method for multi-row decoding of video with dependent rows
US7412703B2 (en) * 2002-09-19 2008-08-12 Sedna Patent Services, Llc Low cost, highly accurate video server bit-rate compensation
EP2395757A1 (en) * 2006-05-24 2011-12-14 Panasonic Corporation Image decoding device
GB0617758D0 (en) * 2006-09-08 2006-10-18 Taylor Nelson Sofres Plc Highly distributed audio/video conversion
US20090010326A1 (en) * 2007-07-05 2009-01-08 Andreas Rossholm Method and apparatus for parallel video decoding
US8665996B2 (en) * 2008-04-01 2014-03-04 Qualcomm Incorporated Efficient parallel sub-packet decoding using multiple decoders
US8311111B2 (en) * 2008-09-11 2012-11-13 Google Inc. System and method for decoding using parallel processing
US8611435B2 (en) * 2008-12-22 2013-12-17 Qualcomm, Incorporated Combined scheme for interpolation filtering, in-loop filtering and post-loop filtering in video coding
US20100246679A1 (en) * 2009-03-24 2010-09-30 Aricent Inc. Video decoding in a symmetric multiprocessor system
US8615039B2 (en) * 2009-05-21 2013-12-24 Microsoft Corporation Optimized allocation of multi-core computation for video encoding
KR101698797B1 (ko) 2010-07-27 2017-01-23 삼성전자주식회사 영상 데이터를 분할하여 부호화 및 복호화를 병렬 처리하는 장치 및 상기 장치의 동작 방법
US9100657B1 (en) 2011-12-07 2015-08-04 Google Inc. Encoding time management in parallel real-time video encoding
US11425395B2 (en) 2013-08-20 2022-08-23 Google Llc Encoding and decoding using tiling
US9794574B2 (en) 2016-01-11 2017-10-17 Google Inc. Adaptive tile data size coding for video and image compression
US10542258B2 (en) 2016-01-25 2020-01-21 Google Llc Tile copying for video compression
TWI605416B (zh) * 2016-10-25 2017-11-11 晨星半導體股份有限公司 影像處理裝置、影像處理方法及其非暫態電腦可讀取儲存媒體
WO2020072676A1 (en) * 2018-10-02 2020-04-09 Brainworks Foundry, Inc. Efficient high bandwidth shared memory architectures for parallel machine learning and ai processing of large data sets and streams
CN112637634B (zh) * 2020-12-24 2022-08-05 北京睿芯高通量科技有限公司 一种多进程共享数据的高并发视频处理方法及系统

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5212742A (en) 1991-05-24 1993-05-18 Apple Computer, Inc. Method and apparatus for encoding/decoding image data
CA2079434A1 (en) * 1991-09-30 1993-03-31 Derek Andrew Motion vector estimation, motion picture encoding and storage
US5467131A (en) * 1993-12-30 1995-11-14 Hewlett-Packard Company Method and apparatus for fast digital signal decoding
US5532744A (en) * 1994-08-22 1996-07-02 Philips Electronics North America Corporation Method and apparatus for decoding digital video using parallel processing
EP0720372A1 (en) 1994-12-30 1996-07-03 Daewoo Electronics Co., Ltd Apparatus for parallel encoding/decoding of digital video signals
DE69601599T2 (de) * 1995-06-07 1999-10-14 Ibm Videoverarbeitungseinheit mit Steuerung des Adressierungsmodus
WO1998044745A1 (en) 1997-03-31 1998-10-08 Sharp Kabushiki Kaisha Apparatus and method for simultaneous video decompression

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9621905B2 (en) 2012-06-29 2017-04-11 Qualcomm Incorporated Tiles and wavefront parallel processing

Also Published As

Publication number Publication date
ATE335363T1 (de) 2006-08-15
HK1046799A1 (en) 2003-01-24
DE60029828T2 (de) 2007-02-15
DE60029828D1 (de) 2006-09-14
WO2001047284A1 (en) 2001-06-28
EP1245119B1 (en) 2006-08-02
AU2724901A (en) 2001-07-03
EP1245119A1 (en) 2002-10-02
HK1046799B (zh) 2006-11-10
US7227589B1 (en) 2007-06-05

Similar Documents

Publication Publication Date Title
TW521526B (en) Method and apparatus for video decoding on a multiprocessor system
JP7216351B2 (ja) 点群符号化構造
US8213518B1 (en) Multi-threaded streaming data decoding
US20040258147A1 (en) Memory and array processor structure for multiple-dimensional signal processing
US20130121421A1 (en) Video decoder and method of decoding a sequence of pictures
TW200818925A (en) Image data processing apparatus, image data processing method, program for image data processing method, and recording medium recording program for image data processing method
US20080298473A1 (en) Methods for Parallel Deblocking of Macroblocks of a Compressed Media Frame
CN105554505B (zh) 应用处理器及其方法以及包括该应用处理器的系统
US20080259089A1 (en) Apparatus and method for performing motion compensation by macro block unit while decoding compressed motion picture
JP2020537393A5 (zh)
US20150043645A1 (en) Video stream partitioning to allow efficient concurrent hardware decoding
JP2002142219A (ja) ビデオデータを処理する方法及びその装置
BR112021005904A2 (pt) dispositivo e método de processamento de imagem
JP2006279574A (ja) 復号装置と方法
US10257529B2 (en) Techniques for generating wave front groups for parallel processing a video frame by a video encoder
JP2000069469A (ja) 動画像符号化方法とシステム及び動画像復号方法とシステム
CN112131423A (zh) 图片获取方法、装置及系统
Haggui et al. OpenVVC Decoder Parameterized and Interfaced Synchronous Dataflow (PiSDF) Model: Tile Based Parallelism
CN113923459B (zh) 视频的编码、解码的方法及装置、存储介质
US20240179336A1 (en) Streamed progressive decoding of heif images
TWI853577B (zh) 圖像編碼裝置、圖像解碼裝置、圖像編碼方法、圖像解碼方法
US12108062B2 (en) Video-stream format for machine analysis using NPU
JP3129279B2 (ja) 符号化装置および符号化方法、並びに記録媒体
WO2020262020A1 (ja) 情報処理装置および方法
Zheng et al. Flexible Hierarchical Parallel Processing for AVS3 Video Coding

Legal Events

Date Code Title Description
GD4A Issue of patent certificate for granted invention patent
MM4A Annulment or lapse of patent due to non-payment of fees