Multi-application QR code

JP2025504287A5Pending Publication Date: 2025-12-15KONINKLIJKE PHILIPS NV
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2024534142
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2022-01-03
Filing Date
2022-12-22
Publication Date
2025-12-15

AI Technical Summary

Technical Problem

In the prior art, multi-application QR code requires the user to manually scan multiple QR codes to realize device connections of different protocols, resulting in cumbersome and inefficient operations, especially when multiple networks are required to be connected at the same time.

Method used

Multi-application QR code technology is used to encode the information of multiple applications in a single QR code, separate the header identification and data container, and use error correction mechanisms and decentralized storage methods to ensure that the information of each application is reliable and efficiently read.

Benefits of technology

It realizes reliable reading of multiple application information stored in a single QR code, simplifies user operations, improves device connection efficiency, and significantly improves operation speed when multiple networks are required to be connected at the same time.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

The invention relates to a multi-application QR code in which information of multiple applications can be stored in such a way that the respective information can be retrieved for each application in a reliable and time-efficient manner. The information is encoded in encoded data comprising at least a header and a respective data container for each application. The header may comprise at least one identifier indicating the presence of multiple applications and a respective application identifier for each application. The encoded data is stored distributed in a number of data pixels distributed in the QR-coded area according to an allocation rule. A QR code reader can retrieve the information stored in the QR code by simply accessing and processing the data pixels related to each application of interest and by using error correction specific to this respective application.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present invention relates to the field of QR codes, and more particularly to multi-application QR codes. [Background technology]

[0002] A Quick Response (QR) code (see [ISO 18004]), also known as a two-dimensional bar code, is a machine-readable optical label that encodes information that can be decoded by a QR code reader or scanning device. For example, a handheld device such as a smartphone can be equipped with a QR code reader and an optical camera that can capture an image of the QR code and decode it to identify the encoded information. QR codes can be used for many applications. For example, a QR code can be printed on a poster, and when a user scans the QR code, for example, a browser on the QR code reader opens a website with more information on the subject of the poster. In another example, a company can print QR codes on its products that contain the product's serial number, which can be used by the company's applications to, for example, register the product using the serial number, or to communicate with the product.

[0003] It is common to connect devices to wireless networks, such as those that use Wi-Fi (i.e., IEEE 802.11-based). When the device to be connected lacks a user interface or has only a very basic user interface, it is common to use another device to help set up the connection. Part of the setup, or configuration, process involves bootstrapping. One example is Wi-Fi Easy Connect, which supports the Device Provisioning Protocol (DPP) scheme (see [DPP] established by the Wi-Fi Alliance) to bootstrap a secure Wi-Fi connection between Wi-Fi devices using QR codes. Such a setup protocol is usually called "commissioning".

[0004] A product may include several QR codes for several different applications. For example, a wireless product (e.g., a Wi-Fi product) may be a Bluetooth Low Energy (BLE) product, or an IEEE 802.15.4-based product, etc. Such a product may require a first QR code for connecting to a Wi-Fi network by a first commissioning protocol, e.g., Wi-Fi Easy Connect, and a second QR code other than the first QR code for registering by a second commissioning protocol in another network, such as a smart home network (SHS) like Matter on Wi-Fi frame. However, it may be problematic for a user to scan the correct QR code for a particular application, e.g., a commissioning protocol, since the user must understand which QR code should be used for which application. Furthermore, for a wireless product that supports both Wi-Fi Easy Connect and SHS, the product also implements both Wi-Fi Easy Connect and SHS commissioning protocols. Because both commissioning protocols depend on or are exchanged over Wi-Fi frames, a product needs to select which commissioning protocol it needs to use based on an initial interaction triggered by the commissioning tool. However, this behavior is not defined. Similar issues appear in other wireless products that implement two or more commissioning protocols over the same air interface.

[0005] Furthermore, in such situations, the information contained in multiple QR codes may be required by one of the applications, so that scanning a single QR code is not sufficient. Indeed, there are an increasing number of cases where it is necessary to scan several QR codes, each containing related information. Scanning each QR code is inefficient and time-consuming, and a single scanning action is much quicker. One such example is a documentation check for passengers traveling in a group. Scanning the QR codes for each individual person would lead to significant extension of the queue and frustration for everyone involved. Summary of the Invention [Problem to be solved by the invention]

[0006] It is an object of the present invention to store information of multiple applications in one QR code in such a way that the respective information of each application can be read out individually in a reliable and time-efficient manner.It is a further object of the present invention to coordinate the operation of commissioning protocols operating on the same communication interface based on the information read out from the QR code. [Means for solving the problem]

[0007] This object is achieved by an encoding method according to any one of claims 1 to 9, by a decoding method according to any one of claims 10 to 12, by an encoding device according to claim 13, by a decoding device according to claim 14, by an apparatus according to claim 15, by a system according to claim 16 and by respective computer program products according to claims 17 and 18.

[0008] According to a first aspect, a method directed to encoding information of multiple applications for storage in a first QR code comprises at least the steps of collecting information of the multiple applications and encoding the information into encoded data, the encoded data including at least a header and a respective data container for each application. The header includes at least a unique identifier indicating the presence of multiple applications and a respective application identifier for each application. Thus, the identification information indicated by the header for each application and the data container allows supporting multiple applications on the same (first) QR code. In the following disclosure, the first QR code, i.e. a QR code capable of handling multiple applications, can also be interchangeably represented as a master code.

[0009] In an example of the first aspect, a respective error correction mechanism (ECM) and / or error detection mechanism (EDM) is used for each data container per application in the encoded data of each data container per application, thereby enabling reliable and fast reading of data of each application in the first QR code by providing an ECM and / or EDM for each data container.

[0010] In an example of the first aspect, the step of encoding the information into the encoded data includes at least converting an input data stream of information into a respective input bit string for each application, dividing the respective input bit string for each application into a sequence of one or more data code words, dividing the sequence of one or more data code words into a predefined number of blocks, generating one or more error correction code words for each block, and including the error correction code words in the data code word sequence. For example, the error correction code words can be inserted in any suitable location or locations in the data code word sequence. Thereby, there is an error correction capability for each application. In one example, the data and error correction code words can have a length of 8 bits, or another length of bits.

[0011] In an example of the first aspect, encoding the information into the encoded data includes at least the steps of: extracting the respective data streams from the headers of the respective applications, combining the respective data streams into respective combined data streams, converting the respective combined data streams into respective input bit strings, dividing the respective input bit strings into a sequence of one or more data code words, dividing the sequence of one or more data code words into a predefined number of blocks, generating one or more error correction code words for each block, and including the error correction code words in the data code word sequence. For example, the error correction code words can be inserted in any suitable location or locations in the data code word sequence. Combining the respective data streams can include concatenating the respective data streams.

[0012] In an example of the first aspect, the method may further include distributively storing part or all of the encoded data in a plurality of data pixels distributed across the coding area of ​​the first QR code according to the allocation rule, where a data pixel is defined as a data storage unit in the QR code. Any local damage to the first QR code may thereby be distributed across multiple applications, which ensures less damage per application and a higher probability of complete correction per application. This may also enable the QR code reader to read only the application data of each application, which may speed up the reading process.

[0013] In an example of the first aspect, when the method includes storing a portion of the encoded data in a distributed manner, the method further includes storing another portion of the encoded data in a second QR code other than the first QR code, thereby allowing storage of encoded data for multiple applications to be shared with other QR codes in order to optimize data storage resources.

[0014] In an example of the first aspect, respective error detection or correction data from an error detection or correction mechanism used for each application is included in each data container for each application, thereby making it possible to detect or correct errors in the encoded data of each data container.

[0015] In an example of the first aspect, the encoded data includes data configured for use with a global error detection mechanism shared by all of the applications to detect whether there is an error in the respective data container based on information (e.g., codewords) in the other data containers, and / or data configured for use with a global error correction mechanism shared by all of the applications to correct errors in the respective data container based on information (e.g., codewords) in the other data containers, thereby enabling increased error detection and correction capabilities.

[0016] In an example of the first aspect, the header includes a respective application length parameter for each application, which can indicate information about how the data in bits for each application is stored in the first QR code in order to avoid or at least mitigate waste of data resources, for example, when some applications require more than half the storage capacity of the first QR code, but the storage capacity of the first QR code is assumed to be divided equally among multiple applications.

[0017] In an example of the first aspect, the input bit string includes a portion of the header associated with each application. This allows the information of the header associated with each application to be included in the application data, so that the portion of the header can be protected from errors by the error correction capabilities of each application. Thus, parity bits or error correction bits in each application can protect specific fields in the header.

[0018] In an example of the first aspect, the method further includes collecting image data from a graphical representation that is physically superimposed on the first QR code, including in a header of the encoded data an indication of the presence of the graphical representation and the area occupied by the graphical representation on the first QR code, and excluding from storage of part or all of the encoded data data pixels of the encoded area of ​​the first QR code that occupy an area in the first QR code that matches the area occupied by the graphical representation. This allows for the first QR code to maintain its error correction capability for correcting errors introduced by the superimposed graphical representation, thereby allowing larger graphical representations (e.g., characters, figures, images, logos, icons, designs, patterns, models, etc.) to be superimposed on the first QR code than would be possible using a method that intentionally introduces errors into the encoded data.

[0019] In an example of the first aspect, the method further includes configuring each error correction mechanism for each application with a lower error correction level than the single error correction mechanism shared by all applications of the plurality of applications. This configuration information can be stored in a header or a data container. From a list of known levels of error correction L, M, Q, H, the ECM for each application can have, for example, the lowest error correction level L, while the ECM shared by all applications of the plurality of applications can have, for example, the highest error correction level H. When the first QR code uses a Reed-Solomon error control code as an error correction mechanism, the four error correction levels L, M, Q, H provide recovery capabilities of approximately 7%, 15%, 25%, and 30%, respectively.

[0020] In an example of the first aspect, the first QR code includes Device Provisioning Protocol (DPP) or Wi-Fi Easy Connect bootstrapping information for storing at least public key information, such that when respective Wi-Fi connections can be established between multiple configurators and an enrollee to which the first QR code is attached, each configurator can scan the enrollee's first QR code during the bootstrapping process and retrieve its respective public key, e.g., its public identity key.

[0021] According to a second aspect, a method is directed to decoding information of each of a plurality of applications in a first QR code, the information being stored as encoded data in the first QR code, the encoded data including at least a header and a respective data container for each application, the method including at least the steps of reading the header of the first QR code, the header including at least a unique identifier indicating the presence of a plurality of applications and a respective application identifier for each application, identifying the first QR code by using the unique identifier indicating the presence of the plurality of applications from the header, identifying the respective applications from the header, and identifying the respective data containers associated with the respective applications. Alternatively, the first QR code can be identified visually, for example, by a user-understandable print pattern (for example, a QR code based on the letter M for designating Master or Matter), so that the identification can be performed, for example, by a person operating a QR code reader.

[0022] In an example of the second aspect, the method further comprises reading all pixels associated with the data container of each application to read at least one data code word associated with each application and all parity or error detection or error correction bits of the multiple applications, and obtaining error-free application data of each application, so that a decoding device, e.g. a QR code reader, can selectively retrieve information of each application of the multiple applications by reading only the data pixels of each application without having to read all data pixels of the first QR code, thereby speeding up the reading process.

[0023] In an example of the second aspect, the method further includes selecting an application from among a plurality of applications based on a pre-configured application or policy or context, and using the decoded information from the respective application to initiate the application or protocol. For example, the initiated application or protocol may be a commissioning application for a wireless product. To illustrate said pre-configuration, the QR code reader may be from a manufacturer that pre-configures it to use only a specific application, e.g., SHS, such as Matter. However, if the QR code reader is from another manufacturer that uses, e.g., Wi-Fi, the other manufacturer may not know whether the end user will use a Wi-Fi network or an SHS network, and the selection is context-dependent.

[0024] In an example of the second aspect, the method further includes the steps of selecting an application from the plurality of applications as a first commissioning application from the first QR code, reading out commissioning data related to the selected first commissioning application, starting the first commissioning application, and running the first commissioning application until the first commissioning application succeeds or fails. If the first commissioning application fails, the method includes the steps of selecting another application from the plurality of applications as a second commissioning application from the first QR code, reading out commissioning data related to the second commissioning application, and starting the second commissioning application. This can avoid the combination of multiple commissioning applications.

[0025] In an example of the second aspect of encoding commissioning information for a communication protocol, the method further includes selecting a first commissioning protocol based on at least one of a preconfigured value, a policy, a context, and a portion of the data in the first QR code.

[0026] In an example of the second embodiment, a first protocol is started and a second protocol is not triggered unless the first protocol has finished.

[0027] In an example of the second aspect, the method includes the steps of reading a first QR code, determining supported applications of a plurality of applications from the read first QR code, selecting an application from the supported applications based on at least one of preconfigured selections, policies, contexts, and preferences included in the first QR code, and starting the selected application as a first selected application. In case of a commissioning application, the configurator or commissioner shall not start the second selected application only if the first selected application was not successful or failed, e.g., a minimum number of times N (e.g., N = 1, 2, ...), and only if the commissioning process related to the first selected application was not successful or failed.

[0028] In an example of the second aspect, the method comprises the steps of reading a first QR code; determining a plurality of supported applications from the read first QR code; selecting an order of execution of the applications based on at least one of pre-configured options, policies, contexts and preferences contained in said first QR code; starting the first application (in case of a commissioning application, the configurator or commissioner should not start the second selected application at least until a pre-configured target step, e.g. only if the commissioning process related to the first selected application has not been successful or has failed a minimum number of times N (e.g. N=1, 2, ...)); and starting the second application if the execution of the first application is successful (which may be partial success, if the second commissioning protocol may rely on the first commissioning protocol (DPP) as an intermediate step). An example use case for the latter two applications could be to use the first Commissioning Protocol (DPP) as an intermediate step in the first application to register the device on a Wi-Fi network, instead of using a second application, and then use the second application to connect the device to a cloud service, a backend in the cloud, etc. The advantage of this is that for example the first application, while not providing a connection to the correct cloud service, provides a more secure way to connect to a Wi-Fi network than the second application.

[0029] According to a third aspect, there is provided an apparatus for encoding information of multiple applications for storage in a first QR code, the apparatus being adapted to perform the method claimed in the first aspect and / or any of the examples of the method of the first aspect.

[0030] According to a fourth aspect, there is provided an apparatus for decoding information of each application among a plurality of applications in a first QR code, the information being stored as encoded data in the first QR code, the encoded data including at least a header and a respective data container for each application, the apparatus being adapted to perform the method claimed in the second aspect and / or any of the methods of the examples of the second aspect.

[0031] According to a fifth aspect directed to a device having an associated QR code, the QR code contains commissioning information for two different commissioning protocols, and upon receiving an initial commissioning message of a first commissioning protocol from a commissioner device, the device will not accept an initial commissioning message of a second commissioning protocol until the first commissioning protocol has ended.

[0032] According to a sixth aspect directed to a system, the system includes at least an apparatus according to the fourth aspect having a camera and a first communication interface, a first device having an associated QR code and a second communication interface, a second device having a third communication interface, and a third device, the apparatus adapted to interface with the third device and to initiate and execute a first commissioning protocol with the first device and / or the third device adapted to trigger a second commissioning protocol with the first device from the second device, the second commissioning protocol being identical or different from the first commissioning protocol.

[0033] According to a seventh aspect directed to a computing device, a computer program has program instructions or code means which, when executed on a processing unit of the computing device, cause the computing device to perform the method claimed in the first aspect and / or any of the methods of the examples of the first aspect.

[0034] According to a seventh aspect directed to a computing device, a computer program has program instructions or code means which, when executed on a processing unit of the computing device, cause the computing device to perform the method claimed in the second aspect and / or any of the methods of the examples of the second aspect.

[0035] It should be noted that the above apparatus may be implemented based on a discrete hardware circuit having an arrangement of discrete hardware components, integrated chips, or chip modules, or based on a signal processing device or chip controlled by a software routine or program stored in memory, written onto a computer readable medium, or downloaded from a network such as the Internet.

[0036] Also provided herein is a system including at least a device having a camera and a first communication interface, a QR code having a plurality of containers associated with respective personal data reports of respective people, said respective people being in a group, and a second device having a second communication interface and having a data file associated with said respective people's data report, said device and said second device being configured to initiate and execute a verification protocol, said verification protocol including reading and decoding the QR code, reading the data file and comparing the contents of the data file with data obtained by decrypting the plurality of containers, and providing a verification response.

[0037] It is to be understood that a preferred embodiment of the invention can be any combination of the dependent claims or the above embodiments and the respective independent claim.

[0038] These and other aspects of the invention will be apparent from and elucidated with reference to the embodiments described hereinafter. [Brief description of the drawings]

[0039] For a better understanding of the present application, reference will now be made, by way of example, to the accompanying drawings in which: [Figure 1] FIG. 1 is a diagram showing the structure of a QR code symbol of version 7 according to a conventional embodiment. [Diagram 2] 4 is a schematic flow chart illustrating an exemplary encoding procedure according to an embodiment of the present invention. [Diagram 3] FIG. 2 shows a schematic allocation of data pixels of a QR code to encoded data for two applications according to an embodiment of the present invention. [Figure 4] FIG. 2 shows a schematic allocation of data pixels of a QR code to encoded data for three applications according to an embodiment of the present invention. [Diagram 5] FIG. 2 shows a schematic allocation of data pixels of a QR code to encoded data for two applications in the presence of pictures according to an embodiment of the invention. [Figure 6] 4 is a schematic flow chart illustrating an exemplary decoding procedure according to an embodiment of the present invention. [Figure 7] FIG. 4 is a schematic flow chart diagram illustrating another exemplary decoding procedure according to an embodiment of the present invention. [Figure 8] 4 is a schematic flow chart illustrating another exemplary decoding procedure according to an embodiment of the present invention. [Figure 9] 1 is a schematic block diagram of a device capable of encoding information of multiple applications to create a QR code in accordance with an embodiment of the present invention; [Figure 10] FIG. 1 illustrates a schematic system for commissioning according to an embodiment of the present invention. [Figure 11] FIG. 1 illustrates a commissioning protocol according to a conventional embodiment. [Figure 12] FIG. 2 illustrates a commissioning protocol according to an embodiment of the present invention. [Figure 13] FIG. 2 illustrates a commissioning protocol according to an embodiment of the present invention. [Figure 14] FIG. 1 illustrates a system for reading and processing a QR code with a single scan in accordance with an embodiment of the present invention. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0040] DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS The present invention will be described in terms of QR codes, and in particular QR codes that can handle multiple applications or implementations.

[0041] The International Organization for Standardization (ISO) established the standard ISO / IEC18004:2015 for QR Codes entitled "Information technology - Automatic identification and data capture techniques - QR code bar code symbology specification", which defines the standardized symbol structure of QR Codes as follows: A QR Code symbol is constructed as a two-dimensional array of light and dark squares, called modules. There are 40 different sizes of QR Code symbol versions, from version 1 to version 40. Each QR Code symbol version is composed of a different number of modules, and therefore different QR Code versions result in different data capacities. From Figure 3 in paragraph 6.3.1 of the standard ISO / IEC18004:2015, Figure 1 of the present application shows the structure of a version 7 QR Code symbol, consisting of a coding area 1 (i.e., format information, version information, data codewords and error correction codewords), and functional patterns 2 (i.e., finder, separator, timing pattern and alignment pattern). The functional pattern does not encode data and the symbols are surrounded on all four sides by empty areas, designated as quiet zones 3.

[0042] The message data is encoded as a bit stream that is divided into a sequence of codewords. All codewords are 8 bits long. Based on the QR code version and error correction level, the codewords are grouped into several error correction blocks and an appropriate number of error correction codewords is generated for each block. An error correction mechanism (ECM) allows correct decoding of the message when some of the symbols are smudged or damaged. QR codes of standard ISO / IEC18004:2015 use Reed-Solomon error control codes for error detection and correction. Reed-Solomon codes are known to be [n, k, nk + 1] codes, i.e., linear block codes of dimension k and length n (over a finite field) with a minimum Hamming distance equal to nk + 1. A Reed-Solomon code (such as any MDS code) can correct twice as many erasures (i.e., erroneous codewords in known positions) as errors (i.e., erroneous codewords in unknown positions), and any combination of errors and erasures can be corrected as long as the relationship 2E + S≦nk is satisfied, where E is the number of errors in the block and S is the number of erasures in the block. Further examples of these ECMs can include Hamming codes or low-density parity check codes. There are four error correction levels L, M, Q, H that the user can select. Each level provides a different error correction capability, L up to 7%, M up to 15%, Q up to 25%, and H up to 30%. A higher error correction level improves the recovery capability, but also increases the amount of encoded data, or the amount of parity symbols. This means that if the same message is encoded using a higher error correction level, a larger QR code version is required. The number of data codewords, error correction blocks, and error correction codewords depends on the QR code version and the error correction level.

[0043] In an exemplary embodiment of the invention, a first QR code affixed to an object, product or device is used to store encoded data for multiple applications (or implementations). It is noted that the term "master QR code" may be used in the description to interchangeably represent the first QR code, i.e. a QR code that stores encoded data for multiple applications, in order to distinguish it from a QR code that stores encoded data for a single application. The first QR code may contain information of multiple applications in encoded form. The expression "for an application" is understood in this specification to mean "configured for use with an application".

[0044] The information for each application can be any set of characters that can non-exhaustively represent at least one of, for example, the name of the application (e.g., "URL to Company X" or "Wi-Fi network configuration"), an identifier that uniquely identifies each application, configuration data for the OA, a URL to an app or program to use for that QR code and application, and the location of the QR for each application (e.g., "QR code indicated by a green arrow", or "QR code indicated by a blue rectangle", or "QR code to the right of the on / off switch").

[0045] The encoded data from the encoded information may include at least a header and a respective data container for each application. The header may include a single identifier indicating the presence of multiple applications, a count of the multiple applications, and a respective application identifier for each application. The single identifier may implicitly indicate the presence of multiple (specific) applications, for example two applications related to Wi-Fi Easy Connect and SHS. The data container may include application data for the applications and may point to data pixels of the first QR code reserved for storing application data. In additional embodiments, the data container may also point to a physical location in the first QR code used to store application data. The data container may also point to a portion of a bit string that includes data associated with an application.

[0046] In the present invention, the term "data pixel" refers to a storage unit in a QR code. For example, if a "data pixel" is the smallest possible storage unit in a QR code, it can only store a certain amount of bits, for example, 1 bit. If a "data pixel" refers to a data storage unit that can store b bits in a QR code that can store D bits, then the QR code can store D / b "data pixels". Therefore, the term "data pixel" should not be confused with the term "image pixel". For example, an image of a QR code consists of image pixels as captured by a camera, and a group of one or more picture pixels may represent each data pixel.

[0047] A respective ECM (e.g. Reed-Solomon code, Hamming code, low density parity check code, etc.) can be included in each data container for each application to correct any errors in the encoded data of the respective data container for each application, thereby enabling fast reading of the application data in the first QR code containing encoded data for use with more than a single application. In particular, when the respective application indicated by OAi requires encoding application data Di, an ECM is used to map Di to a codeword Ci. The ECM can retrieve Di from Ci even if Ci contains some errors. First, the application data Di can be divided into b blocks, resulting in a total of b codewords. To reduce the risk of damage caused to the application data, the bits or symbols of these different codewords can be interleaved, i.e. mixed, so that if a burst of errors occurs (e.g. due to damage caused to the physical area of ​​the QR code), the errors are distributed over multiple codewords.

[0048] In an optional embodiment, a respective error detection mechanism (EDM) (e.g., a cyclic redundancy check (CRC), a parity check, a checksum, etc.) or a respective error correction mechanism (ECM) may be included in each data container for each application to detect or correct errors in the encoded data of each data container for each application.

[0049] In an optional embodiment, the encoded data may include an overall EDM shared by all applications of the multiple applications to detect errors in the data container based on information in one or more other data containers.

[0050] In an optional embodiment, the encoded data may include a global ECM shared by all of the multiple applications to correct any errors in the data container based on information in one or more other data containers.

[0051] FIG. 2 depicts a schematic flow chart 200 illustrating an exemplary encoding method for encoding information of multiple applications for storage in a first QR code, according to an exemplary embodiment of the present invention.

[0052] In step 210, information for a number of applications is collected.

[0053] In step 220, the information is encoded into encoded data, which includes at least a header and a respective data container for each application. The header may include a single identifier indicating the presence of multiple applications, a count of the multiple applications, and a respective application identifier for each application.

[0054] In a detailed example referring to the above encoding method of Fig. 2, information of multiple applications, each application associated with a data container, can be encoded into the above encoded data according to the following exemplary method using an ECM shared by all data containers and a header, and optionally an EDM, for storage in a first QR code. Note that in this example, a single QR code can contain information for multiple applications.

[0055] In a first step, input data related to a first QR code (i.e., a master QR code) is collected. This input data may include at least a count of a number of applications and a respective application identifier for each application. In the example of N applications, referred to as OA1,...,OAN, these input data, called header data (HD), may be structured as N,OA1,...,OAN. Note that the respective application identifiers are each unique, for example by registering or standardizing them. In the example of two applications with identifiers OA1 and OA2, the content of the header may be explicitly structured as "2,OA1,OA2" or a single identifier (ID) may be included in the header that implicitly means "2,OA1,OA2".

[0056] It should be noted that the above input data does not give any information about how many bits of data are stored per application. In this case, as mentioned above, for a QR code with a given storage capacity, the QR code reader would have to assume that the storage capacity is divided equally between the number of respective applications available. This can lead to a waste of resources, for example, if one application requires very little data storage and another requires much more, especially slightly more than half the storage capacity of the given QR code type. In this case, these two respective applications would need to be encoded in a larger QR code if their length were not included. To avoid this problem, in an optional embodiment, the header data (HD) also includes a length parameter for each application and can thus be configured as N, OA1, ..., OAN, L1, ..., LN.

[0057] In a second step, for each of the N respective applications, the application data Di of each application OAi (ie the characters in Di) is collected.

[0058] In a first sub-step of the second step, the respective bit stream data (BSD) from Di (i.e., the input bit string BSDi from Di) is calculated. Note that this input string may include a portion of the header data (HD) for each application OAi, such as the OAi identifier of each application OAi and its position in the list of N applications, or the length Li of each application OAi. The advantage of including this HD information in the input bit string BSDi is that it protects the HD information from errors by the ECM and optionally the EDM associated with each application. In other words, parity bits in the application data of each application can protect certain fields in the header. Furthermore, to increase the reliability of the header, two options can be proposed, alone or in combination. In the first option, the header can include its own error correction capability, so that any errors can be corrected before the header accesses the input bit string BSDi. In the second option, the header information can be physically stored in pixels close to, for example, one, two or three "eyes" or "position markers" or "squares in squares at three corners". The reason is that these position markers are needed to identify and locate the QR code. This is similar to the format and version information shown in Figure 1. Therefore, if the position markers are removed or damaged, the QR code cannot be read anyway. However, if the header information is placed in some known physical location, for example close to one or more position markers, the chances that the header information can be read are increased.

[0059] In a second sub-step of the second step, an error detection bit string EDi, eg a CRC if the EDM is CRC-based, is optionally calculated from the input bit string BSDi.

[0060] In a third sub-step of the second step, an interleaved input bit string BSDi, represented by IBSDi, is optionally obtained by interleaving EDi and BSDi to diffuse potential errors. Note that the QR code reader must know if and how interleaving is performed. This can be based on a standard or can be stored, for example, explicitly or implicitly in the header. This also applies to other interleaving steps in other embodiments of the invention.

[0061] In a fourth sub-step of the second step, one or more 8-bit codewords Ci are calculated by splitting the interleaved input bit string BSDi into a sequence of one or more 8-bit data codewords, splitting the data codeword sequence into as many blocks as required (depending on the QR code version and error correction levels L, M, Q, H) to be able to process an ECM (e.g. a Reed-Solomon code), generating one or more 8-bit error correction codewords for each block, and appending the error correction codewords to the end of the data codeword sequence or inserting the error correction codewords at any suitable location in the data codeword sequence.

[0062] Note that this fourth sub-step makes it clear that there is an error correction capability for each OA. If application data for two applications OA1, OA2 are stored together with a single error correction bit string used for all application data, then the total storage requirement is D = D1 + D2 + PB, where D1 and D2 refer to the application data for OA1 and OA2, respectively, and PB refers to the parity bits for all two applications OA1 and OA2, which are required for error correction. In contrast, in the current fourth sub-step, for example, if application data for two applications OA1, OA2 must be stored, then there is an error correction bit string applied to each application data for OA1 and OA2. That is, the total storage requirement is not D, but D' = D1 + D2 + PB1 + PB2, where D1 and D2 refer to the application data for OA1 and OA2, respectively, PB1 refers to the parity bits for application OA1, and PB2 refers to the parity bits for application OA2. Although D' might be larger than D, this sum D1 + PB1 or D2 + PB2 is expected to be smaller than D, since the QR code reader only needs to read D1 + PB1 if it is interested in application OA1, and only D2 + PB2 if it is interested in application OA2.

[0063] In a fifth substep of the second step, one or more 8-bit codewords Ci are optionally interleaved with itself, with IBSDi, or with a combination thereof to obtain an interleaved codeword ICi for the respective application OAi.

[0064] It should be noted that the above sub-steps may be performed in different orders, for example the fourth sub-step may follow the second sub-step, the third sub-step may follow the fourth sub-step, etc.

[0065] In a third step, given a respective interleaved codeword ICi for each of the N applications OA1, ..., OAN, and optionally header data (HD) if the input string also contains part of HD associated with each application OAi, a concatenated TIC of IC1, ..., ICN and optionally HD is obtained.

[0066] In a first sub-step of the third step, optionally, a second EDM is applied to calculate an error detection bit string ED (e.g. a CRC) that allows to detect errors in TIC, and this error detection bit string ED is added to IC, resulting in EDTIC = TIC | ED.

[0067] In a second sub-step of the third step, the IED TIC is obtained by optionally interleaving the EDs and the TICs to spread any potential errors. In one example, the interleaving may interleave a portion of the EDs in each IC and / or the entire EDs in each IC.

[0068] In a third substep of the third step, a parity bit (PB) is obtained by applying a second ECM to compute one or more 8-bit codewords, optionally on IEDTIC and optionally on HD|IEDTIC. Note that the second ECM must not modify ICi itself. For example, the second ECM consists of computing a parity bit (PB) that can be appended to IEDTIC.

[0069] In a fourth sub-step of the third step, the parity bits (PB) calculated by the second ECM are optionally distributed (e.g., by interleaving) among the respective interleaved code words ICi for each application OAi. For example, assuming that k parity bits (PB) are obtained and there are two applications OA1 and OA2, the k parity bits can be distributed in the data containers associated with these two applications OA1 and OA2 (e.g., kx bits for the data container associated with OA1 and x bits for the data container associated with OA2). In an exemplary variant, the k parity bits can be stored in both data containers. The parity bits (PB) selected to be stored in the data container for each application are distributed over the ICi of the respective application.

[0070] In an exemplary embodiment, the per-application ECM (i.e., the per-data container ECM) can be configured with a lower error correction level than the single ECM (e.g., the second ECM) shared by all applications of the multiple applications. For example, from a list of known levels of error correction L, M, Q, H, the per-application ECM can have the lowest error correction level L, while the ECM shared by all applications of the multiple applications can have the highest error correction level H. If the first QR code uses Reed-Solomon error control coding, the four error correction levels L, M, Q, H provide recovery capabilities of approximately 7%, 15%, 25%, and 30%, respectively. This can enable quicker reading of the application data of each application since less application data is involved.

[0071] In an optional embodiment, part or all of the encoded data may be stored distributed across a number of data pixels distributed across the first QR code, or more precisely across the encoding area of ​​the first QR code, according to an allocation rule.

[0072] In an example where the data storage resource of the first QR code is limited, the encoded data may be stored in multiple different QR codes, e.g., the first QR code and the second QR code, such that instead of the entire encoded data being stored in the first QR code, a portion of the encoded data is stored in the first QR code and the remaining portion is stored in the second QR code. In this case, the first QR code as the master QR code may include a user-understandable printed pattern therein that indicates the location of the other QR codes (e.g., the second QR code) relative to the master QR code. In one example, the user-understandable pattern may be one or more (colored) arrows pointing to each of the other QR codes (e.g., the second QR code), or a kind of checkerboard with (colored or numbered) rectangles representing the master QR code and all the other QR codes (e.g., the second QR codes).

[0073] The determination of these data pixels for storing the encoded data in a distributed manner over the encoding area of ​​the first QR code can be performed according to different allocation rules, whereby the header data can be distributed in the same way as the encoded data.

[0074] Assuming that the first QR code contains application data for two applications denoted by A and B, and the data capacity is shared equally between both the respective data containers for applications A and B, an exemplary allocation rule may include storing the encoded data of the respective data containers for applications A and B (i.e. storing not only the encoded application data but also the parity bits, EDM bits or ECM bits) in alternating data pixels within (the encoding area of) the first QR code, as shown in FIG. 3.

[0075] Assuming that the first QR code contains application data for three applications, represented by A, B and C, and the data capacity is shared equally among the three respective data containers for applications A, B and C, an exemplary allocation rule may include storing the encoded data of the respective data containers for applications A, B and C (i.e. storing not only the encoded application data but also the parity bits, EDM bits or ECM bits) in the data pixels of (the encoding area of) the first QR code, as shown in FIG. 4.

[0076] This exemplary allocation rule ensures that damage in a particular portion of the QR code does not damage the encoded data for the respective application or a high percentage of these encoded data.

[0077] In another exemplary allocation rule, the specific data pixels in the first QR code that store the encoded data of the respective data container for each application can be calculated, for example, as follows: (1) If a data pixel is identified by its Cartesian coordinates (i, j), then: (2) A data pixel with identifier (i,j) in the coordinate system (I,J) is used to store the encoded data of the respective data container for each application. (3) the first QR code has MxM data pixels (or elements); and (4) The same amount of data pixels (or elements) is allocated to the coding data of every application. (5) Then, the coded data associated with the application number k (0≦k≦N−1) can be stored, for example, in a data pixel that satisfies the following relationship (1): (i*M + j) (mod N) = k with (i,j) in (I,J) (1)

[0078] If each application has different storage requirements, the allocation of data pixels can take this into account. In particular, if N applications require length parameters of L1, L2, ..., LN bits for the encoded data of each data container for each application, it is necessary to normalize the lengths by dividing them all by the smallest one and rounding the result up by the RoundUp() function, as given by the following relation (2): NL1, NL2, ..., NLN = RoundUp(L1 / Lmin), RoundUp(L2 / Lmin), ..., RoundUp(LN / Lmin) (2)

[0079] Note that the use of the RoundUp() function means that some dummy bits need to be added to some or all respective applications. The content of the dummy bits can be selected, for example, to improve error correction capabilities or to improve clock recovery. To clarify, clock recovery means determining where to sample an image containing a possibly (optically) distorted and possibly rotated QR code to obtain all pixels of the QR code. By enforcing run-length limitations in both directions of the QR code, an estimation of where the boundaries between the data pixels of the QR code are can be improved. Thus, the dummy bits should be selected such that long run-lengths in both directions above a certain threshold are prevented or even better, by creating, for example, a checkerboard pattern of the data pixels of the QR code within the dummy bit area, and such that run-lengths in both directions are minimized. This is particularly useful when the QR code is printed on a curved surface.

[0080] In another exemplary allocation rule, the data pixels of a first QR code may be used to store encoded data of respective data containers for N different applications (indexed from 1 to N) in successive rounds:

[0081] Round 1: the first NL1 bits of the encoded data for the first application are stored in the first NL1 bits of the first QR code, the first NL2 bits of the encoded data for the second application are stored in the next NL2 bits of the first QR code, ..., the first NLN bits of the encoded data for the Nth application are stored in the next NLN bits of the first QR code;

[0082] Round 2: the next NL1 bits of the encoded data for the first application are stored in the next NL1 bits of the first QR code, the next NL2 bits of the encoded data for the second application are stored in the next NL2 bits of the first QR code, ..., the next NLN bits of the encoded data for the Nth application are stored in the next NLN bits of the first QR code;

[0083] Round I: The next NL1 bits of encoded data for the first application are stored in the next NL1 bits of the first QR code, the next NL2 bits of encoded data for the second application are stored in the next NL2 bits of the first QR code, ..., the next NLN bits of encoded data for the Nth application are stored in the next NLN bits of the first QR code.

[0084] In another exemplary allocation rule, the specific data pixels in the first QR code that store the encoded data of the respective data container for each application can be calculated, for example, as follows: (1) If a data pixel is identified by its Cartesian coordinates (i, j), then: (2) A data pixel with identifier (i,j) in the coordinate system (I,J) is used to store the encoded data of the respective data container for each application. (3) The QR code has MxM pixels (or elements) (4) Define SNL_k = NL1 + NL2 + ... + NLk, where k = 1, 2, ..., N, and NL1, NL2, ..., NLN are the normalized lengths of the encoded data for each application as given by relation (2). (5) Then, based on SNL_k, data pixel (or element) (I,j) in (I,J) is assigned to the coded data associated with application number k according to the following relation (3): SNL_k ≦ (i*M + j) (mod SNL_N) < SNL_{k+1} (3)

[0085] Note that relation (2) implies that the minimum normalized length will be 1. The above scheme related to relation (1) interleaves in groups of 1. Note that the bits can also be interleaved in groups of length k (k>1). Each of the k bits is from one application. The bits of each application can be distributed over an area in the QR code, for example a square or rectangular area. For example, the squares in the above diagram can indicate individual data pixels or rectangular areas containing data pixels of one application. The above formula can refer to a rectangle i, j having s data pixels, rather than only a single data pixel. Note also that the area does not have to be rectangular in shape, but rather can have another shape, for example a triangle or a diamond shape (i.e. a rhombus with four corners with its axes in the horizontal and vertical directions). Note that having a rectangle larger than one pixel (i.e. 1*1) also allows for limiting the run length in both dimensions, thus minimizing sampling error on curved or wrinkled surfaces.

[0086] Note that another way to handle applications that require different length parameters of L1, ..., LN bits for the encoded data of each data container per application may be as follows: Let g denote the greatest common divisor of L1, ..., LN, i.e., the largest integer that divides all of L1, L2, ..., LN. The bit stream is divided into g parts, each part containing L1 / g bits from a first application, L2 / g bits from a second application, etc. In each part, the first L1 / g bits correspond to the first application, the next L2 / g bits correspond to the second application, and so on. For example, if N=3, L1=20, L2=30, and L3=40, then g=10. Each of the 10 groups has bits AABBBCCCC, where A, B, and C denote bits from the first, second, and third applications, respectively. A variant is that in each part, the first one symbol from each application is placed, then the second symbol from each application, so that more than one symbol is placed in each part. In this case, instead of the bit sequence AABBBCCC above, the bit sequence ABCABCBCC is generated. The advantage of this other method is that it does not introduce dummy bits due to upward rounding.

[0087] In an exemplary embodiment, the coding data for each application to be stored in these above calculated data pixels may correspond to a combined bit string as defined below: The entire output bit string IC derived from the fifth sub-step of the second step is such that it contains a number of ICs corresponding to the total number of interleaved codewords ICi per application OAi (i = 1, 2, ..., N) for all N applications. In the second and third sub-steps of the third step, the error detection information (EDI) and error correction information (ECI) related to all applications are distributed across all N applications. If IC has a length L and ECI / EDI has a length H, the total length is Z = L + H. The bits of ECI / EDI may be distributed evenly in the output bit string IC. This can be done by normalizing L and H by dividing them by J = Min(L, H) as described above, to obtain l = RoundUp(L / J) and h = RoundUp(H / J). Then, IC and ECI / EDI are divided into blocks of l and h bits. The combined bit string is obtained by concatenating alternating l-bit and h-bit blocks of IC and ECI / EDI. The combined bit string to be stored in the data pixel calculated above can include the IC of the OA and the ECI / EDI from the entire QR code. Note that under the assumption that errors occur in bursts, e.g. errors due to a corrupted QR code or errors due to holes in the QR code, this error correction capability allows a high probability of full correction per application to be maintained, since only a small fraction of each application is affected.

[0088] A current practice is to overlay a graphical representation (e.g., a letter, figure, image, logo, icon, design, pattern, model, etc.) on a QR code (e.g., an image of a company logo on a QR code). This helps the user to more easily identify the purpose of the QR code, for example, helping the user to identify whether it is a master QR code by overlaying a print pattern that the user can understand, for example, the letter M. Since QR codes rely on error correction mechanisms, which are used to correct any errors introduced by the overlaid graphical representation, it is feasible to overlay a graphical representation (e.g., an image) and still obtain a functioning QR code. However, while this works to some extent, some limitations exist, for example, the overlaid image cannot be made arbitrarily large, because otherwise too many errors would be introduced that could not be corrected even if the strongest available error correction code was applied. An exemplary embodiment that addresses this problem relates to a first QR code that includes an indication that a graphical representation is to be overlaid on the first QR code within a given physical area of ​​the first QR code. A possible solution would be to exclude from the data storage those data pixels of the coding area of ​​the first QR code that occupy an area that coincides with the area occupied by the graphical representation in the first QR code. In one example, this indication can be included in the header information and can be physically stored, for example, in data pixels that are close to one, two or three "eyes" or "location markers" or "squares of squares at three corners" of the first QR code, i.e. data pixels that are not located in the central area of ​​the first QR code where the graphical representation image is usually located.

[0089] In one example, the region can be identified by enumerating the data pixels of the first QR code that are affected by the superimposed graphical representation and specifying at least one of the center of the region, the region shape (e.g., circle, square, rectangle, triangle, diamond, etc.), and the size or radius of the region shape.

[0090] In one example, the indicator may consist of a bit (i.e. 0 or 1) indicating the presence of a graphical representation, and if a superimposed graphical representation is present, the indicator may further consist of the shape of the graphical representation (e.g. 0 for a circle, 1 for a square) and the (scaled) radius r of the graphical representation encoded in a few bits, e.g. 3 bits. The radius may for example be scaled by a fixed value depending on the QR code version, e.g. the value of the radius r may be multiplied by a scaling factor F, such that the actual radius of the graphical representation in pixels is r*F. This exemplary embodiment has several advantages, one of which is that larger graphical representations can be superimposed on the QR code.

[0091] It should be noted that if the header indicates the presence of a graphic representation, the data pixels in the indicated physical area of ​​the first QR code do not store data. Therefore, the first QR code does not use these data pixels to store data, and when the first QR code is scanned by a QR code reader, these data pixels are ignored by the QR code reader. This therefore impacts the amount of encoded data that can be stored in the first QR code, but it also speeds up the reading process of the QR code reader. Based on the example of Fig. 3, Fig. 5 shows how, in the presence of an image, the data pixels are alternately assigned to application data for applications A and B. It should be noted that this technique is also applicable to QR codes that store a single application. Fig. 5 shows the presence of an image with an area that coincides with the area occupied by the central 25 data pixels of the first QR code, the center of the image is indicated by a group of letters "CI" and the other data pixels in the area occupied by the image are indicated by the letter "I". It can be seen that even though two "contiguous" data pixels that sandwich an image could potentially be assigned to application data for the same application A or B, the presence of an image does not change the initial assignment of data pixels in areas that do not coincide with areas of the image.

[0092] As discussed above, an exemplary method of using an ECM and optionally an EDM within each data container has been described to encode information of multiple applications within the encoded data for storage within the first QR code.

[0093] In an exemplary embodiment of the present invention, a QR code reader can scan and selectively read these encoded data for each application stored in a first QR code (i.e., a master QR code). This can be accomplished by an exemplary method 600 for decoding information for each application of a plurality of applications, the information being stored as encoded data in the first QR code, the encoded data including at least a header and a respective data container for each application. The exemplary method 600, as generally depicted in FIG. 6, can include at least the following steps:

[0094] In step 602, a header of the first QR code is read, the header including a unique identifier indicating the presence of multiple applications, a count of the multiple applications, and a respective application identifier for each application;

[0095] In step 604, a first QR code is identified from the header using a unique identifier indicating the presence of multiple applications;

[0096] Each application is identified from the header in step 606. For example, the QR code reader may store pre-configured application identifiers corresponding to each application identifier;

[0097] In step 608, identifying each data container associated with each application based, for example, on the location where each application identifier appears on the display of the QR code reader;

[0098] In step 610, all pixels associated with the data container of each application are read out to extract at least one (e.g. 8-bit long) data code word associated with each application, and a parity bit (PB), an error detection information (EDM) bit or an error correction information (ECM) bit for each application. The QR code reader can detect or correct any errors using the EDM or ECM linked to the at least one (e.g. 8-bit long) data code word read;

[0099] In step 612, obtain error-free application data D (e.g., Di) of each application (e.g., OAi);

[0100] In step 614, if the ECM / EDM has the capability to detect whether all errors have been corrected, the ECM / EDM is used to detect whether errors exist in the retrieved application data D of each application.

[0101] This can be done if D includes a CRC or if the ECM is capable of detecting errors such as a Reed-Solomon code, and in step 616, if an error is detected, the QR code reader reads the entire application data of all data containers. The QR code reader can then take the parity bits (PB), error detection information (EDM) bits or error correction information (ECM) bits for the remaining applications (i.e., parity bits from other data containers) and use these bits as well as the application data in all data containers to attempt to correct any errors still present in the respective application of interest.

[0102] Please note that after the step of reading the header data (HD), the QR code reader can further apply ECM / EDM to the header only if the header has its own error detection / correction capabilities.

[0103] In addition, in the step of reading all pixels associated with the data container of each application and using the ECM / EDM to detect whether there is an error in the read application data D of each application, the QR code reader can apply the ECM / EDM to the header if the error detection / correction capability is applied not only to each application but also to the concatenation of the header and the application data.

[0104] It should be noted that in the step of reading the header data (HD), in order to ensure that the header data (HD) is read properly, the QR code reader may read multiple copies of the header (if multiple copies of the header are available in the first QR code).

[0105] In another exemplary embodiment of the present invention, a QR code reader can scan and selectively read these encoded data for each application stored in the first QR code (i.e., the master QR code). This can be accomplished by an exemplary method 700 for decoding information for each application of a plurality of applications, the information being stored as encoded data in the first QR code, the encoded data including at least a header and a respective data container for each application. The exemplary method 700, as outlined in FIG. 7, can include at least the following steps: In step 702, identify a first QR code (e.g., from some header data information such as a unique identifier) ​​as being a master QR code, i.e., a QR code that handles multiple applications (e.g., two applications related to Easy Connect and SHS); In step 704, reading a QR code symbol and extracting a bit string from the QR code after error correction, the bit string including data related to multiple applications; In step 706, from the extracted bit string, a portion of the bit string (i.e., a data container), also called a sub-bit string, that is related to the first application is identified, where the location of the sub-bit string (i.e., the data container) is determined from the header data or a pre-configured policy or context (e.g., if two applications Easy Connect and SHS use different semantics, they may agree that a portion of the bit string is for Easy Connect and the other portion is for SHS).

[0106] The implementation of FIG. 7 has the advantage that it requires almost no changes to the QR code standard.

[0107] In another exemplary embodiment of the present invention, a QR code reader can scan and selectively read these encoded data for each application stored in a first QR code (i.e., a master QR code). This can be accomplished by an exemplary method 800 for decoding information for each application of a plurality of applications, the information being stored as encoded data in the first QR code, the encoded data including at least a header and a respective data container for each application. The exemplary method 800, as generally described in FIG. 8, can include at least the following steps: In step 802, a string (e.g., a sequence of characters according to a given encoding) is extracted; In step 804, check whether the QR code contains multiple applications (i.e., two or more applications) by looking at a header (e.g., a single identifier) ​​in the string, e.g., the first N characters in the string; In step 806, if the headers match, a substring containing information about the respective application is accessed.

[0108] This implementation of FIG. 8 has the advantage that no changes are required to the QR code standard.

[0109] To identify a first QR code as a master QR code, i.e., a QR code that handles multiple applications, in one example, a person operating a QR code reader can visually identify the master QR code, for example, by a user-understandable printed pattern (e.g., the letter M) superimposed on the master QR code. In another example, if a person operating a QR code reader does not know which of the multiple QR codes is the correct master QR code and therefore points the QR code reader at multiple of these QR codes to be captured simultaneously, the QR code reader can identify all of these QR codes and determine the presence of a master QR code, for example, by monitoring for a distinctive feature (e.g., a few pixels) that indicates a master QR code, or by reading the header data to identify a single identifier that indicates the presence of multiple applications.

[0110] Figure 9 shows a schematic block diagram 900 of a device 905 capable of encoding information of multiple applications and creating a QR code 910 according to an embodiment of the present invention. The device 905 may be a computing device, for example a computer, that receives information as input from multiple applications and then encodes the information of the multiple applications as described in the above embodiment with reference to Figure 2 to create a first QR code 910, i.e. a QR code capable of handling multiple applications.

[0111] 10 shows a schematic system 1000 for commissioning according to an embodiment of the present invention. The system 1000 includes at least a first device 1005 with which a first QR code 1010 is associated, and a QR code reader 1015 with a camera 1020. A second device 1025 and / or a third device 1055 may also be present. The QR code 1010 can be associated with the first device 1005 by any of a variety of manners, such as by physically attaching the QR code 1010 to the first device 1005 and / or by printing the QR code 1010 on the first device 1005 or on the packaging that the first device 1005 comes in.

[0112] The first device 1005 with which the first QR code 1010 is associated comprises a first communication interface 1030. The camera 1020 of the QR code reader 1015 is used to scan and read the first QR code 1010. Upon decoding the first QR code 1010, the QR code reader 1015 determines, for example based on a local policy or context, an application selected from the first QR code 1010 and a commissioning protocol to run on the first device 1005. In a first alternative, the QR code reader 1015 includes a second communication interface 1035 used to initiate and execute a first commissioning protocol 1040 with the first device 1005, which may interface with a third device 1055, e.g. a Wi-Fi Access Point (AP) or gateway device, i.e. an additional networking device 1055, via a dedicated communication network 1045 or directly between the communication interfaces 1035 and 1060. The dedicated communication network 1045 may be, for example, a local area network (LAN) such as Ethernet, Wi-Fi, Zigbee, etc., or a wide area network (WAN) such as a cellular network or the Internet, or any combination of networks. The first protocol may be a protocol for setting up a (secure) communication between the first device 1005 and the additional networking device 1055. In a second alternative, the QR code reader 1015 triggers a second commissioning protocol 1050, which is identical to or different from the first commissioning protocol, between the first device 1005 and a second device 1025 (the latter may be a server of the cloud service, i.e., an “administrator” device) via a third device 1055 (i.e., an additional network device 1055 including a third communication interface 1060) and a communication network 1045.

[0113] A third alternative can be a kind of combination of the previous two alternatives, where the QR code reader 1015, based on the information in the first QR code 1010, triggers a first commissioning protocol to set up a (secure) communication between the first device 1005 and a third device 1055, which can be for example a Wi-Fi AP or a gateway device, and triggers a second commissioning protocol, identical or different to the first commissioning protocol, to set up a (secure) communication between the first device 1005 and a second device 1025 (the latter can be for example a server of a cloud service, or an “administrator” device) via the third device 1055 and the network 1045.

[0114] 11 shows a commissioning protocol 1100 according to a conventional embodiment between a first device 1110 with a first communication interface 1120 and a second device 1130 with a second communication interface 1140. The first device 1110 can announce its presence by a commissioning message 1150 associated with the commissioning protocol 1100. The second device 1130 initiates the commissioning flow of the commissioning protocol 1100 by returning a message 1160.

[0115] Fig. 12 shows a commissioning protocol 1200 according to an embodiment of the invention between a first device 1210 with a first communication interface 1220 and a second device 1230 with a second communication interface 1240. Unlike the first device 1110 of Fig. 11, the first device 1210 of Fig. 12 is provided with a first QR code 1250. This first QR code 1250 includes commissioning information for two different commissioning protocols that may operate on the same (first) communication interface 1220 of the first device 1210. The first device 1210 can announce its presence and its commissioning capabilities by means of commissioning messages 1260 and 1270 associated with the respective ones of the two commissioning protocols. After decoding the first QR code 1250 affixed to the first device 1210, the second device 1230 initiates the selected one of the two commissioning protocols by returning a message 1280.

[0116] In a device-controlled configuration method, such as the Device Provisioning Protocol (DPP) used in networks using Wi-Fi or IEEE 802.11, a device acting as a DPP configurator can securely configure any Wi-Fi enabled device acting as an enrollee, for example, to connect to a Wi-Fi access point (AP). In the present invention, the first QR code is a master QR code that can store information of multiple applications. In an exemplary embodiment, respective Wi-Fi connections can be established between multiple configurators and a first Wi-Fi enabled device acting as an enrollee and to which the first QR code is attached. Thereby, the first QR code can include the DPP bootstrapping information of the first Wi-Fi enabled device, for example, a public key in an encoded form, and each configurator scans the first QR code of the first Wi-Fi enabled device during the bootstrap process to retrieve the respective public key.

[0117] In DPP, the process starts with two devices 1210, 1230 not connected, and one of the devices is not configured to connect to the Wi-Fi network in question. One device 1230 is used to configure the other device 1210 to join the wireless network, i.e., to connect to a network access point (AP), and can be called the configurator (or commissioner). The second device can be called the enrollee (or commissionee).

[0118] The first phase is "bootstrap", where one device obtains the bootstrap public key (BR) of the other device to configure it. This is by other means than wireless communication technology, so-called "out-of-band" communication (OOB), where the user has one device read a QR code on the second device. If the bootstrap is successful, the device is "bootstrapped", if not, the device returns to a "start" state. Often, simple or so-called headless devices (i.e. devices with little or no user interface) are programmed to start up after power-on or reset, turn on their radio on the channel indicated in the QR code for configuration, and start listening for authentication request messages. (For example, less simple devices such as smartphones or laptops are configured into this mode via their user interface if the user wants it to be configured).

[0119] The devices perform an authentication procedure, which allows them to establish "trust." That is, the user can be confident that the device is who he believes it to be, and that no other unknown (potentially malicious) device is "pretending" to be one of the devices in question or the other devices. A message is sent from one device requesting that authentication be initiated. This message can be sent by either the device doing the configuration (the configurator) or the device being configured (the enrollee). The configurator / commissioner can be connected to a Wi-Fi network, but this is not necessary for the embodiment to work. The device that initiates the wireless communication is called the initiator, and the device that responds is called the responder. In particular, the DPP protocol allows both the configurator and the enrollee device to act as initiators in the DPP protocol, which causes the other device to automatically become a responder. Simple or headless devices usually take on the role of responder.

[0120] The other device responds to this message. If the authentication request message is decoded correctly and contains information indicating that the initiator is the device the user believes it is and has the required capabilities, the response message indicates that the message is "accepted" and contains the information the initiator needs to verify the responder's credentials and also indicates that it has the required capabilities. If the two devices do not receive the required information from the other device, the process aborts and the devices return to the bootstrap state.

[0121] For the DPP protocol, the first message is an authentication request message and the response message is a DPP authentication response. The responder checks that the DPP Authentication Request message contains a correctly generated cryptographic hash of the responder's public bootstrap key and, optionally, a copy of the initiator's public bootstrap key. The responder sends a DPP authentication response message indicating whether it can proceed with the authentication. If not, the process is aborted, for example because an attempt to decrypt the encrypted nonce in the DPP authentication request message fails. The DPP authentication response contains a cryptographic hash of the responder's public bootstrap key and may contain a hash of the initiator's public bootstrap key. Similarly, for the initiator, the enrollee may have obtained this public key by OOB communication. The initiator's public bootstrap key can then be used for mutual authentication. Without the initiator's public bootstrap key, only the initiator can authenticate the enrollee, but not vice versa.

[0122] If the Authentication Response message indicates that the responder has accepted the Authentication Request message, and the response meets the criteria imposed by the initiator's setup, the initiator issues an Authentication Confirmation message. If the authentication values ​​in the Authentication Response and Confirmation messages are found to be correct by the associated device, then this part of the protocol, the authentication part, is successful and setup can begin. The Confirmation message may also contain an indication of the results of a previous setup attempt in which the enrollee was also the initiator.

[0123] In the case of the DPP protocol, the authentication confirm message is a DPP Authentication Confirm message.

[0124] The enrollee device then sends a configuration request message containing information about the type of configuration the enrollee desires. If the configurator is able to grant the request, it sends a message containing the information the enrollee needs, such as a network key, and the process ends with the enrollee's successful configuration.

[0125] In the case of DPP, the request message is a DPP Configuration Request, and the configurator response is a DPP Configuration Response message. The DPP Configuration Response may contain the Service Set Identifier (SSID) of the network to which the enrollee will connect, and may contain a DPP connector. The DPP connector can be considered a certificate digitally signed by the configurator, and contains, among other things, the enrollee's public network access key. The DPP Configurator Response message also contains the configurator's public signing key. Other devices configured by the same configurator can thereby verify whether they can trust the other device's public network access key. The DPP Configuration Response message may also contain the network's Wi-Fi passphrase or pre-shared key (PSK). The enrollee sends a DPP Configuration Result message (depending on the version of DPP) to the configurator to inform it whether it will accept the configuration. Failure of the configurator to receive this message can indicate to the configurator that there was a Wi-Fi problem between the configurator and the enrollee. The "supposedly configured" enrollee can then send its connector to the DPP-configured AP. Connectors If the signature is found to be correct and the AP has a matching Connector, i.e. a Connector for the same network signed by the same configurator, the AP sends its Connector to the Enrollee. The Enrollee and AP can then compute a symmetric key based on each other's Network Access Keys in the Connectors and their own private Network Access Keys in Diffie / Hellman format.

[0126] If the enrollee receives the Wi-Fi password or Wi-Fi Pre Shared key (PSK), the enrollee attempts to associate with the AP in the normal manner through a four-way handshake as specified in the IEEE 802.11 standard. The protocol for configuring or commissioning a device to join an SHS network may include an exchange of keys, and a code is provided to the commissioning device. This code acts as a password and is provided by an out-of-band method. In this example, this passcode may be embedded as part of the QR code of the enrollee device associated with the SHS commissioning application.

[0127] In an exemplary case of the present invention, a device, e.g., a wireless device or a Wi-Fi radio device, is capable of joining a Wi-Fi network by a DPP or SHS network by means of an SHS bootstrap protocol. In this case, the device may have a first QR code as defined in the present invention, which may store information related to the DPP and SHS bootstrap protocols. In an exemplary embodiment, a configurator or commissioner implements (or communicates with) a QR code reader that reads the first QR code attached to the device, which triggers the DPP or SHS bootstrap protocol based on at least one of (1) pre-configuration in the QR code reader, (2) policies available in the QR code reader, and (3) contextual requirements available in the environment in which the device is deployed. Thus, the steps required for this exemplary embodiment include: a) Reading the first QR code; b) determining from the first read QR code the supported applications, in particular the supported commissioning protocols; c) selecting an application (e.g., a preferred application) based on at least one of (1) a pre-configured selection, (2) a policy, (3) a context, and (4) a preference included in the first QR code. For example, the QR code reader may be a QR code reader for DPP-based commissioning and only capable of executing the DPP. For example, the policy may prefer the use of an application if available and may use it if supported (as indicated by the first QR code). For example, the QR code reader may detect whether the context or environment (e.g., home or hospital) in which the device is to be deployed supports only a given application (e.g., supports only a highly secure DPP-based Wi-Fi configuration process), and may make the selection of the application based on this. The detection may be based, for example, on the presence or content of a beacon transmitted by the device. For example, the first QR code may include a field indicating a preferred application selection to the QR code reader depending on the context; d) starting the selected application (e.g., the selected preferred application) as the first selected application. In the case of a commissioning application, the configurator or commissioner must not start the second selected application as long as the first selected application has not been successful or has failed, e.g., the commissioning process associated with the first selected application has not been successful or has failed a minimum number of times N (e.g., N = 1, 2, ...).

[0128] In an exemplary embodiment of the present invention, a first QR code as defined in the present invention (which may be attached to a product or device) may contain information related to two or more applications. A QR code reader that reads it may execute both applications based on a pre-configuration, policy or context. The execution of both applications may be sequential, for example in an order defined by a policy. The execution of one of the applications may be partial (for example, if the second commissioning protocol relies on the first commissioning protocol (DPP) as an intermediate step). An application or each phase of an application may be executed multiple times. As a further example, if the first QR code is attached to a device, for example, a wireless device or a Wi-Fi wireless device, the device may participate in a smart home system (SHS) by relying on (1) the underlying wireless networking technology (e.g., Wi-Fi) and (2) the commissioning protocol of the SHS. In this case, the device may have a first QR code as defined in the present invention that may store information related to the wireless networking technology and bootstrap protocol of the SHS. In an exemplary embodiment, the configurator or commissioner implements (or communicates with) a QR code reader that reads a first QR code attached to the device that triggers the DPP and SHS bootstrap protocols based on at least one of (1) pre-configuration in the QR code reader, (2) policies available in the QR code reader, and (3) context requirements available in the environment in which the device is deployed. Thus, the steps required for this exemplary embodiment are as follows: a) reading a first QR code; b) determining from the first read QR code the supported applications, in particular the supported commissioning protocols; c) selecting an application execution order (e.g., a preferred application execution order) based on at least one of (1) a pre-configured selection, (2) a policy, (3) a context, and (4) a preference included in the first QR code. For example, the QR code reader can be a QR code reader for SHS that is capable of interoperability with a DPP-based Wi-Fi network. For example, the QR code reader can detect whether a context or environment (e.g., home, or hospital) in which the device is to be deployed requires both applications (e.g., a secure DPP-based Wi-Fi configuration process and an SHS configuration process), and can make an application selection based thereon; d) starting the first application: in case of a commissioning application, the configurator or commissioner should not start the second selected application as long as the first selected application has not been successful or failed, at least up to a pre-set target step, e.g. as long as the commissioning process related to the first selected application has not been successful or failed a minimum number of times N (e.g. N=1, 2, ...); e) upon successful execution of the first application (possibly even partial execution, in case the second commissioning protocol may depend on the first commissioning protocol (DPP) as an intermediate step), starting a second application, e.g. in case of a commissioning protocol, a second commissioning protocol, which provides the device with further settings for connecting the device to the network; f) Optionally, depending on step e) and the success (or failure) of the execution of the second application, return to and exit from the first application.

[0129] This exemplary embodiment is illustrated by Fig. 13 showing a commissioning protocol 1300 between a first device 1310 with an affixed first QR code 1330 and a first communication interface 1340, and a second device 1320 with a second communication interface 1350 and a camera 1360 for QR code scanning. The second device 1320 scans the first QR code 1330 and decides, for example based on a policy, to execute with the first device 1310 via the communication interfaces 1350 and 1340 the commissioning steps 1371, 1372, 1373 belonging to the first and second applications available in the first QR code 1330. In an example scenario, step 1371 may refer to a first commissioning protocol, step 1372 may refer to a second commissioning protocol when step 1371 reaches a certain stage, and step 1373 may refer back to the first commissioning protocol depending on the successful (or unsuccessful) execution of step 1372 to continue execution of step 1371.

[0130] In the present invention, if a device, e.g. a Wi-Fi product, has a first QR code attached which contains two applications, e.g. a DPP application and an SHS application, the commissioning device can also choose to use Wi-Fi Easy Connect for Wi-Fi commissioning, and the SHS protocol for connecting the device with the first QR code attached to cloud services and all other higher level services.

[0131] In the present invention, if a device, e.g., a Wi-Fi product, has a first QR code attached that includes two applications, e.g., a DPP application and an SHS application, the device with the first QR code attached will need to react to a request from a configurator (e.g., DPP) or commissioner (e.g., Matter) in response to reading the first QR code. When the device receives a first request for the first application identified in the first QR code, the device should not accept a subsequent request for the second application included in the first QR code unless the first application has finished.

[0132] In the present invention, if a device supports a given application, the first QR code attached to the device and containing information about the application may indicate whether the information is broadcast (whether in the clear or not). For example, some fields cannot be broadcast for privacy reasons (a string of 0 bits is broadcast instead), which may prevent the commissioner (triggered by the first QR reader) from selecting a commissioning message from the correct device, e.g. a message containing the correct device's Service Set Identifier (SSID), when the device enters a given configuration state, e.g. by becoming a soft access point (softAP). Alternatively, the first QR code may contain a random bit mask, e.g. a unique random bit mask for each device, that is used to XOR (encrypt) some of the fields contained in the first QR code, e.g. before being included in the beacon or broadcast as part of the device's SSID. Then the device reading this information, e.g. the random bit mask, from the QR code knows how to decode the information contained in the radio beacon received from the device.

[0133] In summary, the invention relates to a multi-application QR code, represented by a first or master QR code, capable of storing information of multiple applications such that the respective information can be read for each application in a reliable and time-efficient manner. The information is encoded in encoded data comprising at least a header (e.g. a single identifier) ​​and a respective data container for each application (e.g. a part of a bit string or a sub-bit string in a complete bit string). The header may comprise at least one identifier indicating the presence of multiple applications and a respective application identifier for each application. A respective error correction mechanism may be included in each data container for each application. The encoded data is stored distributed in a number of data pixels distributed over the coding area of ​​the first / master QR code according to an allocation rule. A QR code reader can read the information stored in the QR code only by accessing and processing the data pixels related to the respective application of interest and by using error correction specific to this respective application.

[0134] Although the present invention has been illustrated and described in detail in the drawings and the foregoing description, such illustrations and descriptions should be considered as exemplary or explanatory and not restrictive. Furthermore, the present invention can be applied to any product that implements a network interface (e.g., Wi-Fi, Bluetooth Low Energy or other type) or a commissioning protocol (e.g., Wi-Fi Easy Connect, or a smart home system such as Matter). The QR code reader can communicate directly by using the same network interface implemented by the product, or can communicate with the product indirectly, for example through an access point (AP) or gateway.

[0135] Similarly, the system 1400 for reading and processing with a single scan of a QR code according to an embodiment of the present invention can include a personal data app (such as one used on a mobile phone) that is used by a user to request, store, and display personal data related to a single person or multiple people. Examples of such data can be reports regarding vaccinations, infection tests, or certificates indicating recovery from a particular infection.

[0136] FIG. 14 shows a system 1400 including at least a personal report encoded by a QR code 1410 displayed by a personal data app (1431) running on a mobile QR code reader 1420 (e.g. a mobile phone). The QR code 1410 can be scanned by the QR code reader 1420 equipped with a camera 1430. A first management entity 1440 is in charge of delivering a personal report, e.g. a report on a person's status regarding a disease, upon identification / authentication of a person given some identification qualification. This management entity may also manage some private key material, e.g. a private key, to sign the personal report. Optionally, a second management entity 1450 is in charge of verifying the personal report, e.g. by checking the digital signature of the personal report or by matching multiple reports with a policy. The second management entity 1450 and the personal data app 1431 interact to deliver the personal report from the first management entity 1440 to the personal data app 1431. The personal data app 1431 can be implemented as part of the second management entity 1450 within the QR code reader 1420, or the QR code reader 1420 can forward the retrieved personal report to the management entity 1450 for verification.

[0137] Personal data associated with a single person or multiple persons can be encoded by a multi-application QR code and stored in the mobile app.

[0138] If the personal data concerns data of an official nature, such as the aforementioned vaccination / recovery / testing reports, an administrative entity may be entrusted with the task of creating a personal data record of the person in question, upon identification / authentication of the person using some identification information, i.e., an identification information corresponding to the first administrative entity 1440. This administrative entity 1440 may also manage some private key material, e.g., a private key, to sign the personal data report. In such a case, there may be a second administrative entity (i.e., the second administrative entity 1450 mentioned above) in charge of validating the personal data report, for example, by checking a digital signature on the report or by checking multiple reports against a policy.

[0139] Personnel acting on behalf of the second administrative entity 1450 may use the QR code reader 1420 (e.g., acting as a mobile app used to read the personal data report 1410 and to enforce policies based on the results of the reading of the personal data report). Such policies may include, but are not limited to, formal policies such as restrictions on access or passage.

[0140] QR codes containing personal data reports associated with a single person may contain a collective signature that allows a QR code reader (or a validating entity that retrieves and verifies the data read from the QR code by the QR code reader) to check that all the personal data reports are linked together.

[0141] To achieve this, each personal data report needs to be contained in a different data container as described above, and furthermore a generic signature is included, for example in the last data container or as part of the header.

[0142] A QR code containing personal data reports associated with multiple persons may contain a collective signature that allows a QR code reader (or a personal data verification entity that retrieves and verifies the data read from the QR code by the QR code reader) to check that all the personal data reports are linked together.

[0143] To achieve this, multiple users can identify / authenticate themselves through the same personal data app, for example by using their official credentials. Each time a user identifies / authenticates themselves in the same app, a new QR code is created containing the personal data reports of all users identified / authenticated so far in that personal data app. Each personal data report is contained in a different data container. A joint signature, generated by the certification authority responsible for certifying the Covid 19 (vaccination / recovery / testing) reports, can be included, appended for example, in the last data container, making it possible to verify that all personal data reports in the QR code can be read together, for example belonging to a group of people living together.

[0144] If the QR code contains a personal data report for domestic or international travel, the QR code reader can automatically select a preferred application based on the context, e.g., based on location. The QR code can, for example, contain the home country in the header. The QR code reader can then select a specific data container (i.e., a personal data report for use in a specific region) based on the location of the QR code reader.

[0145] If the QR code contains multiple personal data reports linked to regular vaccination inoculations, the QR code reader can only accept the personal data reports if they are new (issued within a given period of time) and if the personal data reports meet a policy deployed by the second governing entity. Examples of such policies could state, for example, that most vaccinations have been administered within the last X months (e.g., the last 3 months), or that no one in a (family) group should be allowed in if one of the members does not have a positive recovery report.

[0146] If a QR code contains personal data reports related to multiple people, e.g., family members, then those family members are expected to jointly verify their identity by showing their identity using a single QR code. Thus, a multi-application QR code containing personal data reports associated with multiple people can only be accepted by a QR code reader based on complex policies, e.g.:

[0147] And a multi-application QR code can only be accepted by a QR code reader if at least two people are present with valid IDs.

[0148] Processing the personal data of a group in a group manner offers significant advantages. First, a great deal of time and trouble is saved when personnel of a second management entity are reading and checking the personal data reports. These personnel are often under pressure to process people quickly, and often the physical layout of the space can make this tricky. With a single read and check operation, the entire group can be checked and allowed to proceed (or not), which is much faster and less prone to error than if each QR code had to be processed individually. Furthermore, processing according to this embodiment makes it more difficult to exploit the personal data reports, in that there is a second level of authentication, i.e. authentication of the individual containers and authentication of the entire QR code.

[0149] Other variations to the disclosed embodiments can be understood and effected by those skilled in the art in practicing the claimed invention, from a study of the drawings, the disclosure and the appended claims. In the claims, the word "comprising" does not exclude other elements or steps, and the indefinite articles "a" or "an" do not exclude a plurality. A single processor or other unit may fulfill the functions of several items recited in the claims. The mere fact that certain measures are recited in mutually different dependent claims does not indicate that a combination of these measures cannot be used to advantage.

[0150] The above description details a specific embodiment of the present invention. However, no matter how detailed the above is in the text, it will be understood that the present invention can be implemented in many aspects and is therefore not limited to the disclosed embodiment. It should be noted that the use of a specific term in describing a particular feature or aspect of the present invention does not mean that the term is redefined herein to be limited to include the specific feature of the feature or aspect of the present invention to which the term is related.

[0151] A single unit or device may fulfill the functions of several items recited in the claims. The mere fact that certain measures are recited in mutually different dependent claims does not indicate that a combination of these measures cannot be used to advantage.

[0152] The described operations can be implemented as program code means of a computer program and / or as dedicated hardware. The computer program can be stored and / or distributed on a suitable medium, such as an optical storage medium or a solid-state medium, provided together with or as part of other hardware, but can also be distributed in other forms, such as over the Internet or other wired or wireless telecommunications systems.

[0153] Reference materials: [DPP] Device Provisioning Protocol - Technical Specification - Version 2.0, Wi-Fi Alliance, 2020,(https: / / www.wi-fi.org / downloads-public / Wi-Fi_Easy_Connect_Specification_v2.0.pdf / 35330) [ISO 18004] ISO / IEC 18004:2015: Information technology - Automatic identification and data capture techniques: "QR Code bar code symbology specification"

Claims

1. 1. A method of encoding information for multiple applications for storage in a QR code, comprising: collecting the information for the plurality of applications; encoding the information into encoded data, the encoded data including at least a header and a respective data container for each application; The method, wherein the header includes at least a single identifier indicating the presence of the plurality of applications and a respective application identifier for each application.

2. The method of claim 1 , wherein a respective error correction mechanism and / or error detection mechanism is used for each data container per application in the encoded data of the respective data container per application.

3. said step of encoding information into encoded data further comprising: converting the input data stream of information into a respective input bit string for each application; dividing each of the input bit strings for each application into a sequence of one or more data code words; dividing said sequence of one or more codewords into a predetermined number of blocks; generating one or more error-correcting codewords for each block; including said error correction codeword in said sequence of data codewords; The method according to claim 1 or 2, comprising at least

4. said step of encoding information into encoded data further comprising: obtaining a respective data stream from said header for each application; combining the respective data streams into a combined respective data stream; converting each of the combined data streams into a respective input bit stream; dividing each of the input bit strings for each application into a sequence of one or more data code words; dividing said sequence of one or more codewords into a predetermined number of blocks; generating one or more error-correcting codewords for each block; including said error correction codeword in said sequence of data codewords; The method according to claim 1 or 2, comprising at least

5. 3. The method according to claim 1, further comprising the step of storing part or all of the encoded data in a distributed manner in a plurality of data pixels distributed over the encoding area of ​​the QR code.

6. 3. A method according to claim 1 or 2, wherein data adapted for use with a respective error correction mechanism for each application is included in each data container for each application.

7. The encoded data is data configured to be used by a global error detection mechanism shared by all of the applications to detect whether errors are present in the respective data container based on codewords in the other data containers; and / or data configured to be used by a global error correction scheme shared by all of the applications of the plurality of applications to correct errors in the respective data containers based on codewords in other data containers; 3. The method of claim 1 or 2, comprising:

8. collecting image data from a graphical representation physically superimposed on said QR code; including in the header of the encoded data an indication of the presence of the graphical representation and an indication of the area occupied by the graphical representation on the QR code; and 6. The method of claim 5, wherein the data pixels of the encoding area of ​​the QR code that occupy an area in the QR code that coincides with an area occupied by the graphical representation are excluded from storing part or all of the encoded data.

9. The method of claim 1 or 2, wherein the QR code includes DPP bootstrap information for storing at least public key information.

10. 1. A method for decoding information for each of a plurality of applications in a QR code, the information being stored as encoded data in the QR code, the encoded data including at least a header and a respective data container for each application, the method comprising: reading a header of the QR code, the header including at least a single identifier indicating the presence of the plurality of applications and a respective application identifier for each application; identifying the QR code from the header using the single identifier indicating the presence of the multiple applications; identifying the respective applications from the header; identifying a respective data container associated with each of said applications; A method having the following.

11. reading all pixels associated with the data container of each of the applications to read at least one data code word associated with each of the applications and parity bits, error detection bits or error correction bits for all of the applications; obtaining error-free application data for each of the applications; The method of claim 10 further comprising:

12. The information encodes commissioning information for a communication protocol, and the method comprises:

12. The method of claim 10 or 11, wherein a first commissioning protocol is selected based on at least one of a preset value, a policy, a context and a portion of data in the QR code.

13. A device for encoding information of multiple applications for storage in a QR code, the device being adapted to perform the method of claim 1 or 2.

14. 12. An apparatus for decoding information of each application of a plurality of applications in a QR code, the information being stored in the QR code as encoded data, the encoded data including at least a header and a respective data container for each application, the apparatus being adapted to perform the method of claim 10 or 11.

15. 15. The device of claim 14, comprising a camera and a first communication interface; a QR code having a plurality of containers associated with respective personal data reports of respective persons, each of said persons belonging to a group; a second device having a second communication interface, the second device having a data file associated with the data report for each of the persons; A system comprising: the device is adapted to interface with the second device; The system, wherein the appliance and the second device are configured to initiate and execute a verification protocol, the verification protocol reading and decoding the QR code, reading the data file, comparing the contents of the data file with data obtained from decoding a plurality of containers, and providing a verification response.

16. A computer program which, when run on a computer, causes the computer to carry out the method according to claim 1 or 2.

17. A computer program which, when run on a computer, causes the computer to carry out the method according to claim 10 or 11.