Relation of viso_orient parameter and vision_postion_estimate

I have a camera point down to an april tag that gives me pose of the camera in the frame of the tag. The z axis of the tag frame is up, so a positive value is passed to ardupilot through vision_position_estimate. And VISO_orient is set to downward. However when I move my camera up, the z value increase, but in mission planner the altitude decrease. I tried different VISO_orient parameter (upwards), but the altitude moves in a different direction comparing to the z data input.
can anyone explain if there is a relation between viso_orient parameter and vision_postion_estimate? And how are they relate to each other and how viso_orient affect the location data?
Thank you.