Feature #2536
Type for binary encoded/compressed Images
Status: | Resolved | Start date: | 04/25/2016 | |
---|---|---|---|---|
Priority: | Normal | Due date: | ||
Assignee: | J. Moringen | % Done: | 100% | |
Category: | Type Proposal | |||
Target version: | Robotics Service Bus - rsb-0.15 |
Description
Because it is not always feasible to send uncompressed binary
images an image type for encoded/compressed images could be useful.
One proposal with typical image file formats could be:
package rst.vision; option java_outer_classname = "EncodedImageType"; /** * An image encoded in a certain format. * * @author Viktor Richter <vrichter@techfak.uni-bielefeld.de> */ message EncodedImage { /** * Identifies an image encoding format. */ enum Encoding { BMP = 0; PPM = 1; PNG = 2; JPG = 3; JP2 = 4; TIFF = 5; } /** * The encoding used to encode an image into binary data. */ required Encoding encoding = 2; /** * Holds the binary image data. * * Can be decoded using the provided encoding information. */ required bytes data = 1; }
Associated revisions
Added EncodedImage type in proto/sandbox/rst/vision/EncodedImage.proto
fixes #2536
- proto/sandbox/rst/vision/EncodedImage.proto: new file; EncodedImage
type
Signed-off-by: Jan Moringen <jmoringe@techfak.uni-bielefeld.de>
History
#1 Updated by J. Moringen over 8 years ago
- Status changed from New to Feedback
- Target version set to rsb-0.14
This is a sane design choice.
There may be another valid design: When I thought about a similar type, I considered adding an ImageDimensions
or ImageFormat
type describing things like width, height, channels, … and using it for compressed and maybe at some point raw images. Of course, this information is available from data
, but not without decoding.
What do you think?
#2 Updated by V. Richter over 8 years ago
J. Moringen wrote:
There may be another valid design: When I thought about a similar type, I considered adding an
ImageDimensions
orImageFormat
type describing things like width, height, channels, … and using it for compressed and maybe at some point raw images. Of course, this information is available fromdata
, but not without decoding.
I do not have a problem with the resulting redundancy when adding ImageDimension
information to this type (the encoding information already is redundant because it should be encoded in the magic number in the data field).
ImageDimension seems pretty straight forward: rst.vision.ImageDimension
What would the definition of an ImageFormat type reflect? As I understand all other information in rst/vision/Image are encoding properties and mainly there to be able to decode the attached byte array.
#3 Updated by J. Moringen over 8 years ago
- Target version changed from rsb-0.14 to rsb-0.15
#4 Updated by V. Richter over 8 years ago
Is there anything I can do to further advance the inclusion of this type?
#5 Updated by J. Moringen over 8 years ago
V. Richter wrote:
Is there anything I can do to further advance the inclusion of this type?
Can you provide one-sentence descriptions of the enum values? For example, JP2
is not immediately clear to me. Also, maybe remove BMP
to not encourage encoding uncompressed images via this type.
#6 Updated by J. Moringen over 8 years ago
- Assignee set to J. Moringen
#7 Updated by V. Richter over 8 years ago
I added documentation to the enum elements and removed bmp.
#8 Updated by J. Moringen over 8 years ago
V. Richter wrote:
I added documentation to the enum elements and removed bmp.
LGTM, thanks.
#9 Updated by V. Richter over 8 years ago
- Status changed from Feedback to Resolved
- % Done changed from 0 to 100
Applied in changeset rst-proto|cd9344d38982b1fe226559870038214665ac519b.