WO2018002944A1 - Converting binary data to images - Google Patents
Converting binary data to images Download PDFInfo
- Publication number
- WO2018002944A1 WO2018002944A1 PCT/IN2016/050215 IN2016050215W WO2018002944A1 WO 2018002944 A1 WO2018002944 A1 WO 2018002944A1 IN 2016050215 W IN2016050215 W IN 2016050215W WO 2018002944 A1 WO2018002944 A1 WO 2018002944A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- binary data
- bits
- image
- bit sequence
- module
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K19/00—Record carriers for use with machines and with at least a part designed to carry digital markings
- G06K19/06—Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
- G06K19/06009—Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code with optically detectable marking
- G06K19/06037—Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code with optically detectable marking multi-dimensional coding
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K19/00—Record carriers for use with machines and with at least a part designed to carry digital markings
- G06K19/06—Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K19/00—Record carriers for use with machines and with at least a part designed to carry digital markings
- G06K19/06—Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
- G06K19/06009—Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code with optically detectable marking
- G06K19/06046—Constructional details
- G06K19/0614—Constructional details the marking being selective to wavelength, e.g. color barcode or barcodes only visible under UV or IR
Definitions
- a user On purchase of an electronic device, such as a printer, laptop, scanner, or tablet, a user is generally provided with a Compact Disk (CD) or any other computer readable medium, such as a flash drive, along with the electronic device.
- the CD or the computer readable medium is generally provided by the manufacturer of the electronic device.
- the CD or the computer readable medium contains configuration files in form of an executable code that may be utilized by the user to configure the electronic device accordingly.
- the user may use a CD drive or a similar reader of the electronic device to read the CD or the computer readable medium and execute the executable code to configure the electronic device.
- the CD or the computer readable medium may also contain media files, such as videos, songs, and other multimedia content.
- a CD may include a media file having instructions and demonstrations of how to configure the electronic device or may include any general content. The media file is read by an appropriate reader to retrieve contents thereof.
- FIG. 1 is a schematic representation of a data conversion system, in accordance with an implementation of the present subject matter
- FIG. 2 is another schematic representation of the data conversion system, according to an implementation of the present subject matter
- FIG. 3 illustrates an example of converting binary data into an image, according to an implementation of the present subject matter
- FIG. 4 is a schematic representation of the image conversion system, according to an implementation of the present subject matter
- FIG. 5 illustrates an example method for converting binary data into an image, according to an implementation of the present subject matter
- FIG. 6 illustrates another example method for converting binary data into an image, according to an implementation of the present subject matter
- Fig. 7 illustrates an example method for converting an image into binary data, according to an implementation of the present subject matter.
- FIG. 8 illustrates an example computing environment, implementing a non-transitory computer-readable medium storing instructions for executing an operation for converting an image into binary data, according to an implementation of the present subject matter.
- executable codes or media files are distributed to users by encoding the executable codes or the media files on a computer readable medium (CRM), such as a Compact Disc (CD) and a pen drive and providing the CRM to the users.
- CRM computer readable medium
- the users may utilize a drive, such as a CD drive or a Universal Serial Bus (USB) drive to read binary data stored on the CRM and execute the corresponding executable code to configure a device or access the media files.
- a drive such as a CD drive or a Universal Serial Bus (USB) drive to read binary data stored on the CRM and execute the corresponding executable code to configure a device or access the media files.
- USB Universal Serial Bus
- the executable code or the media file may be made available on websites that users of such electronic devices can access through internet.
- a network connection is utilized to access the websites and a cost associated with downloading the executable code or the media file is incurred.
- the users may be unable or reluctant to access the websites to download the executable code or the media files from such websites. Consequently, the users may often face inconvenience in configuring their electronic devices or in accessing media files using generally known techniques.
- the techniques for converting binary data to images for making the binary data accessible to users are described.
- the techniques facilitate configuration of a device and access to media files by retrieving the binary data from the images in a convenient manner.
- the binary data corresponds to the executable codes or media files that are to be made available to the users.
- the techniques for converting binary data, i.e., a sequence of bits O's and s that represent the executable code or the media files, into images include performing error detection encoding on the binary data to obtain encoded binary data.
- the error detection encoding provides for detection and correction of any errors that may occur in the process of conversion of the binary data into images.
- each tuple includes equal number of bits, such as 'n' number of bits, where 'n' is an integer.
- Each tuple is further divided into multiple sub-groups of bits, referred to as bit sequences, by dividing the 'n' bits in a tuple, by an integer 'x', where the integer 'n' is a multiple of the integer 'x'. Accordingly, each bit sequence includes 'n/x' number of bits.
- the binary data may include a sequence having 72 bits.
- the binary data may be divided into 3 tuples, each having 24 bits. Further, each tuple including 24 bits may be divided into 8 bit sequences where each bit sequence may include 24/8 or 3 bits.
- bit sequence '011 ' is associated with black
- bit sequence '100' is associated with grey
- bit sequence '1 1 1 ' is associated with white and so on.
- a distinct colour is associated with each combination of the 'n/x' bits in the bit sequences. Referring to the example above where there are 3 bits in each of the bit sequences, a distinct colour is associated with each of the 8 unique combination of the 3 bits. In a scenario, where more than 8 colours are to be used, then accordingly more number of bits may be accommodated in a bit sequence, as the number of colours used is equal to 2 n/x .
- an image corresponding to each tuple is generated.
- the image may be in form of a square, a rectangle, a circle or any other geometric or non-geometric figure.
- the image includes multiple regions or unique area within the image, referred to as sectors, hereinafter.
- the number of sectors within the image is equivalent to the number of bit sequences in a tuple.
- Each sector in the image corresponds to a bit sequence of the tuple and includes the colour associated with the bit sequence. For example, as described earlier, each image corresponds to a tuple, and in each tuple there are 'n' number of bits.
- the 'n' number of bits are divided into 'x' number of bit sequences, where each bit sequence includes 'n/x' number of bits. Therefore, the image including 'x' number of sectors has each sector including a colour from 2 n/x number of colours.
- an image having 8 sectors is generated corresponding to each of the 3 tuples. Each of the 8 sectors of the 3 tuples are associated with a bit sequence and have a colour associated with the corresponding bit sequence.
- FIG. 1 schematically illustrates a Data Conversion System (DCS) 102 implemented to convert binary data, i.e., a sequence of bits O's and s, representative of the executable code or the media file into images, according to an implementation of the present subject matter.
- the executable code may be executed for installing a driver of a device, such as a printer, a tablet, and a scanner, or may be a media file that may include Motion Pictures Expert Group (MPEG) Audio Layer 3 (.mp3) or Waveform Audio File Format (.wav) based content.
- MPEG Motion Pictures Expert Group
- Audio Layer 3 .mp3
- Waveform Audio File Format .wav
- the DCS 102 may include a processor 104 and module(s) 106.
- the processor 104 may be implemented as microprocessors, microcomputers, microcontrollers, digital signal processors, central processing units, state machines, logic circuitries, and/or any devices that manipulate signals based on operational instructions.
- the processor 104 may fetch and execute computer-readable instructions stored in a memory.
- the functions of the various elements shown in the figure, including any functional blocks labeled as "processor(s)" may be provided through the use of dedicated hardware as well as hardware capable of executing machine readable instructions.
- the module(s) 106 may be coupled to the processor 104 and include routines, programs, objects, components, data structures, and the like, which perform particular tasks or implement particular abstract data types.
- the module(s) 106 may further include modules that supplement functioning of the DCS 102, for example, services of an operating system. Further, the module(s) 106 can be implemented as hardware units, or may be implemented as instructions executed by a processing unit, or by a combination thereof.
- the module(s) 106 may be machine-readable instructions which, when executed by the processor 104, may perform any of the described functionalities.
- the machine-readable instructions may be stored on an electronic memory device, hard disk, optical disk or other machine-readable storage medium or non-transitory medium.
- the machine-readable instructions can also be downloaded to the storage medium via a network connection.
- the module(s) 106 may include, a compression module 108, an error detection module 1 10, a segmenting module 1 12, an image generation module 1 14, and a printing module 1 16.
- the DCS 102 may be implemented as a printing system, such as a printer or printer and scanner system.
- the modules 106 may be implemented within the printing system and the printing module 1 16 may be implemented to print content, such as images and text on a printable medium.
- the printing module 1 16 of the DCS 102 may interact with an external printing system (not shown in the figure) through the interface 200 to print the content on the printable medium.
- the compression module 108 performs compression of the binary data, to obtain compressed binary data.
- the compressed binary data may have reduced size than the original binary data.
- the compressed binary data is encoded by the error detection module 1 10 data to obtain encoded binary data. Encoding the binary data provides for error detection and correction subsequently during decoding of the encoded binary data.
- the segmenting module 1 12 fragments the encoded binary data into multiple tuples. Each tuple includes 'n' number of bits where 'n' is an integer. The segmenting module 1 12 further segments each tuple by an integer 'x' to form multiple bit sequences. Each bit sequence includes equal number of bits, i.e., 'n/x' number of bits, given that 'n' is a multiple of 'x'.
- the image generation module 1 14 generates an image file including multiple images.
- An image in the image file corresponds to a tuple of the binary data and includes 'x' number of sectors, such that each of the 'x' sectors corresponds to a bit sequence in the tuple.
- Each of the 'x' sectors includes a colour associated with the corresponding bit sequence in the tuple.
- the printing module 1 16 prints the image file on a printable medium for making the binary data accessible to the users.
- the DCS 102 may include, apart from the processor 104 and module(s) 106, interface(s) 200, a memory 202, and data 204.
- the interface(s) 200 coupled to the processor 104, may include a variety of machine readable instructions-based interfaces and hardware interfaces that allow the DCS 102 to interact with different entities.
- the interface(s) 200 may facilitate multiple communications within a wide variety of networks and protocol types, including wireless networks, wireless Local Area Network (WLAN), Radio Access Network (RAN), satellite-based network, etc.
- the memory 202 may be coupled to the processor 104 and may, among other capabilities, provide data and instructions for generating different requests.
- the memory 202 can include any computer-readable medium known in the art including, for example, volatile memory, such as static random access memory (SRAM) and dynamic random access memory (DRAM), and/or nonvolatile memory, such as Read only Memory (ROM), erasable programmable ROM, flash memories, hard disks, optical disks, and magnetic tapes.
- volatile memory such as static random access memory (SRAM) and dynamic random access memory (DRAM)
- nonvolatile memory such as Read only Memory (ROM), erasable programmable ROM, flash memories, hard disks, optical disks, and magnetic tapes.
- the module(s) 106 also include an encryption module 206, and other module(s) 208 apart from the previously mentioned compression module 108, error detection encoding module 1 10, segmenting module 1 12, and image generation module 1 14.
- the encryption module 206 and the other module(s) 208 may be coupled to and/or be executable by the processor 104, and may include, amongst other things, routines, programs, objects, components, data structures, and the like, which perform particular tasks or implement particular abstract data types.
- the other module(s) 208 may include programs or coded instructions that supplement applications and functions, for example, programs in the operating system, of the DCS 102.
- the compression module 108 performs compression of the binary data, provided in an input file, to obtain compressed binary data.
- the compression module 108 may compress the binary data by utilizing a loss-less compression technique, such as Lempel-Ziv (LZ) compression technique, Deflate compression technique, Hoffman compression technique, and run-length compression technique.
- LZ Lempel-Ziv
- the compressed binary data has reduced size than the original binary data.
- the encryption module 206 encrypts the compressed binary data by utilizing an encryption key 212 that may be stored in the data 204.
- the encryption module 206 may utilize an encryption technique, such as Data Encryption Standard (DES) algorithm or Blowfish algorithm, to encrypt the compressed binary data.
- DES Data Encryption Standard
- the encryption key 212 may be represented as 'x[k]' and may include 'k' number of bits, where 'k' is an integer.
- the encryption module 206 may select 'k' number of bits from the compressed binary data and perform a logic operation, for instance, an exclusive OR operation, on the 'k' bits of the compressed binary data and the 'k' bits of the encryption key 212.
- the 'k' bits of the compressed binary data may be represented as 'r[k] ⁇
- encryption module 206 performs encryption for all the bits or any portion of the compressed binary data to obtain the encrypted binary data.
- the compressed binary data is encrypted to secure the binary data and prevent decoding of the encrypted binary data by an unauthorized user who does not have access to a corresponding decryption key.
- the error detection encoding module 1 10 encodes the encrypted binary data by utilizing, for example, a block coding or a convolution coding technique.
- block coding and convolution coding technique include hamming code, cyclic code, Bose Chaudhuri and Hocquenghem (BCH) code, and Golay code for encoding the compressed binary data for error detection.
- the error detection encoding module 1 10 may utilize y number of bits of the encrypted binary data as a single block for block coding, and generate 'p' number of redundant bits for error correction.
- the error detection encoding module 1 10 encodes the encrypted binary data to allow detection and correction of any error subsequently during decoding of the encoded binary data.
- the error may be due to improper reading of the image due to several reasons, such as fainted image, incorrect reading by a scanner, scanning issues, and paper folding.
- segmenting module 1 12 and the image generation module 1 14 operate to convert the encrypted binary data into images.
- An image file created corresponding to the binary data is printed by the printing module 1 16.
- the functioning of the segmenting module 1 12, the image generation module 1 14 and the printing module 1 16 to generate the image file has been explained with reference to an example illustrated in Fig.3.
- the segmenting module 1 12 clusters the encoded binary data into multiple tuples where each tuple includes 'n' number of bits.
- An example tuple 302 comprising 24 bits, i.e., 010-01 1 -000-001 -000-010-001 -01 1 , is illustrated in Fig. 3. Needless to mention, the tuple 302 is one from amongst the multiple tuples that comprise the encoded binary data.
- the encoded binary data may have number of bits that is either less than or more than multiple of ' ⁇ ', such that a tuple from amongst the multiple tuples may have number of bits less than ' ⁇ '.
- few bits, such as O's are padded at the end of the tuple to make the number of bits in the tuple equal to ' ⁇ '.
- the binary data is included with an indication, such as a tag, to mark end of the actual bits and the indication is retained throughout the process of converting binary data to images and the images back to the binary data. Thereafter, during conversion of the images to binary data during decoding, the indication is detected to identify end of actual bits and to exclude all the bits after the indication.
- the segmenting module 1 12 segments the tuple 302 into multiple bit sequences, where each bit sequence includes 'x' bits.
- sub-groups of three bits such as, 010, 01 1 ...01 1 of the tuple 302 represent the bit sequences.
- the number of bits to be included within the tuple and the bit sequences may be stored as other data 214 in the data 204.
- the segmenting module 1 12 clusters the y number of bits as given in eq. 2 into a set of tuples and the 'p' number of redundant bits into another set of tuples.
- the predefined bit sequence to colour mapping 304 is stored as colour mapping data 210 in the data 204 and includes a mapping of a bit sequence with a corresponding colour.
- An example predefined bit sequence to colour mapping 304 is given as:
- each bit sequence is associated with a distinct colour.
- the bit sequence ⁇ ' is associated with white
- the bit sequence '001 ' is associated with black and so on.
- the colours in the predefined bit sequence to colour mapping may correspond to different shades of a grayscale, where each shade has a colour intensity. Accordingly, each shade from amongst the different shades may be associated with a bit sequence. During decoding, the colour intensities of the shades may be detected to determine bit sequence corresponding to the shades.
- the image generation module 1 14 determines a colour for each bit sequence in the tuple 302 and generates an image 306-1 .
- the image 306-1 may be, for example, a square, a rectangle, a circle and any other geometric or non-geometric figure.
- the image 306-1 includes multiple sectors where each sector represents a unique area within the image 306-1 .
- the image generation module 1 14 generates the image 306-1 such that each sector within the image 306-1 corresponds to a bit sequence and includes the colour associated with the bit sequence.
- sector 1 in the image 306-1 corresponds to the bit sequence 010 and includes the colour white associated with the bit sequence 010 in the predefined bit sequence to colour mapping 304
- sector 2 corresponds to the bit sequence 01 1 and includes black, and so on.
- the image generation module 1 14 generates multiple images 306-2, 306-3...306-6 corresponding to multiple tuples of the encoded binary data and collate the multiple images to obtain the image file 308.
- the image file 308 includes the images 306-1 , 306-2, ...306-6 that are arranged in rows and columns.
- Fig.3 illustrates the images 306-1 , ... 306-6 with sectors having colours black, and white, other colours may also be included in the sectors of the images without deviating from the scope of the present subject matter.
- the image generation module 1 14 generates images for the set of tuples corresponding to y number of bits of the encrypted binary data and images for the other set of tuples corresponding to the 'p' number of redundant bits.
- the 'p' number of redundant bits are added bits for error correction and may not correspond to the binary data. Therefore, in a scenario, the image file 308 generated by the image generation module 1 14 may include the images that correspond to the 'p' number of redundant bits.
- the printing module 1 16 provides for printing the image file 308 on a printable medium, such as a paper.
- the printing module 1 16 may print the image file on the printable medium or send a print instruction to the external printing system to print the image file 308 on the printable medium.
- the image file 308 may be large in size and therefore may be printed on multiple sheets of paper.
- the printing module 1 16 may print the images corresponding to 'p' number of redundant bits at a different location from the images corresponding to the y bits of the encrypted binary data on the printable medium such that an image conversion system subsequently converting the image file into binary data may identify the images corresponding to the redundant bits and exclude the images for conversion to binary data.
- the printable medium may then be provided to the users for them to access the binary data by performing a decoding operation, described subsequently, that retrieves the encoded binary data from the image file 308.
- the number of bits in a tuple and in a bit sequence may be varied based on number of bits to be represented by one image.
- the number of bits in an image and in turn the number of bits in a tuple and in a bit sequence may be based on various factors.
- the number of bits in an image may be based on resolution of a scanner that is to scan the image, such that the scanner retrieves the binary data from the image without any error.
- the number of bits in an image may be based on resolution of a scanner that is to scan the image, such that the scanner retrieves the binary data from the image without any error.
- more number of bits can be included per bit sequence compared to a case where the resolution of the scanner is low.
- number of colours a printing device is efficiently prints may be a determining factor.
- Fig. 4 schematically illustrates an Image Conversion System (ICS) 400, according to an implementation of the present subject matter.
- the ICS 400 may include, a decoder processor 402, decoder interface 404, decoder memory 406 and decoder module(s) 408.
- the decoder processor 402, decoder interface 404, and decoder memory 406 are similar to the processor 104, interface 200, and memory 202, respectively and may be implemented in a similar manner.
- the ICS 400 may include decoder module(s) 408, and decoder data 410.
- the decoder module(s) 408 include routines, programs, objects, components, data structures, and the like, which perform particular tasks or implement particular abstract data types.
- the decoder module(s) 408 may further include modules that supplement functioning of the ICS 400, for example, services of an operating system.
- the decoder module(s) 408, alike the modules 106, can be implemented as hardware units, or may be implemented as instructions executed by a decoder processor 402, or by a combination thereof.
- the decoder module(s) 408 include, a scanning module 412, a data generation module 414, an error detection module 416, a decryption module 418, a decompression module 420, and other decoder module(s) 422.
- the ICS 400 may be implemented as a scanning system, such as a scanner or a camera.
- the decoder modules 408 may be implemented within the scanning system and the scanning module 412 may be implemented to scan images printed on a printable medium or displayed on a screen of a device.
- the scanning module 412 may interact with an external scanning system through the decoder interface 404 for scanning the images.
- the scanning module 412 provides for scanning of the image file to capture multiple images within the image file. For instance, the scanning module 412 may scan the multiple images within the image file or send a scan instruction to the external scanning system to scan the multiple images. As explained previously, image files may be printed on multiple sheets of papers, such as the above described image file 308 including the images 306-1 , ....306-6. The scanning module 412 operates to scan the images present in image file 308, for instance by scanning each row and/or column of the image file 308. [0058] The scanning module 412 may have a resolution of scanning that determines clarity of the images captured by the scanning module 412 from the image file printed on the printable medium.
- a higher resolution corresponds to more clarity in capturing smaller and complex images than a lower resolution.
- the scanning module 412 with higher resolution of scanning may capture smaller images with clarity.
- more images may be accommodated on a single paper thereby compacting the image file and allowing more binary data to be printed on the printable medium.
- a printed sheet of the image file 308 may include 50 images in a line and there may be 100 lines.
- Mbits Megabits
- the sectors of an image in the later example have smaller size as compared to that of the former.
- the size of the image and number of sectors within an image dictates a minimum resolution of scanning that the scanning module 412 is to have for scanning the images effectively.
- the resolution of scanning of the scanning module 412 may be stored as other decoder data 428 in the decoder data 410.
- each image includes 'x' number of sectors, where 'x' is an integer.
- a sector is a unique area within the image and includes a colour.
- the data generation module 414 traverses each sector of the image in a predefined sequence to obtain bit sequences corresponding to the sectors.
- the data generation module 414 determines a bit sequence for each of the sectors based on the predefined bit sequence to colour mapping 304.
- the predefined bit sequence to colour mapping 304 includes mapping of each bit sequence and a corresponding colour and is stored as bit mapping data 424 in the decoder data 410.
- the bit sequences so obtained for the sectors of the image correspond to a tuple of bits.
- the binary data so generated may be encoded, encrypted, and compressed and therefore the binary data may have to be decoded, decrypted, and decompressed to obtain original binary data.
- the error detection module 416 detects any error in the binary data.
- the error detection module 416 may utilize a decoding technique corresponding to an encoding technique utilized by the error detection encoding module 1 10 for encoding the binary data for error detection.
- the error detection module 416 may utilize one of the hamming code, the cyclic code, the BCH code, and the Golay code for error detection and correction.
- the error detection module 416 utilizes the T resultant bits that includes y number of bits as a single block and the redundant bits 'p' and applies a block decoding to detect and correct errors in the y bits.
- the error detection module 416 if an error in the binary data is detected and is not resolved by the error detection module 416, the error detection module 416 generates a signal for a user. The user may then rescan the image file to regenerate the binary data or verify issues related to scanning, such as improper placement of the image file for scanning.
- the decryption module 418 decrypts the binary data by utilizing a decryption key 426 that may be stored in the decoder data 410.
- the decryption module 418 performs the logic operation, for example, as described in reference to eq(1 ) above, an exclusive OR, to 'k' bits of the binary data and 'k' bits of the decryption key 426 to obtain 'k' bits of binary data in decrypted form. Accordingly, the decryption module 418 decrypts all the bits or any portion of the bits to obtain binary data in the decrypted form.
- the decompression module 420 performs decompression of the binary data by implementing a technique corresponding to the technique used for compression of the binary data. For instance, the decompression module 420 utilizes one of Lempel-Ziv (LZ) technique, a Deflate technique, a Hoffman technique, and a run-length technique to decompress the binary data.
- LZ Lempel-Ziv
- the binary data so obtained is the binary data that was utilized for encoding by the DCS 102 to obtain the image file 308 and corresponds to the executable code or the media files.
- the ICS 400 generates the binary data from the images in an efficient manner thereby allowing the user to execute the executable code for configuring the device or access the media files.
- Fig. 5, and Fig.6 illustrate methods 500 and 600 for converting binary data into images.
- Fig.7 illustrate a method 700 for converting the images into the binary data.
- the order in which the methods 500, 600, and 700 are described is not intended to be construed as a limitation, and any number of the described method blocks may be combined in any order to implement the methods 500, 600, and 700, or an alternative method.
- the methods 500, 600, and 700 may be implemented by processor(s) or computing system(s) through any suitable hardware, non-transitory machine readable instructions, or combination thereof.
- steps of the methods 500, 600, and 700 may be performed by programmed computing systems.
- the steps of the methods 500, 600, and 700 may be executed based on instructions stored in a non- transitory computer-readable medium, as will be readily understood.
- the non- transitory computer-readable medium may include, for example, digital memories, magnetic storage media, such as magnetic disks and magnetic tapes, hard drives, or optically readable digital data storage media.
- the methods 500, 600, and 700 may be implemented in a variety of computing systems of a computing environment; in an example described in Fig. 5 and Fig.6, the methods 500, and 600 are explained in context of the aforementioned Data Conversion System (DCS) 102, for ease of explanation. Further, in Fig.7, the method 700 is explained in context of the aforementioned Image conversion system (ICS) 400.
- DCS Data Conversion System
- ICS Image conversion system
- Fig. 5 illustrates the method 500 for converting binary data into images, according to an implementation of the present subject matter.
- the binary data includes sequence of bits, such as O's and s that correspond to an executable code or a media file.
- the executable code may be utilized for installing a driver of a device and the media file may include multimedia content such as video and audio files.
- error detection encoding is performed on the binary data to obtain encoded binary data.
- the binary data is representative of either the executable code or the media file.
- the binary data may be provided in an input file that includes the sequence of O's and s representing the executable code or the media file.
- the input file may be an installation file that includes binary data for installing a driver of a device, such as a printer or a scanner.
- the input file may be a multimedia file that includes audio, video and text based content.
- the error detection encoding module 1 10 performs the error detection encoding on the binary data to obtain the encoded binary data.
- the encoded binary data is clustered into multiple tuples.
- Each tuple includes 'n' number of bits where 'n' is an integer.
- the segmenting module 1 12 clusters the encoded binary data to obtain the multiple tuples.
- the clustering of the binary data is performed to divide the binary data into smaller groups, i.e., tuples, having less number of bits than the total bits in the binary data, such that each tuple can be utilized for generating one image during encoding.
- the clustering prevents the complex process of converting the total bits in the binary data into images and provides convenience of having smaller groups of bits for converting to images thereby reducing complexity.
- the 'n' number of bits of a tuple are segmented by an integer 'x' to obtain multiple bit sequences where each bit sequence includes 'n/x' number of bits, where 'n' is a multiple of 'x', and each bit sequence is associated with a distinct colour in a predefined bit sequence to colour mapping.
- an image including 'x' number of sectors is generated.
- Each sector may be considered as corresponding to a unique area within the image and is associated with a bit sequence in the tuple. Further, each sector includes a colour associated with the corresponding bit sequence.
- the image generation module 1 14 generates the image corresponding to the tuple, where each image includes 'x' number of sectors. Referring to the previous example, the image generation module 1 14 generates an image, such as a square, a rectangle, a circle or any other geometric or non- geometric figure corresponding to the tuple.
- the tuple includes 32 bits and the image includes 8 sectors, where each sector corresponds to a bit sequence of 4 bits in the tuple.
- the image is printed on a printable medium for distribution to users and provide access to either the executable code or the media file to the users.
- the printing module 1 16 provides for printing the image on the printable medium.
- an external printer (not shown in Fig. 5) may be coupled to the DCS 102 and the printing module 1 16 may interact with the external printer through the interface 200. In such an example implementation, the printing module 1 16 may send a print instruction to the external printer for printing the image on the printable medium.
- the DCS 102 may be implemented as a printing system, such as a printer or a printer and scanner system. In such an example implementation, the printing module 1 16 may be implemented to print the image on the printable medium.
- Fig. 6 illustrates another example method for converting the binary data into the image for providing the image to users.
- the binary data is compressed to obtain compressed binary data.
- the binary data is representative of either an executable code or a media file.
- the compression module 108 compresses the binary data to obtain the compressed binary data.
- the compression module 108 may compress the binary data based on a compression technique, such as Lempel-Ziv compression technique, deflate compression technique, Hoffman compression technique and run-length compression technique.
- the compressed binary data is encrypted to obtain encrypted binary data.
- the encryption module 206 encrypts the compressed binary data by utilizing the encryption key 212 to obtain the encrypted data.
- the encryption module 206 may utilize an encryption technique, such as the DES algorithm or the Blowfish algorithm, to encrypt the compressed binary data to obtain encrypted binary data.
- the compressed binary data is encrypted to secure the binary data and prevent any unauthorized decoding by a user who does not have access to a corresponding decryption key.
- error detection encoding is performed on the encrypted binary data as previously explained with reference to block 502 in description of Fig.5.
- the error detection encoding module 1 10 performs error detection encoding on the encrypted binary data to obtain the encoded binary data.
- the encoded binary data is clustered into multiple tuples as described with reference to block 504 in Fig. 5 description.
- the segmenting module 1 12 clusters the encoded binary data into the multiple tuples.
- number of bits in a tuple is segmented by an integer 'x' as previously explained at block 506 in description of Fig.5.
- the segmenting module 112 segments 'n' number of bits in the tuple into 'x' bit sequences, where each bit sequence includes 'n/x' number of bits.
- an image corresponding to the tuple is generated as described with reference to block 508 of Fig.5.
- the image generation module 1 14 generates the image including 'x' number of sectors. Each sector represents a unique area within the image and corresponds to a bit sequence in the tuple. Further, each sector includes a colour associated with the bit sequence.
- the image generating module 1 14 may generate a square corresponding to the tuple. The square may include 4 sectors, where each sector corresponds to a quadrant of the square. Each sector corresponds to a bit sequence and includes a colour associated with the bit sequence. For instance, a sector of the square may correspond to a bit sequence '010' and may include colour black associated with the bit sequence ⁇ 10'.
- the image is provided to the users.
- the image may be provided to the users through an email service where the users receive the image in email accounts of the users or by printing the image on a printable medium, such as paper and delivering the printable medium to the users.
- the image may be displayed on a screen of a device, such as a laptop, a tablet or a personal computer such that the users may scan and capture the image displayed on the screen for subsequently converting the image to binary data.
- an image including 'x' number of sectors is scanned, where 'x' is an integer.
- Each sector represents a unique area within the image and includes a colour.
- the colour may correspond to a shade within a grayscale.
- the shade may have a colour intensity that is different from other shades used for representing other sectors, where the difference in colour intensities of the shades is used for identifying the shade and determine a corresponding bit sequence.
- the scanning module 412 provides for scanning of the image including 'x' number of sectors. For instance, the scanning module 412 may, in one example, generate control instructions for controlling a scanning device or an image capturing device.
- the control instructions when executed may operate such a scanning device or an image capturing device (not shown in Figs. 7).
- the scanning device or the image capturing device may either be coupled to the ICS 400 or may be integrated within the ICS 400.
- the captured image may be a square having 8 sectors.
- a bit sequence corresponding to the colour of a sector is determined.
- the bit sequence includes 'b' number of bits, where 'b' is an integer.
- the data generation module 414 determines a bit sequence corresponding to the colour of the sector.
- the data generation module 414 may determine the bit sequence based on a predefined bit sequence to colour mapping that includes mapping of each bit sequence and a corresponding colour. In the previous example, the data generation module 414 may determine a bit sequence, for instance of 3 bits, for each sector from amongst the 8 sectors of the image.
- each sector in the image is traversed in a predefined sequence to obtain 'x*b' number of bits.
- the 'x*b' number of bits correspond to a portion of the binary data that is obtained from one image.
- the data generation module 414 traverses the sectors in the predefined sequence to obtain the 'x*b' number of bits corresponding to the portion of the binary data.
- the portion of binary data may include y number of bits that represent actual bits of binary data, and other redundant bits added for error correction during encoding.
- the binary data so generated may be encoded, encrypted, and compressed and therefore the binary data may have to be decoded, decrypted, and decompressed to obtain original binary data.
- an error in the 'x*b' number of bits is detected based on error detection decoding to obtain decoded bits, at block 708.
- the error detection module 416 detects the error in the x*b' number of bits to obtain the decoded bits.
- y number of bits of the binary data are accumulated to form 't*y' number of bits, where y is the number of bits that represents the binary data in the portion of binary data after excluding the redundant bits and is number of images corresponding to either the executable code or the media file, excluding added images used for error detection.
- the data generation module 414 accumulates the y number of bits of the binary data to form 't*y' number of bits.
- a decryption key is applied to the 't*y' number of bits to decrypt the 't*y' number of bits.
- the data generation module 414 applies the decryption key 426 to decrypt the 't*y' number of bits.
- the 't * y' number of bits obtained may be compressed and therefore may have to decompressed to obtain original binary data. Therefore at block 714, the 't*y' number of bits are decompressed based on a binary data compression ratio 'c' to obtain 't*y*c' number of bits of the binary data.
- the binary data compression ratio 'c' may be a compression ratio that may be used for compressing the binary data during encoding.
- the decompression module 420 performs decompression of the 't*y' number of bits based on the binary data compression ratio 'c' to obtain 't * y * c' number of bits of the binary data.
- the 't * y * c' number of bits represent original bits of the binary data without any redundant bits and represents the executable code or the media file.
- Fig. 8 illustrates a computing environment 800 implementing a non- transitory computer-readable medium 802, according to an implementation of the present subject matter.
- the non-transitory computer- readable medium 802 may be utilized by a computing device, such as the Image Conversion System (ICS) 400 (not shown).
- the ICS 400 may be implemented in a public networking environment or a private networking environment.
- the computing environment 800 may include a processor 804 communicatively coupled to the non-transitory computer-readable medium 802 through a communication link 806 connecting to a network 808.
- the processor 804 may be implemented in a computing engine, such as the ICS 400 as described earlier.
- the non-transitory computer- readable medium 802 may be, for example, an internal memory device or an external memory device.
- the communication link 806 may be a direct communication link, such as any memory read/write interface.
- the communication link 806 may be an indirect communication link, such as a network interface.
- the processor 804 may access the non-transitory computer-readable medium 802 through the network 808.
- the network 808 may be a single network or a combination of multiple networks and may use a variety of different communication protocols.
- the processor 804 may be communicating with the network environment 800 over the network 808.
- the non -transitory computer-readable medium 802 includes a set of computer-readable instructions, such as instructions to scan image 812 (instructions 812), instructions to determine bit sequence 814 (instructions 814), instructions to obtain bits 816 (instructions 816), and instructions to detect error 818 (instructions 818).
- the set of computer- readable instructions may be accessed by the processor 804 through the communication link 806 and subsequently executed to obtain binary data from an image file.
- the instructions 812 are accessed by the processor 804 to allow scanning of multiple images from the image file and capture the images.
- Each image includes 'x' number of sectors, where 'x' is an integer.
- Each sector includes a colour and corresponds to a unique area within the image.
- the instructions 812 may be utilized to scan the image 306-1 from the image file 308.
- the instructions 814 are accessed by the processor 804 to determine bit sequence corresponding to the colour of a sector.
- the bit sequence includes 'b' number of bits, where 'b' is an integer.
- 'b' number of bits may be equal to 'n/x', where n and x are integers and represent number of bits in a tuple and number of bit sequences in a tuple respectively. Further, n is multiple of x.
- the processor 804 determines the bit sequences including 'b' number of bits based on a predefined bit sequence to colour mapping that includes mapping of the colour of the sectors with the bit sequences as explained earlier.
- the predefined bit sequence to colour mapping may be stored as data 810 and may be accessed through the network 808.
- the 'b' number of bits in a bit sequence is determined based on various factors. For instance, 'b' may be determined based on resolution of a scanner that may scan the image, number of bits to be represented by one sector, and printer efficiency.
- the instructions 816 are accessed by the processor 804 to traverse through each sector of an image in a predefined sequence to obtain 'x*b" number of bits.
- the 'x*b' number of bits correspond to a portion of binary data representing either an executable code or a media file.
- the binary data so obtained may be encoded, encrypted, and compressed and therefore the binary data may have to be decoded, decrypted, and decompressed to obtain original binary data.
- the instructions 818 are accessed by the processor 804 to detect any error in the 'x*b' number of bits based on error detection decoding to obtain decoded bits.
- the non-transitory computer readable medium 802 may include other instructions (not shown in the figure), such as instructions to accumulate bits, instructions to decrypt bits, and instructions to decompress bits.
- the processor 804 accesses the instructions to accumulate bits for accumulating y number of bits of the binary data to form 't*y' number of bits.
- y is the number of bits from the portion of binary data that represents the binary data after excluding the redundant bits added for error correction and is number of images corresponding to the executable code or the media file.
- the number of images may not include images that correspond to bits added to the binary data for error detection during encoding of the binary data.
- the instructions to decrypt bits are accessed by the processor 804 to apply a decryption key to the 't*y' number of bits for decrypting the 't * y' number of bits.
- the 't * y' number of bits may represent bits of binary data without any redundant bits and may be compressed.
- the processor 804 accesses the instructions to decompress bits and decompresses the 't * y' number of bits based on a binary data compression ratio 'c' to obtain the 't*y*c' number of bits of the binary data.
- the 't*y*c' number of bits of the binary data corresponds to original binary data and represents the executable code or the media file.
- the non-transitory computer readable medium 802 may include instructions to execute (not shown in the figure).
- the processor 804 may access the instructions to execute for executing the executable code and install a driver of a device, such as a printer, a laptop, a scanner, and a tablet.
- the described techniques facilitate efficient conversion of the binary data to the images for distribution of the images to users. Further, the described techniques allow efficient retrieval of the binary data from the images thereby eliminating use of a reader, such as a CD drive or a pen drive.
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Image Processing (AREA)
Abstract
Example implementations relating to converting binary data, representative of either an executable code or a media file, into images are described. For example, techniques for converting the binary data include performing error detection encoding on the binary data to obtain encoded binary data and clustering the encoded binary data into multiple tuples, each tuple comprising 'n' number of bits, where 'n' is an integer. Thereafter, the 'n' number of bits of a tuple are segmented by an integer 'x' to obtain multiple bit sequence comprising 'n/x' number of bits, where 'n' is multiple of 'x' and each bit sequence is associated with a distinct colour. An image comprising 'x' number of sectors is then generated. Each sector corresponds to a bit sequence and includes a colour corresponding to the bit sequence. Thereafter, the image is printed on a printable medium.
Description
CONVERTING BINARY DATA TO IMAGES BACKGROUND
[0001] On purchase of an electronic device, such as a printer, laptop, scanner, or tablet, a user is generally provided with a Compact Disk (CD) or any other computer readable medium, such as a flash drive, along with the electronic device. The CD or the computer readable medium is generally provided by the manufacturer of the electronic device. The CD or the computer readable medium contains configuration files in form of an executable code that may be utilized by the user to configure the electronic device accordingly. The user may use a CD drive or a similar reader of the electronic device to read the CD or the computer readable medium and execute the executable code to configure the electronic device.
[0002] Apart from the configuration files, the CD or the computer readable medium may also contain media files, such as videos, songs, and other multimedia content. For example, a CD may include a media file having instructions and demonstrations of how to configure the electronic device or may include any general content. The media file is read by an appropriate reader to retrieve contents thereof.
BRIEF DESCRIPTION OF THE DRAWINGS
[0003] The detailed description is provided with reference to the accompanying figures. In the figures, the left-most digit(s) of a reference number identifies the figure in which the reference number first appears. The same numbers are used throughout the drawings to reference like features and components.
[0004] Fig. 1 is a schematic representation of a data conversion system, in accordance with an implementation of the present subject matter;
[0005] Fig. 2 is another schematic representation of the data conversion system, according to an implementation of the present subject matter;
[0006] Fig. 3 illustrates an example of converting binary data into an image, according to an implementation of the present subject matter;
[0007] Fig. 4 is a schematic representation of the image conversion system, according to an implementation of the present subject matter;
[0008] Fig. 5 illustrates an example method for converting binary data into an image, according to an implementation of the present subject matter;
[0009] Fig. 6 illustrates another example method for converting binary data into an image, according to an implementation of the present subject matter;
[0010] Fig. 7 illustrates an example method for converting an image into binary data, according to an implementation of the present subject matter; and
[001 1 ] Fig. 8 illustrates an example computing environment, implementing a non-transitory computer-readable medium storing instructions for executing an operation for converting an image into binary data, according to an implementation of the present subject matter.
DETAILED DESCRIPTION
[0012] Generally, executable codes or media files are distributed to users by encoding the executable codes or the media files on a computer readable medium (CRM), such as a Compact Disc (CD) and a pen drive and providing the CRM to the users. The users may utilize a drive, such as a CD drive or a Universal Serial Bus (USB) drive to read binary data stored on the CRM and execute the corresponding executable code to configure a device or access the media files.
[0013] Many modern electronic devices, such as tablets, smartphones and laptops are however often not equipped with a CD drive or a USB drive due to factors related to cost, and compactness of the devices. Therefore, it may not be feasible for such electronic devices to read the binary data stored on the CRM to execute the executable code or access the media files.
[0014] In such scenarios, the executable code or the media file may be made available on websites that users of such electronic devices can access through internet. In such cases, a network connection is utilized to access the websites and a cost associated with downloading the executable code or the media file is incurred. Owing to network unavailability or high cost considerations, the users may be unable or reluctant to access the websites to download the executable code or the media files from such websites. Consequently, the users may often face inconvenience in configuring their electronic devices or in accessing media files using generally known techniques.
[0015] In accordance with an implementation of the present subject matter, techniques for converting binary data to images for making the binary data accessible to users, are described. The techniques facilitate configuration of a device and access to media files by retrieving the binary data from the images in a convenient manner. Needless to mention, the binary data corresponds to the executable codes or media files that are to be made available to the users.
[0016] In an example implementation of the present subject matter, the techniques for converting binary data, i.e., a sequence of bits O's and s that represent the executable code or the media files, into images include performing error detection encoding on the binary data to obtain encoded binary data. The error detection encoding provides for detection and correction of any errors that may occur in the process of conversion of the binary data into images. Thereafter, the encoded binary data is clustered into multiple groups of bits, referred to as tuples, hereinafter. Each tuple includes equal number of bits, such as 'n' number of bits, where 'n' is an integer. Each tuple is further divided into multiple sub-groups of bits, referred to as bit sequences, by dividing the 'n' bits in a tuple, by an integer 'x', where the integer 'n' is a multiple of the integer 'x'. Accordingly, each bit sequence includes 'n/x' number of bits.
[0017] For example, the binary data may include a sequence having 72 bits. The binary data may be divided into 3 tuples, each having 24 bits. Further, each tuple including 24 bits may be divided into 8 bit sequences where each bit sequence may include 24/8 or 3 bits.
[0018] Further, the present subject matter describes a predefined bit sequence to colour mapping to associate each bit sequence with a distinct colour. For instance, a bit sequence '011 ' is associated with black, bit sequence '100' is associated with grey, and bit sequence '1 1 1 ' is associated with white and so on. Depending on the 'n/x' number of bits in each of the bit sequences, a distinct colour is associated with each combination of the 'n/x' bits in the bit sequences. Referring to the example above where there are 3 bits in each of the bit sequences, a distinct colour is associated with each of the 8 unique combination of the 3 bits. In a scenario, where more than 8 colours are to be used, then accordingly more number of bits may be accommodated in a bit sequence, as the number of colours used is equal to 2n/x.
[0019] Thereafter, an image corresponding to each tuple is generated. The image may be in form of a square, a rectangle, a circle or any other geometric or
non-geometric figure. The image includes multiple regions or unique area within the image, referred to as sectors, hereinafter. The number of sectors within the image is equivalent to the number of bit sequences in a tuple. Each sector in the image corresponds to a bit sequence of the tuple and includes the colour associated with the bit sequence. For example, as described earlier, each image corresponds to a tuple, and in each tuple there are 'n' number of bits. The 'n' number of bits are divided into 'x' number of bit sequences, where each bit sequence includes 'n/x' number of bits. Therefore, the image including 'x' number of sectors has each sector including a colour from 2n/x number of colours. Referring again to the example above, an image having 8 sectors is generated corresponding to each of the 3 tuples. Each of the 8 sectors of the 3 tuples are associated with a bit sequence and have a colour associated with the corresponding bit sequence.
[0020] Thereafter, all images corresponding to the executable code or the media file are printed on a printable medium for distribution to the users. Further, the techniques allow decoding of the printed image to obtain the binary data corresponding to the executable code or the media file in a convenient manner. Thus, the described techniques convert the binary data into the image for distribution to the users in an efficient manner eliminating the use of a CD drive or a pen drive.
[0021] The above described techniques are further described with reference to Fig. 1 to 8. It should be noted that the description and figures merely illustrate the principles of the present subject matter along with examples described herein and, should not be construed as a limitation to the present subject matter. It is thus understood that various arrangements may be devised that, although not explicitly described or shown herein, embody the principles of the present subject matter. Moreover, all statements herein reciting principles, aspects, and examples of the present subject matter, as well as specific examples thereof, are intended to encompass equivalents thereof.
[0022] Fig. 1 schematically illustrates a Data Conversion System (DCS) 102 implemented to convert binary data, i.e., a sequence of bits O's and s, representative of the executable code or the media file into images, according to an implementation of the present subject matter. In an example, the executable code may be executed for installing a driver of a device, such as a printer, a tablet, and a scanner, or may be a media file that may include Motion Pictures Expert Group (MPEG) Audio Layer 3 (.mp3) or Waveform Audio File Format (.wav) based content.
[0023] In an implementation of the present subject matter, the DCS 102 may include a processor 104 and module(s) 106. The processor 104 may be implemented as microprocessors, microcomputers, microcontrollers, digital signal processors, central processing units, state machines, logic circuitries, and/or any devices that manipulate signals based on operational instructions. Among other capabilities, the processor 104 may fetch and execute computer-readable instructions stored in a memory. The functions of the various elements shown in the figure, including any functional blocks labeled as "processor(s)", may be provided through the use of dedicated hardware as well as hardware capable of executing machine readable instructions.
[0024] The module(s) 106 may be coupled to the processor 104 and include routines, programs, objects, components, data structures, and the like, which perform particular tasks or implement particular abstract data types. The module(s) 106 may further include modules that supplement functioning of the DCS 102, for example, services of an operating system. Further, the module(s) 106 can be implemented as hardware units, or may be implemented as instructions executed by a processing unit, or by a combination thereof.
[0025] In another aspect of the present subject matter, the module(s) 106 may be machine-readable instructions which, when executed by the processor 104, may perform any of the described functionalities. The machine-readable instructions may be stored on an electronic memory device, hard disk, optical disk
or other machine-readable storage medium or non-transitory medium. In one implementation, the machine-readable instructions can also be downloaded to the storage medium via a network connection.
[0026] In an example implementation of the present subject matter, the module(s) 106 may include, a compression module 108, an error detection module 1 10, a segmenting module 1 12, an image generation module 1 14, and a printing module 1 16.
[0027] In an example implementation of the present subject matter, the DCS 102 may be implemented as a printing system, such as a printer or printer and scanner system. In such an example implementation, the modules 106 may be implemented within the printing system and the printing module 1 16 may be implemented to print content, such as images and text on a printable medium. In another example implementation, the printing module 1 16 of the DCS 102 may interact with an external printing system (not shown in the figure) through the interface 200 to print the content on the printable medium.
[0028] The compression module 108 performs compression of the binary data, to obtain compressed binary data. The compressed binary data may have reduced size than the original binary data. The compressed binary data is encoded by the error detection module 1 10 data to obtain encoded binary data. Encoding the binary data provides for error detection and correction subsequently during decoding of the encoded binary data.
[0029] The segmenting module 1 12 fragments the encoded binary data into multiple tuples. Each tuple includes 'n' number of bits where 'n' is an integer. The segmenting module 1 12 further segments each tuple by an integer 'x' to form multiple bit sequences. Each bit sequence includes equal number of bits, i.e., 'n/x' number of bits, given that 'n' is a multiple of 'x'.
[0030] Thereupon, the image generation module 1 14 generates an image file including multiple images. An image in the image file corresponds to a tuple of
the binary data and includes 'x' number of sectors, such that each of the 'x' sectors corresponds to a bit sequence in the tuple. Each of the 'x' sectors includes a colour associated with the corresponding bit sequence in the tuple. Thereafter, the printing module 1 16 prints the image file on a printable medium for making the binary data accessible to the users.
[0031] Further, the details of the functionalities of different components of the DCS 102 have been explained in conjunction with description of Fig.2 that describes components of the DCS 102, according to an example implementation of the present subject matter.
[0032] In an implementation, the DCS 102 may include, apart from the processor 104 and module(s) 106, interface(s) 200, a memory 202, and data 204. The interface(s) 200, coupled to the processor 104, may include a variety of machine readable instructions-based interfaces and hardware interfaces that allow the DCS 102 to interact with different entities. The interface(s) 200 may facilitate multiple communications within a wide variety of networks and protocol types, including wireless networks, wireless Local Area Network (WLAN), Radio Access Network (RAN), satellite-based network, etc.
[0033] The memory 202 may be coupled to the processor 104 and may, among other capabilities, provide data and instructions for generating different requests. The memory 202 can include any computer-readable medium known in the art including, for example, volatile memory, such as static random access memory (SRAM) and dynamic random access memory (DRAM), and/or nonvolatile memory, such as Read only Memory (ROM), erasable programmable ROM, flash memories, hard disks, optical disks, and magnetic tapes.
[0034] Further, the module(s) 106 also include an encryption module 206, and other module(s) 208 apart from the previously mentioned compression module 108, error detection encoding module 1 10, segmenting module 1 12, and image generation module 1 14.
[0035] The encryption module 206 and the other module(s) 208 may be coupled to and/or be executable by the processor 104, and may include, amongst other things, routines, programs, objects, components, data structures, and the like, which perform particular tasks or implement particular abstract data types. The other module(s) 208 may include programs or coded instructions that supplement applications and functions, for example, programs in the operating system, of the DCS 102.
[0036] In operation, as explained previously, the compression module 108 performs compression of the binary data, provided in an input file, to obtain compressed binary data. In an example, the compression module 108 may compress the binary data by utilizing a loss-less compression technique, such as Lempel-Ziv (LZ) compression technique, Deflate compression technique, Hoffman compression technique, and run-length compression technique. The compressed binary data has reduced size than the original binary data.
[0037] After the binary data is compressed, the encryption module 206 encrypts the compressed binary data by utilizing an encryption key 212 that may be stored in the data 204. In an example implementation, the encryption module 206 may utilize an encryption technique, such as Data Encryption Standard (DES) algorithm or Blowfish algorithm, to encrypt the compressed binary data. In an example, the encryption key 212 may be represented as 'x[k]' and may include 'k' number of bits, where 'k' is an integer. For encrypting the compressed binary data, the encryption module 206 may select 'k' number of bits from the compressed binary data and perform a logic operation, for instance, an exclusive OR operation, on the 'k' bits of the compressed binary data and the 'k' bits of the encryption key 212. The 'k' bits of the compressed binary data may be represented as 'r[k]\ In an example, the encryption of the compressed binary data 'r[k]' with the encryption key 1 12 'x[k]' may be given as: r[k] (+) x[k] = y[k], ..eq (1 )
where, y[k] is the output bits representing the encrypted binary data having 'k' number of bits. In a similar manner, encryption module 206 performs encryption for all the bits or any portion of the compressed binary data to obtain the encrypted binary data. The compressed binary data is encrypted to secure the binary data and prevent decoding of the encrypted binary data by an unauthorized user who does not have access to a corresponding decryption key.
[0038] Thereafter, the error detection encoding module 1 10 encodes the encrypted binary data by utilizing, for example, a block coding or a convolution coding technique. Examples of block coding and convolution coding technique include hamming code, cyclic code, Bose Chaudhuri and Hocquenghem (BCH) code, and Golay code for encoding the compressed binary data for error detection. In an example, the error detection encoding module 1 10 may utilize y number of bits of the encrypted binary data as a single block for block coding, and generate 'p' number of redundant bits for error correction. The relation between the redundant bits 'p' and the block of bits y may be expressed as: l = y + p, -eq (2) where T represents the resultant bits of the encoded binary data. For instance, y may have 24*4 = 96 bits as the single block and the redundant bits 'p' may include 24 bits. Therefore, the resultant bits T may be 96 +24 = 120 bits.
[0039] As explained previously, the error detection encoding module 1 10 encodes the encrypted binary data to allow detection and correction of any error subsequently during decoding of the encoded binary data. The error may be due to improper reading of the image due to several reasons, such as fainted image, incorrect reading by a scanner, scanning issues, and paper folding.
[0040] Further, the segmenting module 1 12 and the image generation module 1 14 operate to convert the encrypted binary data into images. An image file created corresponding to the binary data is printed by the printing module 1 16. The functioning of the segmenting module 1 12, the image generation module 1 14 and
the printing module 1 16 to generate the image file has been explained with reference to an example illustrated in Fig.3.
[0041] Referring to Fig.3, the segmenting module 1 12 clusters the encoded binary data into multiple tuples where each tuple includes 'n' number of bits. An example tuple 302 comprising 24 bits, i.e., 010-01 1 -000-001 -000-010-001 -01 1 , is illustrated in Fig. 3. Needless to mention, the tuple 302 is one from amongst the multiple tuples that comprise the encoded binary data.
[0042] In a scenario, the encoded binary data may have number of bits that is either less than or more than multiple of 'η', such that a tuple from amongst the multiple tuples may have number of bits less than 'η'. In such a scenario, few bits, such as O's are padded at the end of the tuple to make the number of bits in the tuple equal to 'η'. To differentiate between the actual bits of the binary data and the padded bits during decoding, the binary data is included with an indication, such as a tag, to mark end of the actual bits and the indication is retained throughout the process of converting binary data to images and the images back to the binary data. Thereafter, during conversion of the images to binary data during decoding, the indication is detected to identify end of actual bits and to exclude all the bits after the indication.
[0043] Further, the segmenting module 1 12 segments the tuple 302 into multiple bit sequences, where each bit sequence includes 'x' bits. In the present example, sub-groups of three bits such as, 010, 01 1 ...01 1 of the tuple 302 represent the bit sequences. In an example, the number of bits to be included within the tuple and the bit sequences may be stored as other data 214 in the data 204. In another example, the segmenting module 1 12 clusters the y number of bits as given in eq. 2 into a set of tuples and the 'p' number of redundant bits into another set of tuples.
[0044] In an example implementation, the predefined bit sequence to colour mapping 304 is stored as colour mapping data 210 in the data 204 and includes a
mapping of a bit sequence with a corresponding colour. An example predefined bit sequence to colour mapping 304 is given as:
[0045] As can be seen in the example predefined bit sequence to colour mapping, each bit sequence is associated with a distinct colour. For instance, the bit sequence ΌΟΟ' is associated with white, the bit sequence '001 ' is associated with black and so on. In an example, the colours in the predefined bit sequence to colour mapping may correspond to different shades of a grayscale, where each shade has a colour intensity. Accordingly, each shade from amongst the different shades may be associated with a bit sequence. During decoding, the colour intensities of the shades may be detected to determine bit sequence corresponding to the shades.
[0046] Based on the predefined bit sequence to colour mapping, the image generation module 1 14 determines a colour for each bit sequence in the tuple 302 and generates an image 306-1 . The image 306-1 may be, for example, a square, a rectangle, a circle and any other geometric or non-geometric figure. The image 306-1 includes multiple sectors where each sector represents a unique area within the image 306-1 . The image generation module 1 14 generates the image 306-1 such that each sector within the image 306-1 corresponds to a bit sequence and includes the colour associated with the bit sequence.
[0047] For example, sector 1 in the image 306-1 corresponds to the bit sequence 010 and includes the colour white associated with the bit sequence 010 in the predefined bit sequence to colour mapping 304, sector 2 corresponds to the bit sequence 01 1 and includes black, and so on. Accordingly, the image generation module 1 14 generates multiple images 306-2, 306-3...306-6 corresponding to multiple tuples of the encoded binary data and collate the multiple images to obtain the image file 308. As can be seen in Fig.3, the image file 308 includes the images 306-1 , 306-2, ...306-6 that are arranged in rows and columns.
[0048] It would be noted that although Fig.3 illustrates the images 306-1 , ... 306-6 with sectors having colours black, and white, other colours may also be included in the sectors of the images without deviating from the scope of the present subject matter.
[0049] In an example, the image generation module 1 14 generates images for the set of tuples corresponding to y number of bits of the encrypted binary data and images for the other set of tuples corresponding to the 'p' number of redundant bits. The 'p' number of redundant bits are added bits for error correction and may not correspond to the binary data. Therefore, in a scenario, the image file 308 generated by the image generation module 1 14 may include the images that correspond to the 'p' number of redundant bits.
[0050] Thereafter, the printing module 1 16 provides for printing the image file 308 on a printable medium, such as a paper. In an example, the printing module 1 16 may print the image file on the printable medium or send a print instruction to the external printing system to print the image file 308 on the printable medium. In an aspect, the image file 308 may be large in size and therefore may be printed on multiple sheets of paper. In an example, the printing module 1 16 may print the images corresponding to 'p' number of redundant bits at a different location from the images corresponding to the y bits of the encrypted binary data on the printable medium such that an image conversion system subsequently
converting the image file into binary data may identify the images corresponding to the redundant bits and exclude the images for conversion to binary data.
[0051] The printable medium may then be provided to the users for them to access the binary data by performing a decoding operation, described subsequently, that retrieves the encoded binary data from the image file 308.
[0052] Although the tuple 302 and the bit sequences, as illustrated in Fig.3, includes 24 bits and 3 bits respectively, the number of bits in a tuple and in a bit sequence may be varied based on number of bits to be represented by one image. The number of bits in an image and in turn the number of bits in a tuple and in a bit sequence, may be based on various factors. For example, the number of bits in an image may be based on resolution of a scanner that is to scan the image, such that the scanner retrieves the binary data from the image without any error. Thus, in situations where a high resolution scanner is employed, more number of bits can be included per bit sequence compared to a case where the resolution of the scanner is low. In another example, number of colours a printing device is efficiently prints may be a determining factor. In yet another example, there may be a maximum number of printed sheets corresponding to the binary data owing to cost considerations. In such cases, to accommodate more images on each sheet, a higher number of bits per image may be selected.
[0053] Fig. 4 schematically illustrates an Image Conversion System (ICS) 400, according to an implementation of the present subject matter. In an implementation of the present subject matter, the ICS 400 may include, a decoder processor 402, decoder interface 404, decoder memory 406 and decoder module(s) 408.
[0054] The decoder processor 402, decoder interface 404, and decoder memory 406 are similar to the processor 104, interface 200, and memory 202, respectively and may be implemented in a similar manner.
[0055] Further, the ICS 400 may include decoder module(s) 408, and decoder data 410. The decoder module(s) 408 include routines, programs, objects, components, data structures, and the like, which perform particular tasks or implement particular abstract data types. The decoder module(s) 408 may further include modules that supplement functioning of the ICS 400, for example, services of an operating system. Further, the decoder module(s) 408, alike the modules 106, can be implemented as hardware units, or may be implemented as instructions executed by a decoder processor 402, or by a combination thereof. In an example implementation, the decoder module(s) 408 include, a scanning module 412, a data generation module 414, an error detection module 416, a decryption module 418, a decompression module 420, and other decoder module(s) 422.
[0056] In an example implementation of the present subject matter, the ICS 400 may be implemented as a scanning system, such as a scanner or a camera. In such an example implementation, the decoder modules 408 may be implemented within the scanning system and the scanning module 412 may be implemented to scan images printed on a printable medium or displayed on a screen of a device. In another example implementation, the scanning module 412 may interact with an external scanning system through the decoder interface 404 for scanning the images.
[0057] The scanning module 412 provides for scanning of the image file to capture multiple images within the image file. For instance, the scanning module 412 may scan the multiple images within the image file or send a scan instruction to the external scanning system to scan the multiple images. As explained previously, image files may be printed on multiple sheets of papers, such as the above described image file 308 including the images 306-1 , ....306-6. The scanning module 412 operates to scan the images present in image file 308, for instance by scanning each row and/or column of the image file 308.
[0058] The scanning module 412 may have a resolution of scanning that determines clarity of the images captured by the scanning module 412 from the image file printed on the printable medium. For instance, a higher resolution corresponds to more clarity in capturing smaller and complex images than a lower resolution. Accordingly, the scanning module 412 with higher resolution of scanning may capture smaller images with clarity. Thus, more images may be accommodated on a single paper thereby compacting the image file and allowing more binary data to be printed on the printable medium.
[0059] For instance, a printed sheet of the image file 308, may include 50 images in a line and there may be 100 lines. Referring to the example explained earlier, an image corresponds to 24 bits, and therefore the printed sheet may include 24 * 50 * 100 = 120000 bits or 1 .2 Megabits (Mbits) of binary data. However, with complex images, where one image of the same size corresponds to 32 bits, the total number of images on the printed sheet may be 32 * 50 * 100 = 160000 bits or 1 .6 Mbits. As will be understood, the sectors of an image in the later example have smaller size as compared to that of the former. Accordingly, the size of the image and number of sectors within an image dictates a minimum resolution of scanning that the scanning module 412 is to have for scanning the images effectively. In an example, the resolution of scanning of the scanning module 412 may be stored as other decoder data 428 in the decoder data 410.
[0060] In the image file, each image includes 'x' number of sectors, where 'x' is an integer. A sector is a unique area within the image and includes a colour. After the images are captured, the data generation module 414 traverses each sector of the image in a predefined sequence to obtain bit sequences corresponding to the sectors. The data generation module 414 determines a bit sequence for each of the sectors based on the predefined bit sequence to colour mapping 304. The predefined bit sequence to colour mapping 304, as described earlier, includes mapping of each bit sequence and a corresponding colour and is stored as bit mapping data 424 in the decoder data 410.
[0061] In an example implementation, the bit sequences so obtained for the sectors of the image correspond to a tuple of bits. For example, if the image includes 4 sectors with each sector having a colour corresponding to a bit sequence of 3 bits, then the data generation module 414 generates a tuple with 4*3 = 12 bits. Accordingly, the data generation module 414 generates bit sequences for all the images in the image file. The data generation module 414 may then collate all or any portion of the bit sequences in an order to generate binary data.
[0062] In an example, the binary data so generated may be encoded, encrypted, and compressed and therefore the binary data may have to be decoded, decrypted, and decompressed to obtain original binary data.
[0063] To decode the binary data, the error detection module 416 detects any error in the binary data. In an example, the error detection module 416 may utilize a decoding technique corresponding to an encoding technique utilized by the error detection encoding module 1 10 for encoding the binary data for error detection. For instance, the error detection module 416 may utilize one of the hamming code, the cyclic code, the BCH code, and the Golay code for error detection and correction. Referring again to the example considered previously in relation to eq (2), the error detection module 416 utilizes the T resultant bits that includes y number of bits as a single block and the redundant bits 'p' and applies a block decoding to detect and correct errors in the y bits.
[0064] In a scenario, if an error in the binary data is detected and is not resolved by the error detection module 416, the error detection module 416 generates a signal for a user. The user may then rescan the image file to regenerate the binary data or verify issues related to scanning, such as improper placement of the image file for scanning.
[0065] In an example implementation, after the binary data is decoded, the decryption module 418 decrypts the binary data by utilizing a decryption key 426 that may be stored in the decoder data 410. For decryption, the decryption module 418 performs the logic operation, for example, as described in reference to eq(1 )
above, an exclusive OR, to 'k' bits of the binary data and 'k' bits of the decryption key 426 to obtain 'k' bits of binary data in decrypted form. Accordingly, the decryption module 418 decrypts all the bits or any portion of the bits to obtain binary data in the decrypted form.
[0066] After the binary data is decrypted, the decompression module 420 performs decompression of the binary data by implementing a technique corresponding to the technique used for compression of the binary data. For instance, the decompression module 420 utilizes one of Lempel-Ziv (LZ) technique, a Deflate technique, a Hoffman technique, and a run-length technique to decompress the binary data.
[0067] In an example implementation, the binary data so obtained is the binary data that was utilized for encoding by the DCS 102 to obtain the image file 308 and corresponds to the executable code or the media files. Thus, the ICS 400 generates the binary data from the images in an efficient manner thereby allowing the user to execute the executable code for configuring the device or access the media files.
[0068] Fig. 5, and Fig.6 illustrate methods 500 and 600 for converting binary data into images. Fig.7 illustrate a method 700 for converting the images into the binary data. The order in which the methods 500, 600, and 700 are described is not intended to be construed as a limitation, and any number of the described method blocks may be combined in any order to implement the methods 500, 600, and 700, or an alternative method. Furthermore, the methods 500, 600, and 700 may be implemented by processor(s) or computing system(s) through any suitable hardware, non-transitory machine readable instructions, or combination thereof.
[0069] It may be understood that steps of the methods 500, 600, and 700 may be performed by programmed computing systems. The steps of the methods 500, 600, and 700 may be executed based on instructions stored in a non- transitory computer-readable medium, as will be readily understood. The non- transitory computer-readable medium may include, for example, digital memories,
magnetic storage media, such as magnetic disks and magnetic tapes, hard drives, or optically readable digital data storage media.
[0070] Further, although the methods 500, 600, and 700 may be implemented in a variety of computing systems of a computing environment; in an example described in Fig. 5 and Fig.6, the methods 500, and 600 are explained in context of the aforementioned Data Conversion System (DCS) 102, for ease of explanation. Further, in Fig.7, the method 700 is explained in context of the aforementioned Image conversion system (ICS) 400.
[0071] Fig. 5 illustrates the method 500 for converting binary data into images, according to an implementation of the present subject matter. The binary data includes sequence of bits, such as O's and s that correspond to an executable code or a media file. The executable code may be utilized for installing a driver of a device and the media file may include multimedia content such as video and audio files.
[0072] At block 502, error detection encoding is performed on the binary data to obtain encoded binary data. As described, the binary data is representative of either the executable code or the media file. As would be understood, the binary data may be provided in an input file that includes the sequence of O's and s representing the executable code or the media file. In an example, the input file may be an installation file that includes binary data for installing a driver of a device, such as a printer or a scanner. In another example, the input file may be a multimedia file that includes audio, video and text based content. In an example implementation, the error detection encoding module 1 10 performs the error detection encoding on the binary data to obtain the encoded binary data.
[0073] At block 504, the encoded binary data is clustered into multiple tuples. Each tuple includes 'n' number of bits where 'n' is an integer. In one example, the segmenting module 1 12 clusters the encoded binary data to obtain the multiple tuples. The clustering of the binary data is performed to divide the binary data into smaller groups, i.e., tuples, having less number of bits than the
total bits in the binary data, such that each tuple can be utilized for generating one image during encoding. The clustering prevents the complex process of converting the total bits in the binary data into images and provides convenience of having smaller groups of bits for converting to images thereby reducing complexity.
[0074] Thereafter, at block 506, the 'n' number of bits of a tuple are segmented by an integer 'x' to obtain multiple bit sequences where each bit sequence includes 'n/x' number of bits, where 'n' is a multiple of 'x', and each bit sequence is associated with a distinct colour in a predefined bit sequence to colour mapping. In an aspect, the segmenting module 1 12 segments the 'n' number of bits in each tuple by 'x' to obtain multiple bit sequences. For example, if a tuple includes 32 bits of binary data, and the 32 bits are segmented into 8 bit sequences, then each bit sequence in the tuple includes 32/8 = 4 bits of binary data.
[0075] At block 508, an image including 'x' number of sectors is generated. Each sector may be considered as corresponding to a unique area within the image and is associated with a bit sequence in the tuple. Further, each sector includes a colour associated with the corresponding bit sequence. In an example implementation, the image generation module 1 14 generates the image corresponding to the tuple, where each image includes 'x' number of sectors. Referring to the previous example, the image generation module 1 14 generates an image, such as a square, a rectangle, a circle or any other geometric or non- geometric figure corresponding to the tuple. The tuple includes 32 bits and the image includes 8 sectors, where each sector corresponds to a bit sequence of 4 bits in the tuple.
[0076] At block 510, the image is printed on a printable medium for distribution to users and provide access to either the executable code or the media file to the users. In an aspect, the printing module 1 16 provides for printing the image on the printable medium. In an example implementation, an external printer (not shown in Fig. 5) may be coupled to the DCS 102 and the printing module 1 16 may interact with the external printer through the interface 200. In such an example
implementation, the printing module 1 16 may send a print instruction to the external printer for printing the image on the printable medium. In another example implementation, the DCS 102 may be implemented as a printing system, such as a printer or a printer and scanner system. In such an example implementation, the printing module 1 16 may be implemented to print the image on the printable medium.
[0077] Fig. 6 illustrates another example method for converting the binary data into the image for providing the image to users. At block 602, the binary data is compressed to obtain compressed binary data. As described earlier, the binary data is representative of either an executable code or a media file. In an example, the compression module 108 compresses the binary data to obtain the compressed binary data. The compression module 108 may compress the binary data based on a compression technique, such as Lempel-Ziv compression technique, deflate compression technique, Hoffman compression technique and run-length compression technique.
[0078] At block 604, the compressed binary data is encrypted to obtain encrypted binary data. In an aspect, the encryption module 206 encrypts the compressed binary data by utilizing the encryption key 212 to obtain the encrypted data. The encryption module 206 may utilize an encryption technique, such as the DES algorithm or the Blowfish algorithm, to encrypt the compressed binary data to obtain encrypted binary data. The compressed binary data is encrypted to secure the binary data and prevent any unauthorized decoding by a user who does not have access to a corresponding decryption key.
[0079] Thereafter at block 606, error detection encoding is performed on the encrypted binary data as previously explained with reference to block 502 in description of Fig.5. In an example, the error detection encoding module 1 10 performs error detection encoding on the encrypted binary data to obtain the encoded binary data. Thereafter, at block 608, the encoded binary data is clustered into multiple tuples as described with reference to block 504 in Fig. 5 description. In
an example implementation, the segmenting module 1 12 clusters the encoded binary data into the multiple tuples.
[0080] At block 610, number of bits in a tuple is segmented by an integer 'x' as previously explained at block 506 in description of Fig.5. In an example, the segmenting module 112 segments 'n' number of bits in the tuple into 'x' bit sequences, where each bit sequence includes 'n/x' number of bits.
[0081] Thereafter, at block 612, an image corresponding to the tuple is generated as described with reference to block 508 of Fig.5. The image generation module 1 14 generates the image including 'x' number of sectors. Each sector represents a unique area within the image and corresponds to a bit sequence in the tuple. Further, each sector includes a colour associated with the bit sequence. For example, the image generating module 1 14 may generate a square corresponding to the tuple. The square may include 4 sectors, where each sector corresponds to a quadrant of the square. Each sector corresponds to a bit sequence and includes a colour associated with the bit sequence. For instance, a sector of the square may correspond to a bit sequence '010' and may include colour black associated with the bit sequence Ό10'.
[0082] At block 614, the image is provided to the users. In an aspect, the image may be provided to the users through an email service where the users receive the image in email accounts of the users or by printing the image on a printable medium, such as paper and delivering the printable medium to the users. In another example, the image may be displayed on a screen of a device, such as a laptop, a tablet or a personal computer such that the users may scan and capture the image displayed on the screen for subsequently converting the image to binary data.
[0083] Referring to Fig. 7, in an implementation of the present subject matter, at block 702, an image including 'x' number of sectors is scanned, where 'x' is an integer. Each sector represents a unique area within the image and includes a colour. In an example, the colour may correspond to a shade within a grayscale.
The shade may have a colour intensity that is different from other shades used for representing other sectors, where the difference in colour intensities of the shades is used for identifying the shade and determine a corresponding bit sequence. In an example implementation, the scanning module 412 provides for scanning of the image including 'x' number of sectors. For instance, the scanning module 412 may, in one example, generate control instructions for controlling a scanning device or an image capturing device. The control instructions when executed may operate such a scanning device or an image capturing device (not shown in Figs. 7). In an example, the scanning device or the image capturing device may either be coupled to the ICS 400 or may be integrated within the ICS 400. In an example, the captured image may be a square having 8 sectors.
[0084] At block 704, a bit sequence corresponding to the colour of a sector is determined. The bit sequence includes 'b' number of bits, where 'b' is an integer. In an example implementation, the data generation module 414 determines a bit sequence corresponding to the colour of the sector. The data generation module 414 may determine the bit sequence based on a predefined bit sequence to colour mapping that includes mapping of each bit sequence and a corresponding colour. In the previous example, the data generation module 414 may determine a bit sequence, for instance of 3 bits, for each sector from amongst the 8 sectors of the image.
[0085] At block 706, each sector in the image is traversed in a predefined sequence to obtain 'x*b' number of bits. The 'x*b' number of bits correspond to a portion of the binary data that is obtained from one image. In an example implementation, the data generation module 414 traverses the sectors in the predefined sequence to obtain the 'x*b' number of bits corresponding to the portion of the binary data. Referring to the previous example, the data generation module 414 traverses the 8 sectors in the predefined sequence to obtain 8*3 = 24 bits of the binary data that is obtained from one image. In an example, the portion of
binary data may include y number of bits that represent actual bits of binary data, and other redundant bits added for error correction during encoding.
[0086] In an example, the binary data so generated may be encoded, encrypted, and compressed and therefore the binary data may have to be decoded, decrypted, and decompressed to obtain original binary data. To decode the binary data, an error in the 'x*b' number of bits is detected based on error detection decoding to obtain decoded bits, at block 708. In one example, the error detection module 416 detects the error in the x*b' number of bits to obtain the decoded bits.
[0087] At block 710, y number of bits of the binary data are accumulated to form 't*y' number of bits, where y is the number of bits that represents the binary data in the portion of binary data after excluding the redundant bits and is number of images corresponding to either the executable code or the media file, excluding added images used for error detection. In an example, the data generation module 414 accumulates the y number of bits of the binary data to form 't*y' number of bits. Thereafter at block 712, a decryption key is applied to the 't*y' number of bits to decrypt the 't*y' number of bits. In one example, the data generation module 414 applies the decryption key 426 to decrypt the 't*y' number of bits.
[0088] In an example, the 't*y' number of bits obtained may be compressed and therefore may have to decompressed to obtain original binary data. Therefore at block 714, the 't*y' number of bits are decompressed based on a binary data compression ratio 'c' to obtain 't*y*c' number of bits of the binary data. The binary data compression ratio 'c' may be a compression ratio that may be used for compressing the binary data during encoding. In an example implementation of the present subject matter, the decompression module 420 performs decompression of the 't*y' number of bits based on the binary data compression ratio 'c' to obtain 't*y*c' number of bits of the binary data. The 't*y*c' number of bits represent original
bits of the binary data without any redundant bits and represents the executable code or the media file.
[0089] Fig. 8 illustrates a computing environment 800 implementing a non- transitory computer-readable medium 802, according to an implementation of the present subject matter. In one implementation, the non-transitory computer- readable medium 802 may be utilized by a computing device, such as the Image Conversion System (ICS) 400 (not shown). The ICS 400 may be implemented in a public networking environment or a private networking environment. In one implementation, the computing environment 800 may include a processor 804 communicatively coupled to the non-transitory computer-readable medium 802 through a communication link 806 connecting to a network 808.
[0090] For example, the processor 804 may be implemented in a computing engine, such as the ICS 400 as described earlier. The non-transitory computer- readable medium 802 may be, for example, an internal memory device or an external memory device. In one implementation, the communication link 806 may be a direct communication link, such as any memory read/write interface. In another implementation, the communication link 806 may be an indirect communication link, such as a network interface. In such a case, the processor 804 may access the non-transitory computer-readable medium 802 through the network 808. The network 808 may be a single network or a combination of multiple networks and may use a variety of different communication protocols.
[0091] The processor 804 may be communicating with the network environment 800 over the network 808. In one implementation, the non -transitory computer-readable medium 802 includes a set of computer-readable instructions, such as instructions to scan image 812 (instructions 812), instructions to determine bit sequence 814 (instructions 814), instructions to obtain bits 816 (instructions 816), and instructions to detect error 818 (instructions 818). The set of computer- readable instructions may be accessed by the processor 804 through the
communication link 806 and subsequently executed to obtain binary data from an image file.
[0092] For example, the instructions 812 are accessed by the processor 804 to allow scanning of multiple images from the image file and capture the images. Each image includes 'x' number of sectors, where 'x' is an integer. Each sector includes a colour and corresponds to a unique area within the image. In a scenario, the instructions 812 may be utilized to scan the image 306-1 from the image file 308.
[0093] The instructions 814 are accessed by the processor 804 to determine bit sequence corresponding to the colour of a sector. The bit sequence includes 'b' number of bits, where 'b' is an integer. In an example, 'b' number of bits may be equal to 'n/x', where n and x are integers and represent number of bits in a tuple and number of bit sequences in a tuple respectively. Further, n is multiple of x. In an example implementation, the processor 804 determines the bit sequences including 'b' number of bits based on a predefined bit sequence to colour mapping that includes mapping of the colour of the sectors with the bit sequences as explained earlier. The predefined bit sequence to colour mapping may be stored as data 810 and may be accessed through the network 808. In an example, the 'b' number of bits in a bit sequence is determined based on various factors. For instance, 'b' may be determined based on resolution of a scanner that may scan the image, number of bits to be represented by one sector, and printer efficiency.
[0094] Further, the instructions 816 are accessed by the processor 804 to traverse through each sector of an image in a predefined sequence to obtain 'x*b" number of bits. The 'x*b' number of bits correspond to a portion of binary data representing either an executable code or a media file.
[0095] In an example, the binary data so obtained may be encoded, encrypted, and compressed and therefore the binary data may have to be decoded, decrypted, and decompressed to obtain original binary data.
[0096] To decode the data, the instructions 818 are accessed by the processor 804 to detect any error in the 'x*b' number of bits based on error detection decoding to obtain decoded bits.
[0097] In an example implementation, the non-transitory computer readable medium 802 may include other instructions (not shown in the figure), such as instructions to accumulate bits, instructions to decrypt bits, and instructions to decompress bits. The processor 804 accesses the instructions to accumulate bits for accumulating y number of bits of the binary data to form 't*y' number of bits. As explained earlier, y is the number of bits from the portion of binary data that represents the binary data after excluding the redundant bits added for error correction and is number of images corresponding to the executable code or the media file. In an example, the number of images may not include images that correspond to bits added to the binary data for error detection during encoding of the binary data.
[0098] Further, the instructions to decrypt bits are accessed by the processor 804 to apply a decryption key to the 't*y' number of bits for decrypting the 't*y' number of bits. In an example, the 't*y' number of bits may represent bits of binary data without any redundant bits and may be compressed. Thereafter, to decompress the 't*y' number of bits, the processor 804 accesses the instructions to decompress bits and decompresses the 't*y' number of bits based on a binary data compression ratio 'c' to obtain the 't*y*c' number of bits of the binary data.
[0099] In an example, the 't*y*c' number of bits of the binary data corresponds to original binary data and represents the executable code or the media file. In an example, the non-transitory computer readable medium 802 may include instructions to execute (not shown in the figure). The processor 804 may access the instructions to execute for executing the executable code and install a driver of a device, such as a printer, a laptop, a scanner, and a tablet.
[00100] Therefore, the described techniques facilitate efficient conversion of the binary data to the images for distribution of the images to users. Further, the
described techniques allow efficient retrieval of the binary data from the images thereby eliminating use of a reader, such as a CD drive or a pen drive.
[00101] Although implementations of present subject matter have been described in language specific to structural features and/or methods, it is to be understood that the present subject matter is not necessarily limited to the specific features or methods described. Rather, the specific features and methods are disclosed and explained in the context of a few implementations for the present subject matter.
Claims
1 . A method comprising:
performing error detection encoding on binary data to obtain encoded binary data, the binary data being representative of at least one of an executable code and a media file; clustering the encoded binary data into a plurality of tuples, each comprising 'n' number of bits, 'n' being an integer; segmenting the 'n' number of bits of a tuple by an integer 'x' to obtain at least one bit sequence comprising 'n/x' number of bits, 'n' being multiple of 'x', wherein each of the at least one bit sequence is associated with a distinct colour in a predefined bit sequence to colour mapping; generating an image comprising 'x' number of sectors, a sector being a unique area within the image, wherein each of the sectors correspond to a bit sequence in the tuple, and wherein each of the sectors has a colour associated with the corresponding bit sequence; and printing the image on a printable medium for distribution to users to provide access to at least one of the executable code and the media file to the users.
2. The method as claimed in claim 1 further comprising compressing the binary data to obtain compressed binary data, wherein the error detection encoding is performed on the compressed binary data.
3. The method as claimed in claim 1 further comprising encrypting the binary data to obtain encrypted binary data, wherein the error detection encoding is performed on the encrypted binary data.
4. The method as claimed in claim 3, wherein the binary data is encrypted based on at least one of Lempel-Ziv (LZ) compression technique, Deflate compression technique, Hoffman compression technique, and run- length compression technique.
5. The method as claimed in claim 1 , wherein the 'n/x' number of bits within the at least one bit sequence is based on resolution of scanning of a scanner that is to scan the image.
6. A system comprising: a processor; a compression module, coupled to the processor, to compress binary data, the binary data being representative of at least one of an executable code and a media file; an error detection encoding module, coupled to the processor, to encode the binary data; a segmenting module, coupled to the processor, to: fragment the encoded binary data into a plurality of tuples, each comprising 'n' number of bits, 'n' being an integer; and form, for each of the plurality of tuples, at least one bit sequence comprising 'n/x' number of bits, wherein 'x' and 'n' are integers, and 'n' is a multiple of 'x'; an image generation module, coupled to the processor, to: generate an image file comprising a plurality of images, each image corresponding to a tuple, the image comprising 'x' number of
sectors, wherein each of the sectors is to have a colour associated with a corresponding bit sequence in the tuple; and a printing module to: provide for printing the image file.
7. The system as claimed in claim 6, wherein the error detection encoding module encodes the binary data based on at least one of a hamming code, a cyclic code, a Bose Chaudhuri and Hocquenghem (BCH) code, and a Golay code.
8. The system as claimed in claim 6, wherein the executable code is to be executed for installing a driver of a device.
9. The system as claimed in claim 8, wherein the device is at least one of a printer, and a scanner.
10. The system as claimed in claim 6, wherein the media file comprises at least one of a Motion Pictures Expert Group (MPEG) Audio Layer 3 (.mp3) and a Waveform Audio File Format (.wav) based content.
1 1 . The system as claimed in claim 6, wherein the image generation module is to generate the image based on a predefined bit sequence to colour mapping, the bit sequence to colour mapping provides an indication of a colour associated with the at least one bit sequence of each of the plurality of tuples.
12. A non-transitory computer-readable medium comprising instructions executable by a processing resource to:
scan an image comprising 'x' number of sectors, 'x' being an integer, a sector being a unique area within the image, wherein each of the sectors has a colour; determine a bit sequence corresponding to the colour of a sector, the bit sequence comprising 'b' number of bits, 'b' being an integer; and traverse each of the sectors in the image in a predefined sequence to obtain 'x*b' number of bits, wherein 'x*b' number of bits correspond to a portion of binary data representing at least one of an executable code and a media file; and detect error in the 'x*b' number of bits based on error detection decoding to obtain decoded bits.
13. The non-transitory computer-readable medium as claimed in claim 12, wherein the instructions to determine the bit sequence comprises accessing a predefined bit sequence to colour mapping, wherein the 'b' number of bits corresponding to a colour in the predefined bit sequence to colour mapping is based on a resolution of a device that is to scan the image.
14. The non-transitory computer-readable medium as claimed in claim 12, wherein the instructions are to execute the executable code for installing a driver of a device.
15. The non-transitory computer-readable medium as claimed in claim 12, wherein the instructions are to:
accumulate y number of bits of the binary data to form 't*y' number of bits, being number of images corresponding to at least one of the executable code and the media file, excluding added image used for error detection; apply a decryption key to the 't*y' number of bits to decrypt the 't*y' number of bits; and decompress the 't*y' number of bits based on a binary data compression ratio 'c' to obtain the 't*y*c' number of bits of the binary data.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/IN2016/050215 WO2018002944A1 (en) | 2016-07-01 | 2016-07-01 | Converting binary data to images |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/IN2016/050215 WO2018002944A1 (en) | 2016-07-01 | 2016-07-01 | Converting binary data to images |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2018002944A1 true WO2018002944A1 (en) | 2018-01-04 |
Family
ID=60785309
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/IN2016/050215 WO2018002944A1 (en) | 2016-07-01 | 2016-07-01 | Converting binary data to images |
Country Status (1)
Country | Link |
---|---|
WO (1) | WO2018002944A1 (en) |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110288673A (en) * | 2019-05-08 | 2019-09-27 | 深圳大学 | Method and system for mapping instruction sequences into images |
US10796122B1 (en) | 2019-03-18 | 2020-10-06 | Capital One Services, Llc | Optimizing detection of images in relation to targets based on colorspace transformation techniques |
WO2020219851A1 (en) * | 2019-04-24 | 2020-10-29 | Capital One Services, Llc | Colorspace encoding multimedia data on a physical page |
US10833852B1 (en) | 2019-10-03 | 2020-11-10 | Capital One Services, Llc | Encoded data along tape based on colorspace schemes |
US10867226B1 (en) | 2019-11-04 | 2020-12-15 | Capital One Services, Llc | Programmable logic array and colorspace conversions |
US10878600B1 (en) | 2019-12-10 | 2020-12-29 | Capital One Services, Llc | Augmented reality system with color-based fiducial marker utilizing local adaptive technology |
CN112597520A (en) * | 2020-12-28 | 2021-04-02 | 德州正捷电气有限公司 | Data processing system and method based on data segmentation |
CN112613521A (en) * | 2020-12-28 | 2021-04-06 | 德州正捷电气有限公司 | Multilevel data analysis system and method based on data conversion |
US10977462B2 (en) | 2019-03-18 | 2021-04-13 | Capital One Services, Llc | Detection of images in relation to targets based on colorspace transformation techniques and utilizing ultraviolet light |
US10977535B2 (en) | 2019-03-18 | 2021-04-13 | Capital One Services, Llc | Detection of images in relation to targets based on colorspace transformation techniques and utilizing infrared light |
US10977536B2 (en) | 2019-03-18 | 2021-04-13 | Capital One Services, Llc | Detection of images in relation to targets based on colorspace transformation techniques and utilizing ultraviolet and infrared light |
US11024256B2 (en) | 2019-06-20 | 2021-06-01 | Capital One Services, Llc | Adaptive image display based on colorspace conversions |
US11184150B2 (en) | 2019-04-18 | 2021-11-23 | Capital One Services, Llc | Transmitting encoded data along transmission mediums based on colorspace schemes |
US11200751B2 (en) | 2019-07-25 | 2021-12-14 | Capital One Services, Llc | Augmented reality system with color-based fiducial marker |
US11302036B2 (en) | 2020-08-19 | 2022-04-12 | Capital One Services, Llc | Color conversion between color spaces using reduced dimension embeddings |
US11342943B2 (en) | 2019-10-25 | 2022-05-24 | Capital One Services, Llc | Data encoding with error-correcting code pursuant to colorspace schemes |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100038439A1 (en) * | 2008-08-15 | 2010-02-18 | International Business Machines Corporation | Thin film transistor liquid crystal display barcodes |
CN101667256A (en) * | 2008-03-27 | 2010-03-10 | 电装波动株式会社 | QR code with a specific pattern to designate the location of the unit and distinguish it from the background |
CN103632179A (en) * | 2012-08-22 | 2014-03-12 | 上海育郡信息科技有限公司 | Three-dimensional bar code encoding and decoding method and device |
CN104091189A (en) * | 2014-05-07 | 2014-10-08 | 范京龙 | Encoding and decoding method of micro-window color two-dimensional code |
CN104268615A (en) * | 2014-10-24 | 2015-01-07 | 重庆思根科技有限公司 | Encoding method and decoding method for color two-dimensional code |
-
2016
- 2016-07-01 WO PCT/IN2016/050215 patent/WO2018002944A1/en active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101667256A (en) * | 2008-03-27 | 2010-03-10 | 电装波动株式会社 | QR code with a specific pattern to designate the location of the unit and distinguish it from the background |
US20100038439A1 (en) * | 2008-08-15 | 2010-02-18 | International Business Machines Corporation | Thin film transistor liquid crystal display barcodes |
CN103632179A (en) * | 2012-08-22 | 2014-03-12 | 上海育郡信息科技有限公司 | Three-dimensional bar code encoding and decoding method and device |
CN104091189A (en) * | 2014-05-07 | 2014-10-08 | 范京龙 | Encoding and decoding method of micro-window color two-dimensional code |
CN104268615A (en) * | 2014-10-24 | 2015-01-07 | 重庆思根科技有限公司 | Encoding method and decoding method for color two-dimensional code |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10977462B2 (en) | 2019-03-18 | 2021-04-13 | Capital One Services, Llc | Detection of images in relation to targets based on colorspace transformation techniques and utilizing ultraviolet light |
US10796122B1 (en) | 2019-03-18 | 2020-10-06 | Capital One Services, Llc | Optimizing detection of images in relation to targets based on colorspace transformation techniques |
US10977536B2 (en) | 2019-03-18 | 2021-04-13 | Capital One Services, Llc | Detection of images in relation to targets based on colorspace transformation techniques and utilizing ultraviolet and infrared light |
US10977535B2 (en) | 2019-03-18 | 2021-04-13 | Capital One Services, Llc | Detection of images in relation to targets based on colorspace transformation techniques and utilizing infrared light |
US11184150B2 (en) | 2019-04-18 | 2021-11-23 | Capital One Services, Llc | Transmitting encoded data along transmission mediums based on colorspace schemes |
WO2020219851A1 (en) * | 2019-04-24 | 2020-10-29 | Capital One Services, Llc | Colorspace encoding multimedia data on a physical page |
US11003968B2 (en) | 2019-04-24 | 2021-05-11 | Capital One Services, Llc | Colorspace encoding multimedia data on a physical page |
CN110288673A (en) * | 2019-05-08 | 2019-09-27 | 深圳大学 | Method and system for mapping instruction sequences into images |
US11024256B2 (en) | 2019-06-20 | 2021-06-01 | Capital One Services, Llc | Adaptive image display based on colorspace conversions |
US11200751B2 (en) | 2019-07-25 | 2021-12-14 | Capital One Services, Llc | Augmented reality system with color-based fiducial marker |
US10833852B1 (en) | 2019-10-03 | 2020-11-10 | Capital One Services, Llc | Encoded data along tape based on colorspace schemes |
US11342943B2 (en) | 2019-10-25 | 2022-05-24 | Capital One Services, Llc | Data encoding with error-correcting code pursuant to colorspace schemes |
US10867226B1 (en) | 2019-11-04 | 2020-12-15 | Capital One Services, Llc | Programmable logic array and colorspace conversions |
US10878600B1 (en) | 2019-12-10 | 2020-12-29 | Capital One Services, Llc | Augmented reality system with color-based fiducial marker utilizing local adaptive technology |
US11302036B2 (en) | 2020-08-19 | 2022-04-12 | Capital One Services, Llc | Color conversion between color spaces using reduced dimension embeddings |
CN112613521A (en) * | 2020-12-28 | 2021-04-06 | 德州正捷电气有限公司 | Multilevel data analysis system and method based on data conversion |
CN112597520A (en) * | 2020-12-28 | 2021-04-02 | 德州正捷电气有限公司 | Data processing system and method based on data segmentation |
CN112613521B (en) * | 2020-12-28 | 2023-01-20 | 上海埃林哲软件系统股份有限公司 | Multilevel data analysis system and method based on data conversion |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2018002944A1 (en) | Converting binary data to images | |
He et al. | A novel high-capacity reversible data hiding scheme for encrypted JPEG bitstreams | |
US5337362A (en) | Method and apparatus for placing data onto plain paper | |
US9042663B2 (en) | Two-level error correcting codes for color space encoded image | |
US8842825B2 (en) | Data encoding apparatus, data encoding method, data encoding program, and recording medium | |
Tierney et al. | Cryptagram: Photo privacy for online social media | |
US8924730B2 (en) | Digital watermarking for secure transmission between a source component and a node device | |
US20130179413A1 (en) | Compressed Distributed Storage Systems And Methods For Providing Same | |
US8340443B2 (en) | System and method for compressing compressed data | |
US20160217358A1 (en) | Data-bearing medium | |
CN116235155A (en) | Data modification | |
CN110730277B (en) | Information coding and method and device for acquiring coded information | |
US20140263670A1 (en) | Information exchange using photo camera as display for color space encoded image | |
US9665813B2 (en) | Data-bearing media | |
US20230084574A1 (en) | Bit sequence storage method and system | |
US20190215012A1 (en) | High performance data redundancy and fault tolerance | |
JP5558636B2 (en) | Page digital image rasterization processing method and apparatus | |
CN113557529B (en) | Hybrid 2D barcode reader | |
JP4380125B2 (en) | Printer having cache memory | |
JP2008259197A (en) | System and method for efficient print job compression | |
CN113557530B (en) | Hybrid two-dimensional bar code and hybrid two-dimensional bar code generator | |
CN119397583B (en) | A data processing method, system, computer program product, device and medium | |
Yan | Building a Versatile Deduplication System | |
JP6428232B2 (en) | Image processing apparatus and image composition method | |
JP3169801U (en) | Information storage device and information restoration device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 16907196 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 16907196 Country of ref document: EP Kind code of ref document: A1 |