Fully reversible image-based compression method for three-dimensional data

By converting 3D data into an image-based structure using reversible data hiding, the method addresses inefficiencies in existing compression methods, enabling efficient storage and processing of 3D data for enhanced data sharing and visualization.

WO2026030572A1PCT designated stage Publication Date: 2026-02-05THE GOVERNMENT OF THE UNITED STATES OF AMERICA AS REPRESENTED BY THE SECRETARY DEPARTMENT OF HEALTH & HUMAN SERVICES
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
PCT/US2025/040093
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-07-31
Filing Date
2025-07-31
Publication Date
2026-02-05

AI Technical Summary

Technical Problem

Existing methods for compressing three-dimensional data are inefficient, requiring specialized file viewers and lack a mature generative model ecosystem for effective data storage, visualization, and sharing.

Method used

A method that converts 3D data into an image-based data structure by calculating an adjacency matrix, compresses it using reversible data hiding techniques in multiple image channels, and generates a smaller, retrievable image that maintains 3D information for efficient storage and processing.

Benefits of technology

The method allows for efficient storage and processing of 3D data with reduced compute cost and time, enabling end-to-end data processing and facilitating data sharing and visualization without loss of information.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure US2025040093_05022026_PF_FP_ABST
    Figure US2025040093_05022026_PF_FP_ABST
Patent Text Reader

Abstract

A system and method takes a three-dimensional (3D) data file as input (e.g. protein databank, PDB) and: 1) creates an informative color portable network graphics (PNG) image representing the 3D data by calculating an adjacency matrix; 2) compresses the input data file to binary; 3) uses a reversible data hiding technique in all four image channels (red, green, blue, alpha) to hide / embed the complete compressed data file within the adjacency matrix image; 4) and allows for extracting the original data file from the image without loss of information.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] FULLY REVERSIBLE IMAGE-BASED COMPRESSION METHOD FOR THREE-DIMENSIONAL DATA

[0002] Related Applications

[0003] This application claims the benefit of U.S. Provisional Patent Application Serial No. 63 / 677,447 (filed July 31 , 2024), which is herein incorporated by reference in its entirety.

[0004] Federally-Sponsored Research and Development

[0005] This invention was made with United States Government support from the National Institute of Standards and Technology (NIST), an agency of the United States Department of Commerce. The Government has certain rights in this invention.

[0006] Copyright Notice

[0007] This patent disclosure may contain material that is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure as it appears in the U.S. Patent and Trademark Office patent file or records but otherwise reserves any and all copyright rights.

[0008] Field of Invention

[0009] The present invention relates generally to data compression, and more particularly to compressing three-dimensional data into an image-based data structure.

[0010] Background

[0011] The state of image-based machine learning is highly advanced, with a mature set of tools that run on both servers and consumer hardware. It is currently simple to generate highly realistic images of a given object from a text prompt. Models can interpolate between multiple complex semantic concepts. Summary of Invention

[0012] These image generation and interpolation properties would be highly desirable for, among other things, classifying proteins by their apparent function and generating new proteins for a given functional prompt. Therefore, for these and other data generation and manipulation purposes, presented herein is a software algorithm that takes a three-dimensional (3D) data file as input (e.g. protein databank, PDB) and: 1 ) creates an informative color portable network graphics (PNG) image representing the 3D data by calculating an adjacency matrix; 2) compresses the input data file to binary; 3) uses a reversible data hiding technique in multiple image channels (e.g., red, green, blue, alpha) to hide / embed the complete compressed data file within the adjacency matrix image; 4) and allows for extracting the original data file from the image without loss of information. The generated matrix image with the embedded compressed input file is significantly smaller than the original input file, so the method serves as a compression strategy. Every algorithmically generated image carries corresponding retrievable 3D information, thus, machine learning models trained on these images are expected to simultaneously learn to predict 2D and 3D information.

[0013] By embedding the 3D data directly into images: 1) the entire dataset is compressed to a smaller size, allowing for greater storage efficiency; 2) and the 3D input stream is avoided entirely, allowing for end-to-end data processing / inference by more efficient image models capable of running at a fraction of the compute cost and time (i.e. StableDiffusion, DALL-E).

[0014] Applications include classification and generation of any entity that can be represented in both 2D and 3D, such as: biomolecular structures embedded into adjacency matrices, LIDAR data embedded into photographs, 3D models of products embedded into photographs of corresponding products, etc. Embodiments of the invention include novel methods for efficient storage of 3D data as common images (PNG), which would facilitate data storage, visualization, and sharing as compared to more proprietary 3D formats (PDB, OBJ) that require specific file viewers and do not yet have a mature and accessible generative model ecosystem.

[0015] According to an aspect of the invention, a method of embedding binary data in a cover image includes the steps of: calculating a respective intensity histogram for each of one or more color channels to be modified in the cover image; determining a minimum frequency zero point and a maximum frequency peak point in each respective intensity histogram; shifting each respective histogram by shifting pixel values from the peak point to and excluding the zero point towards the zero point by 1 , thereby creating a gap in the histogram adjacent the peak point; modifying one or more color channels by embedding the binary data into the one or more color channels by iteratively shifting or not shifting, for each binary datum, a respective peak point pixel into the adjacent gap based on a value of the binary datum; and creating a marked image by combining the one or more modified color channels along with any unmodified color channels of the cover image.

[0016] Optionally, the method includes converting data to be embedded into binary representation to create the binary data; and determining a size of the binary data.

[0017] Optionally, the method includes the steps of: loading the cover image in RGBA format; and splitting the cover image into separate color channels.

[0018] Optionally, the color channels comprise red, green, blue, and alpha.

[0019] Optionally, the method includes the steps of: determining dimensions of each color channel; determining a maximum embedding capacity from the dimensions; and comparing a size of the binary data with the maximum embedding capacity.

[0020] Optionally, the method includes the step of: expanding the cover image such that the maximum embedding capacity equals or exceeds the size of the binary data.

[0021] Optionally, the method includes the steps of: processing input; obtaining coordinates by parsing structure from input; calculating a minimal, informative set of coordinates; performing a neighbor search optimization of structural data; calculating other parameters of data from the input may be calculated; completing parameter collection and normalization; constructing an adjacency matrix; and creating the marked image from the adjacency matrix.

[0022] Optionally, the step of constructing an adjacency matrix includes initializing an empty matrix with dimensions equal to a number of residues in a protein and populate the matrix by iterating through all pairs of residues encoding normalized biophysical parameters into the matrix. Optionally, the method includes the step of including transparent padding to give the cover image a predetermined size.

[0023] According to another aspect of the invention, a method for extracting binary data from a color channel of a marked image includes the steps of: loading the marked image in RGBA format; splitting the marked image into separate color channels; determining dimensions of a color channel of interest; calculating an intensity histogram of the color channel of interest; determining a peak point of the intensity histogram; and extracting binary data from the color channel of interest by iteratively evaluating each pixel and appending a binary file with a corresponding binary value for each respective pixel that equals the peak point or is shifted from the peak point by 1 in a predetermined direction.

[0024] Optionally, the method includes the step of: concatenating extracted binary data from one or more additional color channels.

[0025] Optionally, the method includes the step of: converting the extracted binary data into ASCII characters using a predetermined character encoding.

[0026] According to another aspect of the invention, a method for generating a visual representation of structure and one or more other properties through creation of an enhanced adjacency matrix image, the method comprising the steps of: processing input; obtaining coordinates by parsing structure from input; calculating a minimal, informative set of coordinates; performing a neighbor search optimization of structural data; calculating other parameters of data from the input may be calculated; completing parameter collection and normalization; constructing an adjacency matrix; and generating an image from the adjacency matrix.

[0027] Optionally, the minimal, informative set of coordinates includes a centroid calculated by averaging coordinates of all atoms within a residue.

[0028] Optionally, the step of performing a neighbor search optimization of structural data includes identifying neighboring residues within a predetermined distance threshold.

[0029] Optionally, the step of calculating other parameters includes, for each pair of residues within a distance threshold, calculating hydrophobicity, isoelectric point, molecular weight, aromaticity, and instability index.

[0030] Optionally, the step of constructing an adjacency matrix includes initializing an empty matrix with dimensions equal to a number of residues in a protein and populate the matrix by iterating through all pairs of residues encoding normalized biophysical parameters into the matrix.

[0031] Optionally, the method includes the step of encoding data in the adjacency matrix into color channels of an image as color values.

[0032] Optionally, the method includes the step of enforcing symmetry by mirroring calculated values across a main diagonal of the adjacency matrix.

[0033] Optionally, the method includes the step of including transparent padding to give the image a predetermined size.

[0034] The foregoing and other features of the invention are hereinafter described in greater detail with reference to the accompanying drawings.

[0035] Brief Description of the Drawings

[0036] FIG. 1 shows an exemplary process for reversible data hiding in digital images using histogram shifting and channel-wise embedding.

[0037] FIG. 2 shows an exemplary data embedding process.

[0038] FIG. 3 shows an exemplary process for data extraction from digital images with hidden data.

[0039] FIG. 4 shows an exemplary process for data extraction.

[0040] FIG. 5 shows an exemplary process of generating a 2D image from 3D data.

[0041] FIG. 6 shows an example adjacency matrix image with an embedded 3D source data file.

[0042] FIG. 7 shows an exemplary computer for executing exemplary processes.

[0043] Detailed Description

[0044] Described herein is a method for reversible data hiding in digital images using histogram shifting and channel-wise embedding. The method allows for the embedding of a large amount of data into a cover image while maintaining the visual quality of the image and enabling the exact recovery of the embedded data.

[0045] The proposed method achieves reversible data hiding by exploiting the histogram characteristics of each color channel in a cover image. By shifting the histogram and embedding data in the peak point region, a large amount of data can be hidden without significantly impacting the visual quality of the image. The extraction process reverses the embedding steps, allowing for the exact recovery of the embedded data (and, optionally, the original image).

[0046] The usage of multiple color channels (red, green, blue, and optionally alpha) increases the embedding capacity compared to using a single channel. The method dynamically adapts to the available embedding space in each color channel, ensuring optimal utilization of the cover image.

[0047] Exemplary embodiments provide a robust and efficient solution for reversible 3D data hiding in digital images, with applications in various fields such as bioinformatics and generative Al. In particular, exemplary algorithm workflows may create unified 2D+3D representations of protein structures from PDB files, represented by informative PNG images embedded with complete 3D structural information.

[0048] The embedding method comprises two main portions: a histogram shifting portion and an embedding binary data portion.

[0049] The histogram shifting portion includes the following steps: Iterate through each pixel in the image. For each pixel, check if its value is greater than the peak_point. If the pixel value > than the peak point, increment its value by 1. Mathematically, this can be represented as: For each pixel p in the image, if 255 > p > peak, then p' = p + 1 . This creates a large gap at peak_point because those pixels were shifted, from p to p’. The process will ‘fill’ this gap with the binary data by adding 1’s or 0’s to the pixels that now occupy peak_point. 255 is the intensity limit for 8 bit images, but this can be replaced with bit depth. Take the number of levels (256 for 8bit) and subtract 1 to get the ceiling (255). This way, when pixels shift to the right, some might change from 255 to 256, but none can change from 256 to 0 (flip). 4bit images hold less data, 16bit hold more. 8bit is by far the most common.

[0050] Next the data may be embedded. Iterate through the image again in the same order. For each shifted pixel with a value equal to the original peak (e.g., 128), check the next bit in the binary data to be embedded. If the binary data bit is 1 , increment the pixel value by 1 (filling up the created gap). If the bit is 0, leave the pixel value unchanged (keeping it p’). Mathematically, this can be represented as:

[0051] - For each pixel p' in the image, if p' == 128, then:

[0052] - If the next binary data bit is 1 , p" = p' + 1 = 129. - If the next binary data bit is 0, p" = p' = 128.

[0053] Naturally, one can only embed until they run out of pixels. This is why exemplary processes search for the most common pixel value in an image: to give the largest embedding space.

[0054] An advantage to exemplary methods is that they visually disrupt the image very little, because the only embedding operations either add +1 / 256th of intensity or change nothing.

[0055] Referring first to Fig. 1 , a method for reversible data hiding in digital images using histogram shifting and channel-wise embedding is shown at 100. The method allows for the embedding of a large amount of data into a cover image while maintaining the visual quality of the image and enabling the exact recovery of the embedded data.

[0056] At block 110, the data for data hiding is prepared. In particular, the data to be hidden is converted into a binary representation, and the size of the binary data is determined.

[0057] At block 120, the cover image is processed. The cover image is loaded in RGBA format and the cover image is split into separate color channels (red, green, blue, and alpha). The dimensions (height and width) of each color channel are also determined.

[0058] At block 130, the maximum embedding capacity is calculated by multiplying the height, width, and the number of color channels. The size of the binary data is compared with the maximum embedding capacity. If the binary data size exceeds the maximum embedding capacity, an error is raised indicating insufficient space in the cover image. In such a case, the cover image may optionally be expanded using any number of image upscaling processes known in the art including, for example, using interpolation.

[0059] At block 140, the data is embedded in the cover image. Referring next to Fig. 2, the data embedding process is illustrated in more detail. At block 210, for each color channel, the intensity histogram of the color channel is calculated. At block 220, the zero point (minimum frequency) and peak point (maximum frequency) in the histogram is determined. At block 230, the histogram is shifted to the right by incrementing pixel values greater than the peak point by 1. (It should be noted that this is for cases in which the zero point is greater than the peak point. Importantly, exemplary methods find the peak point and the zero point and shift the histogram from the peak point towards the zero point, opening up a gap adjacent to the peak point into which pixels are shifted or not during data encoding.) Next the binary data is embedded into the color channel. At block 240, if the pixel value matches the peak point and there is remaining binary data to embed the process proceeds to block 250, otherwise the process iterates to the next pixel until all pixels in the color channel have been assessed. At block 250, if the current bit in the binary data is '1', the pixel value is incremented by 1 , and if the current bit in the binary data is 'O', the pixel value is unchanged. At block 260, the process moves to the next bit in the binary data. The process then proceeds to the next pixel.

[0060] Referring back to Fig. 1 , at block 150, the marked image is created by combining the modified color channels to form a marked RGBA image, and that image is saved. This is the final output that contains the embedded compressed 3D input data.

[0061] Referring next to Fig. 3, a method for data extraction from digital images made by the process described above is shown at 300.

[0062] At block 310 a marked image is loaded in RGBA format.

[0063] At block 320, the marked image is split into separate color channels.

[0064] At block 330, the dimensions (height and width) of each color channel are determined.

[0065] At block 340, the hidden data is extracted from each color channel. Referring next to Fig. 4, the data extraction process is illustrated in more detail. At block 410, the intensity histogram of the color channel is calculated. At block 420, the zero point and peak point in the histogram are determined. Next the binary data is extracted from the color channel, by iterating through each pixel. At block 430, if the pixel value matches the peak point + 1 , append T to the binary data. If the pixel value matches the peak point, append 'O' to the binary data. At block 440, the process iterates to the next pixel in the color channel.

[0066] Referring back to Fig. 3, at block 350, the extracted binary data from all color channels is concatenated.

[0067] At block 360, the data is recovered by converting the extracted binary data into ASCII characters and saving this extracted data to a file using an appropriate character encoding (e.g., 'latin-1 '). Also presented herein is a method and system for generating a visual representation of structure (e.g., protein structure) and interactions through the creation of an enhanced adjacency matrix image.

[0068] Exemplary algorithms combine structural information with other properties (e.g., biophysical properties) to create a rich, informative visualization of three- dimensional data (e.g., protein characteristics). The resulting image encodes multiple layers of information within a single, easily interpretable format, facilitating advanced analysis and comparison (of, e.g., protein structures). The image may optionally be embedded with additional content (e.g., the content of a corresponding input PDB file as described above).

[0069] Referring now to Fig. 5, a method of generating a 2D image from 3D data is shown at 500.

[0070] At block 505, input processing is completed. For example, an exemplary system and method may accept a 3D data file (e.g., a Protein Data Bank (PDB) file) as input, which contains the three-dimensional structural information of an entity (e.g., a protein molecule). Additionally, a user may specify a distance threshold and desired final image dimensions.

[0071] At block 510, structure is parsed to obtain coordinates. For example, an exemplary system and method may utilize a known parser (e.g. the Biopython library's PDBParser) to extract structure (e.g., protein structure) from the input file. In the example of protein structures, the identity of proteins is defined at an amino acid-level, thus, an exemplary system and method identifies and isolates individual amino acid residues within the protein structure.

[0072] At block 515, a minimal, informative set of coordinates is calculated. For example, for each amino acid residue, a centroid is calculated by averaging the coordinates of all atoms within the residue. These residue centroids serve as representative points for the structure in subsequent calculations.

[0073] At block 520, a neighbor search optimization of the structural data is performed. An exemplary algorithm may employ a KD-tree data structure, implemented through, e.g., Biopython's NeighborSearch class, to efficiently identify neighboring residues within the specified distance threshold.

[0074] At block 525, other parameters of the data may be calculated; for example, biophysical parameters. In an exemplary algorithm, for each pair of residues within the distance threshold, five key biophysical parameters may be calculated: 1. hydrophobicity (using the GRAVY scale, e.g.), 2. isoelectric point, 3. molecular weight, 4. aromaticity, and 5. instability index. These calculations may be performed using the ProtParam module from Biopython's SeqUtils package, e.g.

[0075] At block 530, parameter collection and normalization are completed. In an exemplary embodiment, an algorithm may collect all calculated biophysical parameters across the entire protein structure. For each parameter type, it may determine the minimum and maximum values observed. Using these ranges, the algorithm may normalize each parameter to a scale of 0 to 255, enabling representation within the color space of an image.

[0076] At block 535, an adjacency matrix is constructed. In an exemplary embodiment, an empty matrix may be initialized with dimensions equal to the number of residues in the protein. The algorithm may populate this matrix by iterating through all pairs of residues. For each pair within the distance threshold, it may encode the normalized biophysical parameters into RGBA (Red, Green, Blue, Alpha) color values, for example: red channel: normalized hydrophobicity; green channel: normalized isoelectric point; blue channel: normalized molecular weight; alpha channel: average of normalized aromaticity and instability index.

[0077] At block 540, symmetry may optionally be enforced. To ensure the initially diagonal adjacency matrix is symmetric, an exemplary algorithm may mirror the calculated values across the main diagonal of the matrix. Symmetry may be desirable in cases of image generation and / or image manipulation, for example.

[0078] At block 545, the image is generated. In an exemplary embodiment, for example, the populated matrix may be converted into a PIL (Python Imaging Library) Image object in RGBA mode, creating a visual representation of the protein's residue interactions and properties.

[0079] At block 550, transparent padding may optionally be included. Image processing models often perform best on fixed input sizes (e.g., 512x512, 1024x1024 pixels). To accommodate user-specified final image dimensions, an exemplary algorithm may calculate the necessary padding around the adjacency matrix image. It may create a new transparent image of the desired size and centers the adjacency matrix within this larger canvas. At block 555, the final image is output from the method / system. The final padded image is saved, for example as a PNG file, preserving transparency and providing a comprehensive visual representation of, for example, the protein's structure and interactions. An example image is shown in Fig. 6.

[0080] It should be understood that the calculations may be performed by any suitable computer system, such as that diagrammatically shown in FIG. 7. Data is entered into system 700 via any suitable type of user interface 716, and may be stored in memory 712, which may be any suitable type of computer readable and programmable memory and is preferably a non-transitory, computer readable storage medium. Calculations are performed by processor 714, which may be any suitable type of computer processor and may be displayed to the user on display 718, which may be any suitable type of computer display. Processor 714 may be associated with, or incorporated into, any suitable type of computing device, for example, a personal computer or a programmable logic controller. The display 718, the processor 714, the memory 712 and any associated computer readable recording media are in communication with one another by any suitable type of data bus, as is well known in the art.

[0081] Examples of computer-readable recording media include non-transitory storage media, a magnetic recording apparatus, an optical disk, a magnetooptical disk, and / or a semiconductor memory (for example, RAM, ROM, etc.). Examples of magnetic recording apparatus that may be used in addition to memory 712, or in place of memory 712, include a hard disk device (HDD), a flexible disk (FD), and a magnetic tape (MT). Examples of the optical disk include a DVD (Digital Versatile Disc), a DVD-RAM, a CD-ROM (Compact Disc- Read Only Memory), and a CD-R (Recordable)ZRW. It should be understood that non-transitory computer-readable media include all computer-readable media except for a transitory, propagating signal.

[0082] The processes described herein may be embodied in, and fully automated via, software code modules executed by a computing system that includes one or more general purpose computers or processors. The code modules may be stored in any type of non-transitory computer-readable medium or other computer storage device. Some or all the methods may alternatively be embodied in specialized computer hardware. In addition, the components referred to herein may be implemented in hardware, software, firmware, or a combination thereof.

[0083] Many other variations than those described herein will be apparent from this disclosure. For example, depending on the embodiment, certain acts, events, or functions of any of the algorithms described herein can be performed in a different sequence, can be added, merged, or left out altogether (e.g., not all described acts or events are necessary for the practice of the algorithms). Moreover, in certain embodiments, acts or events can be performed concurrently, e.g., through multi-threaded processing, interrupt processing, or multiple processors or processor cores or on other parallel architectures, rather than sequentially. In addition, different tasks or processes can be performed by different machines and / or computing systems that can function together.

[0084] Any logical blocks, modules, and algorithm elements described or used in connection with the embodiments disclosed herein can be implemented as electronic hardware, computer software, or combinations of both. To clearly illustrate this interchangeability of hardware and software, various illustrative components, blocks, modules, and elements have been described above generally in terms of their functionality. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the overall system. The described functionality can be implemented in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the disclosure.

[0085] The various illustrative logical blocks and modules described or used in connection with the embodiments disclosed herein can be implemented or performed by a machine, such as a processing unit or processor, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein. A processor can be a microprocessor, but in the alternative, the processor can be a controller, microcontroller, or state machine, combinations of the same, or the like. A processor can include electrical circuitry configured to process computerexecutable instructions. In another embodiment, a processor includes an FPGA or other programmable device that performs logic operations without processing computer-executable instructions. A processor can also be implemented as a combination of computing devices, e.g., a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration. Although described herein primarily with respect to digital technology, a processor may also include primarily analog components. For example, some or all of the signal processing algorithms described herein may be implemented in analog circuitry or mixed analog and digital circuitry. A computing environment can include any type of computer system, including, but not limited to, a computer system based on a microprocessor, a mainframe computer, a digital signal processor, a portable computing device, a device controller, or a computational engine within an appliance, to name a few.

[0086] The elements of a method, process, or algorithm described in connection with the embodiments disclosed herein can be embodied directly in hardware, in a software module stored in one or more memory devices and executed by one or more processors, or in a combination of the two. A software module can reside in RAM memory, flash memory, ROM memory, EPROM memory, EEPROM memory, registers, hard disk, a removable disk, a CD-ROM, or any other form of non-transitory computer-readable storage medium, media, or physical computer storage known in the art. An example storage medium can be coupled to the processor such that the processor can read information from, and write information to, the storage medium. In the alternative, the storage medium can be integral to the processor. The storage medium can be volatile or nonvolatile.

[0087] While one or more embodiments have been shown and described, modifications and substitutions may be made thereto without departing from the spirit and scope of the invention. Accordingly, it is to be understood that the present invention has been described by way of illustrations and not limitation. Embodiments herein can be used independently or can be combined.

[0088] All ranges disclosed herein are inclusive of the endpoints, and the endpoints are independently combinable with each other. The ranges are continuous and thus contain every value and subset thereof in the range. Unless otherwise stated or contextually inapplicable, all percentages, when expressing a quantity, are weight percentages. The suffix (s) as used herein is intended to include both the singular and the plural of the term that it modifies, thereby including at least one of that term (e.g., the colorant(s) includes at least one colorants). Option, optional, or optionally means that the subsequently described event or circumstance can or cannot occur, and that the description includes instances where the event occurs and instances where it does not. As used herein, combination is inclusive of blends, mixtures, alloys, reaction products, collection of elements, and the like.

[0089] As used herein, a combination thereof refers to a combination comprising at least one of the named constituents, components, compounds, or elements, optionally together with one or more of the same class of constituents, components, compounds, or elements.

[0090] All references are incorporated herein by reference.

[0091] The use of the terms “a,” “an,” and “the” and similar referents in the context of describing the invention (especially in the context of the following claims) are to be construed to cover both the singular and the plural, unless otherwise indicated herein or clearly contradicted by context. It can further be noted that the terms first, second, primary, secondary, and the like herein do not denote any order, quantity, or importance, but rather are used to distinguish one element from another. It will also be understood that, although the terms first, second, etc. are, in some instances, used herein to describe various elements, these elements should not be limited by these terms. For example, a first current could be termed a second current, and, similarly, a second current could be termed a first current, without departing from the scope of the various described embodiments. The first current and the second current are both currents, but they are not the same condition unless explicitly stated as such.

[0092] The modifier about used in connection with a quantity is inclusive of the stated value and has the meaning dictated by the context (e.g., it includes the degree of error associated with measurement of the particular quantity). The conjunction or is used to link objects of a list or alternatives and is not disjunctive; rather the elements can be used separately or can be combined together under appropriate circumstances.

[0093] Although the invention has been shown and described with respect to a certain embodiment or embodiments, it is obvious that equivalent alterations and modifications will occur to others skilled in the art upon the reading and understanding of this specification and the annexed drawings. In particular regard to the various functions performed by the above described elements (components, assemblies, devices, compositions, etc.), the terms (including a reference to a "means") used to describe such elements are intended to correspond, unless otherwise indicated, to any element which performs the specified function of the described element (i.e., that is functionally equivalent), even though not structurally equivalent to the disclosed structure which performs the function in the herein illustrated exemplary embodiment or embodiments of the invention. In addition, while a particular feature of the invention may have been described above with respect to only one or more of several illustrated embodiments, such feature may be combined with one or more other features of the other embodiments, as may be desired and advantageous for any given or particular application.

Claims

ClaimsWhat is claimed is:1 . A method of embedding binary data in a cover image, the method comprising the steps of: calculating a respective intensity histogram for each of one or more color channels to be modified in the cover image; determining a minimum frequency zero point and a maximum frequency peak point in each respective intensity histogram; shifting each respective histogram by shifting pixel values from the peak point to and excluding the zero point towards the zero point by 1 , thereby creating a gap in the histogram adjacent the peak point; modifying one or more color channels by embedding the binary data into the one or more color channels by iteratively shifting or not shifting, for each binary datum, a respective peak point pixel into the adjacent gap based on a value of the binary datum; and creating a marked image by combining the one or more modified color channels along with any unmodified color channels of the cover image.

2. The method of claim 1 , further comprising the steps of: converting data to be embedded into binary representation to create the binary data; and determining a size of the binary data.

3. The method of claim 1 , further comprising the steps of: loading the cover image in RGBA format; and splitting the cover image into separate color channels.

4. The method of claim 3, wherein the color channels comprise red, green, blue, and alpha.

5. The method of claim 3, further comprising the steps of: determining dimensions of each color channel; determining a maximum embedding capacity from the dimensions; andcomparing a size of the binary data with the maximum embedding capacity.

6. The method of claim 5, further comprising the step of: expanding the cover image such that the maximum embedding capacity equals or exceeds the size of the binary data.

7. The method of claim 1 , further comprising the steps of: processing input; obtaining coordinates by parsing structure from input; calculating a minimal, informative set of coordinates; performing a neighbor search optimization of structural data; calculating other parameters of data from the input may be calculated; completing parameter collection and normalization; constructing an adjacency matrix; and creating the marked image from the adjacency matrix.

8. The method of claim 7, wherein the step of constructing an adjacency matrix includes initializing an empty matrix with dimensions equal to a number of residues in a protein and populate the matrix by iterating through all pairs of residues encoding normalized biophysical parameters into the matrix.

9. The method of claim 7, further comprising the step of including transparent padding to give the cover image a predetermined size.

10. A method for extracting binary data from a color channel of a marked image, the method comprising the steps of: loading the marked image in RGBA format; splitting the marked image into separate color channels; determining dimensions of a color channel of interest; calculating an intensity histogram of the color channel of interest; determining a peak point of the intensity histogram; and extracting binary data from the color channel of interest by iteratively evaluating each pixel and appending a binary file with a corresponding binaryvalue for each respective pixel that equals the peak point or is shifted from the peak point by 1 in a predetermined direction.11 . The method of claim 10, further comprising the step of: concatenating extracted binary data from one or more additional color channels.

12. The method of claim 10, further comprising the step of: converting the extracted binary data into ASCII characters using a predetermined character encoding.

13. A method for generating a visual representation of structure and one or more other properties through creation of an enhanced adjacency matrix image, the method comprising the steps of: processing input; obtaining coordinates by parsing structure from input; calculating a minimal, informative set of coordinates; performing a neighbor search optimization of structural data; calculating other parameters of data from the input may be calculated; completing parameter collection and normalization; constructing an adjacency matrix; and generating an image from the adjacency matrix.

14. The method of claim 13, wherein the minimal, informative set of coordinates includes a centroid calculated by averaging coordinates of all atoms within a residue.

15. The method of claim 13, wherein the step of performing a neighbor search optimization of structural data includes identifying neighboring residues within a predetermined distance threshold.

16. The method of claim 13, wherein the step of calculating other parameters includes, for each pair of residues within a distance threshold,calculating hydrophobicity, isoelectric point, molecular weight, aromaticity, and instability index.

17. The method of claim 13, wherein the step of constructing an adjacency matrix includes initializing an empty matrix with dimensions equal to a number of residues in a protein and populate the matrix by iterating through all pairs of residues encoding normalized biophysical parameters into the matrix.

18. The method of claim 13, further comprising the step of encoding data in the adjacency matrix into color channels of an image as color values.

19. The method of claim 13, further comprising the step of enforcing symmetry by mirroring calculated values across a main diagonal of the adjacency matrix.

20. The method of claim 13, further comprising the step of including transparent padding to give the image a predetermined size.

Citation Information

Patent Citations

  • A method and device for generating a protein function prediction model

    CN116884473B

  • Methods and apparatus for reversible data hiding through histogram modification

    US7415155B2