Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
Collapse
Brand Logo

ModalAI Forum

  1. ModalAI Support Forum
  2. VOXL Accessories
  3. Image Sensors
  4. OV7251 RAW10 format

OV7251 RAW10 format

Scheduled Pinned Locked Moved Image Sensors
7 Posts 4 Posters 2.1k Views 3 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • Gicu PanaghiuG Offline
    Gicu PanaghiuG Offline
    Gicu Panaghiu
    wrote on last edited by
    #1

    Hello I have a MSU-M0014-1-01(OV7251) and I'm trying to determine what would be required to get RAW10 frames.
    From what I've investigated the voxl-camera-server will either way trim the buffer received from the lower layer to RAW8.
    When doing the initial stream configuration for the preview stream HAL_PIXEL_FORMAT_RAW10 is passed to the lower layer. But even with this step the received data is still in RAW8 format.
    This leads me to believe that the actual supported format by the low level driver is RAW8, and this is chosen to begin with as being the only option.

    If this is not the case and the sensor operates as RAW10, where exactly along the way is this trimming performed and how can this be adjusted to obtain RAW10 frames?

    I hope someone can help with some info or documentation.

    1 Reply Last reply
    0
    • Chad SweetC Offline
      Chad SweetC Offline
      Chad Sweet
      ModalAI Team
      wrote on last edited by Chad Sweet
      #2

      @Gicu-Panaghiu said in OV7251 RAW10 format:

      Hello I have a MSU-M0014-1-01(OV72

      The function that converts to RAW10 can be found here

      The check for RAW10 is here

      1 Reply Last reply
      0
      • Alex KushleyevA Offline
        Alex KushleyevA Offline
        Alex Kushleyev
        ModalAI Team
        wrote on last edited by
        #3

        Hello @Gicu-Panaghiu,

        I am going to assume you are using VOXL1, since you did not specify..

        We do have RAW8 and RAW10 support for OV7251. The selection of the format has to be done in several places.

        First, you have to select the correct camera driver, specifically..

        ls /usr/lib/libmmcamera_ov7251*.so
        /usr/lib/libmmcamera_ov7251.so
        /usr/lib/libmmcamera_ov7251_8bit.so
        /usr/lib/libmmcamera_ov7251_hflip_8bit.so
        /usr/lib/libmmcamera_ov7251_rot180_8bit.so
        /usr/lib/libmmcamera_ov7251_vflip_8bit.so
        

        there are 5 options and one of them is _8bit.so which means it will natively ouptput 8bit data (all others output 10 bit data).

        the driver name, such as ov7251_8bit has to be the sensor name <SensorName>ov7251_8bit</SensorName> in /system/etc/camera/camera_config.xml.

        You can check camera_config.xml for what sensor library is used for your OV7251.

        When you run voxl-configure-cameras script, it will actually copy one of the default camera_config.xml that are set up for a particular use case, and I believe it will indeed select the 8bit one - this was done to save cpu cycles needed to convert 10bit to 8bit, since majority of the time only 8bit pixels are used.

        Now, you mentioned that HAL_PIXEL_FORMAT_RAW10 is passed to the stream config and unfortunately this does not have any effect on what the driver outputs. If the low level driver (e.g. libmmcamera_ov7251_8bit.so) is set up to output RAW8, it will output RAW8 if you request either HAL_PIXEL_FORMAT_RAW8 or HAL_PIXEL_FORMAT_RAW10.

        So if you update the camera_config.xml to the 10bit driver and just keep the HAL_PIXEL_FORMAT_RAW10 in the stream config (then sync and reboot), you should be getting a 10 bit RAW image from the camera. But since the camera server is currently expecting 8 bit image, if you just interpret the image as 8 bit, it will appear garbled, so you will need to handle the 10 bit image (decide what you want to do with it) in the camera server.

        1 Reply Last reply
        1
        • Gicu PanaghiuG Offline
          Gicu PanaghiuG Offline
          Gicu Panaghiu
          wrote on last edited by Gicu Panaghiu
          #4

          @Alex-Kushleyev thanks for the detailed response.
          Sorry for not specifying, I am on a VOXL2.
          Under /usr/lib what is available at the moment is

          Binary file /usr/lib/camera/com.qti.sensor.ov7251.so matches
          Binary file /usr/lib/camera/com.qti.sensor.ov7251_front_left.so matches
          Binary file /usr/lib/camera/com.qti.sensor.ov7251_front_right.so matches
          Binary file /usr/lib/camera/com.qti.sensor.ov7251_rear_left.so matches
          Binary file /usr/lib/camera/com.qti.sensor.ov7251_rear_right.so matches
          

          The only camera_config.xml I have identified is the one within voxl-camera-server.

          Since I am configuring the tracking camera, I assume ov7251.so is used which is RAW8.
          Is there currently any sensor library on VOXL2 which supports 10bit?

          Assuming the correct driver is in place, as you mention I would still have to modify and deploy a voxl-camera-server which would:

          1. Unpack the pixel data
          2. Pass a image with IMAGE_FORMAT_RAW16 to the pipe with the unpacked data

          From what I see in the voxl-logger this format is already supported and I would then obtain 16bit grayscale images.

          1 Reply Last reply
          0
          • Alex KushleyevA Offline
            Alex KushleyevA Offline
            Alex Kushleyev
            ModalAI Team
            wrote on last edited by
            #5

            I see.. I am not as experienced with VOXL2 just yet, let me ping @modaltb , perhaps he can comment on the current state and how we might get to the functionality you need.

            1 Reply Last reply
            0
            • modaltbM Offline
              modaltbM Offline
              modaltb
              ModalAI Team
              wrote on last edited by
              #6

              Hi @Gicu-Panaghiu

              It looks like the ov7251 drivers are setup for 8bit only right now:

              <registerAddr>0x30b0</registerAddr>
              <registerData>0x08</registerData>
              

              At this point we would need to enable this in the drivers, I've added it to our backlog but don't have a time frame at this point to share but intend to try in next release.

              1 Reply Last reply
              0
              • Gicu PanaghiuG Offline
                Gicu PanaghiuG Offline
                Gicu Panaghiu
                wrote on last edited by
                #7

                @modaltb thanks for the response. Hope it will make it in :).

                1 Reply Last reply
                0

                Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                With your input, this post could be even better 💗

                Register Login
                Reply
                • Reply as topic
                Log in to reply
                • Oldest to Newest
                • Newest to Oldest
                • Most Votes


                ModalAI
                Categories Recent Tags ModalAI.com Docs
                © 2026 ModalAI® · Accelerating autonomy for smaller, smarter, safer drones · Powered by NodeBB
                • Login

                • Login or register to search.
                • First post
                  Last post
                0
                • Categories
                • Recent
                • Tags
                • Popular
                • Users
                • Groups