臺灣電信產業一直有推行二維條碼應用的障礙,主要是規格標準與支援的手機數量不多。雖然早在幾年前,廣譜行動科技就已經在臺灣推廣 Magicode,但這套來自韓國 IconLab的封閉式條碼規格,並不受到電信業者青睞。直到去年年中由 OMIA 聯合六家行動電信業者(中華電信、遠傳電信、台灣大哥大、亞太電信、威寶電信、大眾電信)、四家手機業者(明基、集嘉通訊、Nokia、Motorola)及系統整合業者(宏碁)等組成行動二維條碼聯誼會,定義出共同的行動二維條碼編碼規格,在 2006 年 1 月 23 日舉行「行動條碼GO 無線便利通記者會」後,臺灣的手機業者與電信業者才算是有行動條碼應用標準規範可以遵循。

這份規格參考了日本的條碼規格,定義了網址、撥打電話、傳送簡訊、寄送電子郵件、電話簿、通訊錄等條碼規格。同時針對國內的字碼需求,將字碼定義為使用 UTF-8,原 ISO 規格中定義的是使用 Shift JIS。同時這份規格中也提供建議的尺寸 (Module size),這個尺寸對於臺灣推廣行動條碼的初期相當重要,因為臺灣的手機相機鏡頭等級遠比日本低,通常不具備近拍功能,這造成若條碼印製太小,現行主流手機將無法讀取。所謂 Module Size 的意思是每單一黑點之尺寸,單一黑點長寬應介於 0.8mm ~ 1mm 左右。這會使條碼面積增大,但是可以讓大部分的手機可以閱讀。若是以最小的 QRCode 來講,他的長寬會有 21 個黑點(module),若以每 module size 1mm 而言,加上上下左右留下的四個 module 的空格,這樣長寬就會高達 2.9 公分。但這個尺寸會依據主流手機的汰換,而逐步下降。

目前國內開發手機專用二維條碼讀碼軟體主要有三家廠商,分別是中華電信研究所廣譜行動科技金揚資訊科技。中華電信研究所的解碼技術是由吳坤榮博士所帶領的團隊所開發,目前並未提供開放下載,主要是授權給特定廠商使用。而廣譜行動科技與金揚資訊科技原本都只支援私有的條碼規格,但在 OMIA 的規格出爐後,也都開始支援 QRCode 解讀。廣譜行動科技目前支援的有 Widnows Mobile 平台以及 Symbian 平台等,目前尚未見到內建出貨的手機。金揚資訊科技的 QuickMark 則除了 Windows Mobile 與 Symbian 平台外,已經內建上市的有 Dopod S300、iDo S601。此外還有一款屬於 Feature Phone 等級的 OKWAP A375,但是舊有的使用者必須到 OKWAP 網站自行下載新版 ROM Code 升級,才會在十二宮格上見到讀碼軟體,若近日在臺灣大哥大門市購買的款式也會是內建版本。

除了上述經營解碼軟體的廠商之外,臺灣還有一家其實是經營行動上網行銷業務的台灣奇智創庫股份有限公司,他們也在網站上提供數款 Nokia 手機 QRCode 解碼軟體下載。奇智創庫的電子報行動網路行銷電子報亦對 QRCode 的應用做了相關廣泛的報導,並專訪各大電信業者的相關業務主管,相當值得一讀。

手機業者其實也相當注意相關的發展,除了開放平台可以下載安裝之外,許多業者也已經整合開發條碼讀碼功能到手機上,接下來的幾個月會逐漸在市場上見到。雖然許多廠商都已經開發出支援 Nokia Sybmain 系列手機的讀碼器,Nokia 也還在官方網站上教授提供使用者下載使用行動條碼軟體,Nokia 的合作解碼軟體商是 Scanbuy

感興趣且持有照相手機,可以到上述網站尋找適合你的手機軟體下載。

網路上也有開放源碼的 QRCode 解碼軟體,SourceForge Japan 上有一套 GPL 的 QRCode 辨識軟體,由 Yusuke Yanbe 所開發。

作者已經將這套系統包裝成 CLDC1.1/MIDP2.0/MMAPI1.0jar 檔,檔案是 qrcodeExample/qrcode.jar,你或許不需要了解 Java 就可以解開裝上,但是作者並沒有把程式寫完,你或許可以執行並且可以在螢幕上解讀出某種資料,不過那只是辨識作者塞在 jar 中的一個測試圖檔。目前這套系統只支援 QRCode Model 2 Version 1 到 13,而且定位能力相當不足,只能辨識程式產生的完美圖檔,以相機拍攝的圖案幾乎無法辨識,所以如果想在手機上使用的話,還有許多功夫要下,不純粹是包裝成可以執行的狀態就可以用的。

如果你的手機只能執行 Java 程式 (但至少要支援 MMAPI 1.0),而又不知道怎麼把上述的程式改好可以執行的話。Vienna University of TechnologyChristoph Wimmer 在他的網站 QRDemo.com 上提供了一個調整過的版本 – QRMidlet。你也可以從他的網站取得程式碼。這個網站的主要目的是提供一些連結、圖鈴下載等展示。你也可以把訊息留在站上,取得一個條碼到處發,別人掃描條碼後即可取得你的訊息。

  • samuel

    samuel_yu#21cn#com

  • Hi, Samuel
    容您廣告。但我想您說的是商業授權轉讓吧?:-)

  • samuel

    呵呵,谢谢CHIHCHUN;
    几年前学习 2D BARCODE 的时候自己写的,通过了验证;
    看看如果有人能用得上,也好;
    商業授權;

  • 我們對QR-Code的應用非常的看好,只是在短時間有些夢想可能沒法立即實現,但還是盡可能的為未來提供更多的小像,還希望大大們多多指教,未來的世界手機一定是重要的工具,他可以當成最前端的Code Reader,再搭配豐富的後端加值系統,可以讓未來的生活更簡便….^_^

  • zyuanlee

    英文的好像比较容易encode,但是对于中文和日文,总是存在乱码问题,有解决整个字体编码方面的朋友吗?

  • zyuanlee, 亂碼一向不是問題,只要你了解如何編解碼。;-)

  • 我是大陸的。
    非常欣賞,也非常崇拜,希望有機會能交流學習,msn:[email protected]

  • stranger

    It’s quite an intersting article although the idea has been around for quite sometimes. But the primary condition for this to be “popular”, the mobile devices must have some kind of internet connection, which is quite popular in Japan. Also the “redirected” website mostly need to have a wap edition of the website for the ease of use for mobile devices. Also, it would be nice for you mention about “security issues” related to this new product. In any case, this is quite an informative site. Thanks.

  • stranger,

    Most of new handset are supporting CHTML or HTML. 🙂

    Some vendoers like Nokia is developing rich web interface on handsets. The new browser are even supporting AJAX. 😉

  • asme

    老闆提到2d bar code的產品應用,找了許多,這篇真的很有料

    省去很多事前資料的準備,真是感謝!!

    thanks.

  • gemini

    板大您好,
    小弟最近再做有關二維條碼的報告
    拜讀這篇文章後
    覺得您寫的實在很棒!!
    因此想借用您的一些資料與圖片放在報告裡頭
    希望您不介意
    萬分感謝 : )

  • 嗨, Gemini
    請依照 Attribution-NonCommercial-ShareAlike 2.5 License 條款使用內文,如引用請註明作者為 Rex Tsai 並標示網址。:-)

  • SARS

    hi Rex,

    最近QR code的應用似乎安靜下來了…觀察QR code這一年多來在台灣的發展,我看指望國內電信業者放開胸懷,共同去發展這方面的應用大概就不必了,臺灣人使用手機的經驗和習慣跟日韓的發展有很大不同,我本來是十分看好這方面的發展的,甚至一度以為QR code將發動另一次的Mobile internet revolution…看來是過度樂觀了…

    讀你的blog已經有很長的時間的SARS

  • SARS,
    其實最近 QRCode 的應用更廣泛了,以前從來都不會在報紙雜誌或看板上看到 QRCode。現在我每天搭捷運都會看到。

    只是最近特別忙,完全沒有時間更新報告目前的發展進度。有空會多貼些資料的。:D

  • BlueWhisper

    本來在向古狗大神討教embedded linux相關技術的

    爬到jollen.org 爬到OpenMoKo…

    最後結果跑到這邊不但把文章爬完還encode了自己blog的QRCode…

    只是怎麼找也找不到for Sharp WX-T81的decoder…
    (新出的WX-T82就有 哇哩咧XXX)

    如果國內只是一直推應用而沒想到user端的困擾

    終究也只是雷聲大雨點小

    回過頭來 發現embedded的未來真是光明啊!!

    套一句OpenMoKo的口號!

    Free your phone…

  • @BlueWhisper: 「如果國內只是一直推應用而沒想到user端的困擾」 這句話真是矛盾啊。你要如何推應用又不被這些用戶端的抗議干擾呢?

    套一句手機商的口號,就是「嘿,你該換新手機來使用新服務了。」

    (話說你的推論真是一點邏輯都沒呢。)

  • yuc3697

    QuickMark的二維條碼軟體已經出到第3.5版啦,多加了可轉寄地理條碼的功能喔,所謂地理條碼就是可秀出有經緯度的條碼啦,有興趣的大大們,可以到金揚資訊的網站看看喔. http://www.quickmark.com.tw

  • viviann

    在你這裡收獲許多,謝謝你~^^
    最近開始接觸QR code,才深知這個領域的浩瀚
    對於不是資訊人的我還真的有點吃力~
    不過沒關係,我會努力滴~

  • @viviann 不客氣,很高興認識妳。

  • 二维码的诞生解决了一维条码不能解决的问题,它能够在横向和纵向两个方位同时表达信息,不仅能在很小的面积内表达大量的信息,而且能够表达汉字和存储图像二维码的出现拓展了条码的应用领域,因此被许多不同的行业所采用。

  • 大陆一个重量级的二维码解决方案提供商 银河传媒 中国移动二维码
    http://www.gmedia.cn

  • 心有灵犀鬼才心

    我们正在开发中国汉信码和QRCode.有合作机会加我,msn:[email protected]
    北京。

  • Scharlar

    Dear Rex,

    This is Scharlar,also the first time to surf your blog.
    I am a layman about 2D barcode stuff.
    You are quite knowledgeable about 2D barcode.So would you please help me to answer the following question:

    1.Does 2D barcode decoder need to do very “accurate” image skew angle correction/ “keystone effect” correction in order to get decoding job well done? What is the minimum image quality requirement?

    Appreciate your reply in advance.

    Best regards,
    Scharlar Hsu

  • @Scharlar, on mobile phone, Yes. You can have good feature extraction algorithms at least. Angle correction would be nice to have functions, since most of these algorithms are trial and error methods.

    Also, the minimum image resolution depends on which bar code you want to read, and what size is. Large bar code required high resolution to recognized the `modules’. One module required at least one or two pixels to read.

  • Scharlar

    Dear Rex,

    Thank you very much for your reply.

    Currently I am developing proprietary 2D barcode encoder/decoder. My barcode pattern is 280×280 pixels,and using RS(232,116) as ECC. I do not apply so called “module” to construct barcode image. I use 8-bit/symbol to represent the message,each bit consists of 8×4 pixels,and serializing the bit-pattern over the image area to convey the codeword.
    During simulation, my algorithm can resolve the image re-sizing / skew angle correction issue,and perfectly decode the messages without any “bit-alignment” mechanism.

    But in real case, the barcode image always got some “2D- keystone” effect problem, and the above algorithms do not work under such condition. If I try to resolve the “2D-keystone” effect issue, it will consume too much computation power, I do not think current working 2D barcode decoders have spend too much effort on image correction(???)

    Personally, I think my problem is on “bit-alignment” issue.

    I think current working 2D barcode decoders also need to deal with the “module-alignment” issue. How have they overcome such issue(smartly) without too much image correction effort??

    Would you please advise me one way to settle my problem?

    Looking forward to getting your help(advice).

    I apologize if I have bothered you so much.

    Thanks again!

    Best regards,
    Scharlar Hsu

  • @Scharlar, You know that you are asking the key element for implementing a barcode reader ? 😉

    I understand your question, and I also know some barcode reader do solving the problem by having image correction in the problem. The key is how to optimize the computing cost of the algorithms. Traditional solutions for PC might not work, since it takes too much computering power. You may try to `guess’ the right angle by projecting the module/bit without changing the bit ordering.

    It’s a matter of time for finding the best solution, I wish you good luck. 🙂

  • Scharlar

    Dear Rex,

    Thanks for your advice.

    Best regards,
    Scharlar Hsu

  • SARS

    hi Rex,

    依你看QR code在台灣最有可能Boomimg的時間點會是什麼時候?什麼樣的應用會最容易普及?這個問題很難吧….^^

    我的msn:[email protected] 請加我

  • Jerry

    Dear Rex,

    請問用C語言實做qrcode decode 的問題…

    問題一:
    假設Version1 DataModule 208個點已經解出來( unsigned char DataModlue[208]; ),這208個點其中有48個點是用來存Data,(208-48=160)個點用來做Error correction,程式要怎麼寫,才能運用這160點,把正確的Data 回覆?

    我依稀記的國外有人寫出C-code的解Reed Solomon的程式,如果您知道,或手邊有sample code,可否不吝告知,小弟感激不盡 jerry.eic93g#nctu#edu#tw

    問題二:
    DataMaskPattern(for QRCode symbol) 111 的condition spec寫((i+j)mode2+(ij)mode3)mode2 ? 但Figure21卻寫((ij)mode2+(ij)mode3)mode2 ,哪一個才正確?

  • Hi, Jerry
    1. 文章裡面有提到 open source library, 歡迎參考。
    2. 不確定你講是哪一份規格? ISO 18004 ?

  • Dan

    日本有所謂新一代的ColorCode出現 號稱將取代 QR Code.(參考 http://www.colorzip.co.jp/en/
    您的看法如何?

  • Jason

    你好:最近在看QR那方面的资料,准备把它当成毕设来做,但是查了好久都没找到ISO 18004。
    不知道你能否传一份给我,谢谢。
    email:[email protected] 或者 [email protected]

  • @Jason ISO 18004 是 ISO 文件,必須購買後才能使用,電子文件上都有浮水印,也不好直接給你。

    若不想購買定價 CHF 200 的 ISO/IEC18004 – Information technology — Automatic identification and data capture techniques — Bar code symbology — QR Code,可以改為購買 中華人民共和國國家標準 GB/T18284-2000《快速響應矩陣碼》,定價只要人民幣 33 元。

  • @Dan ColorZip 不是新技術。ColorZip 其實是 2000 年時,由韓國延慶大學的團隊所開發,並於當年四月商品化成立 ColorZip Media 公司。並於 2004 年技術授權到日本的 ColorZip Japan Inc.

    ColorZip 的優點是以彩色矩陣組成,相較於傳統二維條碼於行銷上較容易引起人注意。缺點是印刷較為困難、且該條碼格式資料含量相當小,無法提供足夠的資訊,且於日本、韓國,皆無出廠即可譯碼的裝置。ColorZip 推展其實非常不順利。

  • Dan

    謝謝您關於ColorCode的高見!
    我最近和日本ColorZip有所接觸。請問可以用email和您聯係嗎?您的email是?

  • http://www.qrdoor.com.tw 這個網站也有很多QR code的介紹及應用.已經可以線上做出彩色套圖的QR CODE,還滿不錯的.也有免費的QR CODE API供其他網站直接呼叫使用. 也可以分享QR code及製作專屬部落格貼紙.好像都免費的.

  • well

    請問一般門市店面(例如便利超商)常用的掃描機能讀 QR code嗎?

  • 牽涉到讀碼機的規格,一般的條碼掃描機都只支援 1D Barcode.

  • 想請問一下QRCODE中的錯誤控制是如果實做的呢??我大概知道有bch與rs但不太了解如何控制的~想請大大知道的話指點一下~謝謝

  • 不太確定您想問的問題是甚麽?是想問 Reed Solomon 的算法?還是 codewords 的編譯?

    http://en.wikipedia.org/wiki/Reed–Solomon_error_correction

  • 因為最近有看他的產生方式但有一部份錯誤控制那邊有點不懂~不知道可不可以跟你私下討論一下呢~謝謝

  • Jason, 我發了一封信給你,你可以透過該電子郵件跟我聯絡。謝謝

  • Alio

    您好,小弟最近調查mobile ticketing的資料時有幸拜讀您的Blog
    想請教您 對QR code作為實際商業交易的媒介有什麼看法(作為認證用的票卷ex:車票,機票)?
    因為小弟在Google 上有找到國外很多相關的應用
    但是卻鮮少提到如何驗證的機制
    不知您可否提供一些意見 謝謝您